При переходе финансовых организаций (например, МФО) на Единый план счетов (ЕПС) или при внедрении корпоративного учета часто возникает необходимость вести учет одновременно по двум разным планам счетов в одной информационной базе. Разберем архитектурные особенности платформы 1С:Предприятие для решения этой задачи, выясним, требуется ли создавать отдельный регистр бухгалтерии, и определим, в каком месте конфигурации формируются движения по счетам.
Проанализируем устройство подсистемы бухгалтерского учета в платформе 1С. Объект конфигурации ПланСчетов сам по себе является лишь классификатором счетов и не хранит итогов и проводок. За хранение записей и расчет остатков отвечает объект РегистрБухгалтерии.
Ключевое ограничение платформы: один регистр бухгалтерии может быть связан строго с одним планом счетов через свойство метаданных ПланСчетов. Вести записи по двум разным планам счетов в рамках одного регистра технически невозможно.
Следовательно, для реализации параллельного учета нам потребуется выполнить следующие действия в дереве метаданных:
ПланСчетов (например, ЕПС).РегистрБухгалтерии (например, ЕПС) и в его свойствах указать созданный план счетов.Движения отметить созданный регистр бухгалтерии.Выясним, где в коде типовой конфигурации происходит запись проводок. В конфигурации 1С:Бухгалтерия предприятия 2.0 логика проведения документов унифицирована:
ОбработкаПроведения.ДвиженияПоРегистрам* (например, ДвиженияПоРегистрам или ДвиженияПоРегистрамБухгалтерии).Движения.Хозрасчетный.Чтобы найти нужный участок кода в любом документе (например, в СписаниеСРасчетногоСчета), выполним поиск по тексту модуля объекта по фразе Движения.Хозрасчетный. Так мы увидим алгоритм заполнения счетов дебета, кредита, аналитики и сумм.
Рассмотрим, как добавить формирование движений по новому плану счетов. Мы можем дописать алгоритм непосредственно в процедуру проведения документа либо вынести его в отдельную процедуру модуля объекта или подписку на событие.
Посмотрим на пример кода, который формирует проводку в новом регистре бухгалтерии:
Движения.ЕПС.Записывать = Истина;
Проводка = Движения.ЕПС.Добавить();
Проводка.Период = Дата;
Проводка.Организация = Организация;
Проводка.СчетДт = ПланыСчетов.ЕПС.НайтиПоКоду("47423810000000000001");
Проводка.СчетКт = ПланыСчетов.ЕПС.НайтиПоКоду("20501810000000000001");
Проводка.Сумма = ДокументОборот.СуммаДокумента;
Проводка.Содержание = "Отражение операции по ЕПС";
Обратите внимание: чтобы изменения зафиксировались в базе данных при проведении, обязательно устанавливаем свойство набора записей Записывать = Истина.
Разберем подводные камни, с которыми приходится сталкиваться при попытке вести учет по ЕПС параллельно с хозрасчетным планом счетов внутри одной учетной системы:
Проанализируем альтернативные подходы, если разработка собственного учетного механизма оказывается слишком трудоемкой: