Почему в договорах 1С дублируется валюта «руб.» и не выбирается нужный договор: детальный разбор и решение проблемы

Пользователь 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

Каждый специалист 1С или активный пользователь программы «1С:Бухгалтерия» (особенно редакции 3.0) хотя бы раз сталкивался с ситуациями, которые на первый взгляд кажутся абсолютно мистическими. Представьте сценарий: вы открываете карточку договора контрагента, а там в поле выбора валюты дважды написано «руб.» (или «Оплата в рублях»). При этом в конфигураторе для одной из этих позиций жестко прописана валюта USD (доллар США) или EUR (евро). Более того, из-за этого визуального дублирования программа наотрез отказывается автоматически подставлять нужный договор в документы, а при попытке выбрать его вручную список выбора оказывается пустым.

В этой статье мы подробно проанализируем данную проблему, разберем скрытые механизмы ее возникновения и предоставим пошаговые инструкции по ее устранению. Мы разберем как внешние причины (связанные с окружением и браузером), так и внутренние системные сбои в самой базе данных 1С.

Причина №1: Коварная работа автопереводчика в браузере (веб-клиент)

Это самая неочевидная и при этом наиболее распространенная причина «фантомного» переименования валют, когда в самой базе данных 1С и конфигураторе все настроено абсолютно верно, а интерфейс программы упорно показывает недостоверные данные.

Выясним причину этого явления. Если пользователи вашей организации работают с программой через веб-клиент (то есть запускают 1С в браузере, таком как Google Chrome, Яндекс.Браузер, Microsoft Edge, Opera и др.), в процесс отображения интерфейса вмешиваются внешние алгоритмы самого веб-обозревателя. Современные браузеры по умолчанию предлагают функцию автоматического перевода веб-страниц на русский язык, если им кажется, что на странице присутствуют иностранные элементы.

Проанализируем по шагам, как это работает и почему ломается логика 1С:

  1. Браузерный переводчик анализирует текст на странице 1С.
  2. Видя англоязычную аббревиатуру USD или EUR, переводчик считает ее иностранным словом, требующим локализации, и автоматически переводит ее на русский язык как «руб.» (или «рубли»).
  3. Пользователь видит на экране форму, где поле «Оплата в» содержит две одинаковые строки «руб.». Одно из полей — это настоящий рубль, а второе — переведенный браузером доллар.
  4. Почему ломается выбор договора? Под капотом платформы «1С:Предприятие» данные не меняются: одна валюта по-прежнему имеет ссылку на элемент USD, а вторая — на RUB. Когда пользователь пытается выбрать договор, визуально ориентируясь на переведенную строку «руб.» (которая внутри системы является долларом), срабатывают встроенные отборы. Программа понимает, что для рублевого документа долларовый договор не подходит, и скрывает его из списка выбора.

Рассмотрим, как быстро исправить эту ситуацию:

  1. Обратите внимание на адресную строку вашего браузера. Найдите там иконку встроенного переводчика (обычно она находится в правой части адресной строки и выглядит как символ перевода или стилизованная буква).
  2. Нажмите на эту иконку и выберите опцию «Никогда не переводить этот сайт» или полностью отключите функцию автоматического перевода для адреса, по которому развернута ваша база данных 1С.
  3. Обязательно очистите кэш браузера или просто перезапустите сеанс работы в 1С. Проблема должна исчезнуть.

Причина №2: Сбой синхронизации данных и физическое переименование валюты USD в «руб.»

Рассмотрим ситуацию, когда пользователи работают через тонкий или толстый клиент (не через браузер), но проблема с дублированием валюты все равно присутствует. В этом случае изменения произошли непосредственно в базе данных 1С.

Проанализируем ситуацию: в современных компаниях часто настроена синхронизация данных между различными конфигурациями, например, между «1С:Управление торговлей» и «1С:Бухгалтерия предприятием», или со сторонними CRM-системами. При некорректно настроенных правилах обмена или при ручном вмешательстве в базу-источник может произойти сбой сопоставления объектов справочника Валюты.

В результате такого сбоя элемент справочника с кодом 840 (доллар США) ошибочно сопоставляется со строкой рубля, и его наименование в базе данных физически перезаписывается текстом «руб.». Ссылка в договорах ведет на тот же уникальный идентификатор (GUID) элемента, но на экране он теперь отображается как «руб.». Система при этом продолжает считать эту валюту долларом (по коду валюты), из-за чего и блокирует выбор договора в документах, где требуется реальный рубль.

