В процессе работы с конфигурацией 1С:ERP Управление предприятием 2.5 (в частности, на релизах ветки 2.5.17.х) пользователи часто сталкиваются с парадоксальной ситуацией. В документе Списание безналичных ДС выбран рублевый расчетный счет, в проводках изначально фигурирует счет 51 "Расчетные счета", но после нажатия кнопки "Отразить в регл. учете" система внезапно меняет его на 52 "Валютные счета". Эта проблема с настройкой счетов — одна из типовых задач, возникающих при учете банковских операций, наряду с автоматическим назначением статей ДДС в выписках. Рассмотрим подробнее, почему это происходит и как исправить эту ошибку, особенно если ваша база прошла через процедуру миграции из УПП.
Представим ситуацию: мы открываем документ Списание безналичных денежных средств. Проверяем расчетный счет организации — он явно рублевый, его номер начинается на 40702810..., где код 810 однозначно указывает на национальную валюту. Однако при формировании проводок бухгалтерского учета мы видим кредит счета 52.
Первая реакция специалиста — проверить справочник Валюты на предмет дублей или некорректных кодов (например, путаница между 810 и 643). Но, как показывает практика, даже если с валютами всё в порядке, проблема сохраняется. Попробуем разобраться по шагам, где именно "зарыта" ошибка.
Проанализируем карточку банковского счета организации. Нам необходимо убедиться в следующем:
Группа финансового учета (ГФУ) денежных средств.Групповое изменение реквизитов.Если создание нового счета-дубля с теми же реквизитами временно решает проблему (как заметил автор исходной темы), значит, дело не в самом документе, а в связанных с конкретным объектом настройках учета.
В 1С:ERP 2.5 механизм определения счетов учета в регламентированном учете кардинально отличается от того, что было в УПП 1.3. Счета больше не хранятся в самих документах или напрямую в карточках складов/счетов. Они выбираются динамически из регистра сведений Порядок отражения на счетах учета.
Выясним причину подмены счета через этот регистр. Система ищет подходящую запись по следующему приоритету:
Проблема часто заключается в наличии "фантомной" или ошибочной записи в этом регистре. Например, если в общей настройке для валюты "RUB" кто-то по ошибке указал счет 52, система может использовать его, если не найдет более детальной настройки для конкретного счета.
При переходе с 1С:УПП на 1С:ERP часто используется массовая загрузка данных, для которой существуют как готовые обработки переноса документов и справочной информации, так и приемы, позволяющие ускорить этот процесс. Проанализируем ситуацию: если вы использовали Групповое изменение реквизитов для заполнения ГФУ в банковских счетах, система могла не запустить стандартные обработчики обновления регистра сведений. В итоге сложилась ситуация: в интерфейсе мы видим одно, а в таблицах базы данных (в регистре настроек) лежат устаревшие или пустые значения.
Также возможна ошибка дублирования записей с одинаковыми измерениями. Это происходит, когда из-за программных ошибок в регистр записываются две строки с одинаковой организацией и счетом, но разными внутренними идентификаторами (UUID). Визуально в списке это выглядит как одна строка, но при выборке запросом система может "хватать" не ту запись.
В ERP 2.5 счета учета жестко привязаны к Группе финансового учета денежных средств. Неправильная настройка ГФУ может приводить не только к подмене счетов 51/52, но и к более сложным ошибкам, например, при необходимости формирования проводок по счету 76.10 с детализацией по сотрудникам. Рассмотрим пример того, как неправильная настройка ГФУ приводит к ошибке "Для учета расчетов с клиентами по группе фин. учета не указан счет".
Если вы видите, что для ГФУ "62.01 покупатели (РУБЛИ)" счет не определен, хотя в настройках он стоит, выполните следующие действия:
Для программистов будет полезно проанализировать общий модуль ДенежныеСредстваСервер. Именно в нем (или в специализированных модулях по регл. учету, таких как РегламентированныйУчетВыборкаДанных) происходит вызов функций определения счета. Посмотрим на упрощенную логику, которую можно встретить в коде:
// Пример логики поиска счета (упрощенно)
ПараметрыВыбора = Новый Структура;
ПараметрыВыбора.Вставить("Организация", ДокументОбъект.Организация);
ПараметрыВыбора.Вставить("БанковскийСчет", ДокументОбъект.БанковскийСчет);
ПараметрыВыбора.Вставить("ГруппаФинансовогоУчета", ДокументОбъект.БанковскийСчет.ГруппаФинансовогоУчета);
СчетУчета = РегистрыСведений.ПорядокОтраженияНаСчетахУчета.ПолучитьСчет(ПараметрыВыбора);
Если в процессе отладки вы видите, что функция ПолучитьСчет возвращает 52 вместо 51, значит, необходимо "почистить" регистр ПорядокОтраженияНаСчетахУчета от записей, где в колонке Счет учета ошибочно указан 52 для рублевых объектов.
Для окончательного устранения проблемы "мистического" изменения счета 51 на 52 выполните следующие действия:
ПорядокОтраженияНаСчетахУчета, отфильтровав его по ресурсу СчетУчета = Счёт52. Вы удивитесь, обнаружив там записи, привязанные к рублевым счетам или ГФУ.Соблюдение этих шагов позволит восстановить корректную работу системы и гарантировать, что регламентированный учет будет отражать операции по тем счетам, которые предусмотрены учетной политикой предприятия.