Для исправления этой коллизии выполним следующие шаги:

  1. Перейдите в меню «Функции для технического специалиста» (в старых версиях платформы — «Все функции»).
  2. Найдите и откройте справочник Валюты.
  3. Внимательно изучите список. Найдите элемент, у которого в колонке «Код» указано значение 840 (или 978 для евро), но в наименовании написано «руб.».
  4. Откройте карточку этой валюты и вручную верните ей правильное наименование (например, «USD» или «Доллар США») и символьный код.
  5. Сохраните изменения и проверьте форму договора — фантомный дубль должен исчезнуть.

Причина №3: Коллизия кодов валют 810 (RUR) и 643 (RUB) в справочнике

Еще один классический сценарий — реальное появление второго элемента «руб.» в справочнике валют. Это часто происходит при обновлении очень старых релизов баз данных, переносе остатков из устаревших конфигураций (например, «1С:Предприятие 7.7») или некорректном импорте банковских выписок.

Исторически в Российской Федерации использовался код валюты 810. После деноминации был введен новый международный код 643. Однако в банковской сфере (в структуре расчетных счетов) код 810 продолжает использоваться до сих пор для обозначения платежей внутри страны. Если в справочник Валюты были загружены оба эти элемента с одинаковым текстовым представлением «руб.», программа начинает путаться. Один рубль воспринимается системой как национальная валюта регламентированного учета (код 643), а второй — как иностранная валюта (код 810). Это приводит к раздвоению полей в карточке договора и невозможности автоматического подбора документов.

Рассмотрим подробнее, как исправить эту проблему встроенными средствами платформы 1С.

Пошаговая инструкция по поиску и удалению дублей валют в базе данных

Если в вашей базе действительно физически задублировалась валюта «руб.», нам потребуется определить, какой из элементов является верным (как правило, это предопределенный элемент или элемент с кодом 643), перенести все движения документов на него, а ошибочный дубль удалить.

Выполним процедуру слияния дублей по шагам:

  1. Перейдите в раздел Администрирование -> Обслуживание -> Корректировка данных.
  2. Выберите стандартную обработку «Поиск и удаление дублей» (также ее можно найти через «Функции для технического специалиста» -> Обработки -> ПоискИУдалениеДублей).
  3. В поле «Искать в:» укажите справочник Валюты.
  4. В правилах отбора выберите сравнение по наименованию или по коду. Нажмите кнопку «Найти дубли».
  5. Программа выведет список найденных элементов. Один из них (более старый, содержащий наибольшее количество ссылок) назначьте как Оригинал. Второй (неправильный) будет помечен как дубль.
  6. Нажмите кнопку «Удалить дубли». Платформа автоматически найдет все документы, договора и регистры, где использовался неправильный рубль, заменит его ссылку на правильный элемент и пометит дубль на удаление.

Если автоматическое удаление дублей по какой-то причине недоступно, разберем альтернативный вариант с использованием группового изменения реквизитов:

  1. Откройте справочник Валюты и найдите неправильный (позже созданный) элемент «руб.». Пометьте его на удаление (нажатием клавиши Del).
  2. Откройте обработку «Групповое изменение реквизитов» (находится в разделе «Администрирование»).
  3. Выберите объект изменения — Договоры контрагентов.
  4. Добавьте отбор: Валюта взаиморасчетов Равно [Ваш помеченный на удаление рубль].
  5. В таблице реквизитов найдите поле Валюта взаиморасчетов и укажите в качестве нового значения правильный рубль (код 643).
  6. Нажмите кнопку «Изменить реквизиты».
  7. Аналогичную операцию при необходимости проведите для документов расчетов.
  8. После этого перейдите в меню «Удаление помеченных объектов» и полностью удалите ненужный дубль валюты из информационной базы.

Мы подробно разобрали три основные причины появления дублирующейся валюты «руб.» в договорах 1С. Помните, что если стандартные методы поиска дублей в базе данных не приносят результата, в первую очередь стоит проверить настройки браузера и отключить автоматический перевод веб-страниц.

← На главную