При переходе на современные ERP-решения от компании 1С, такие как «1С:Комплексная автоматизация» (КА) или «1С:ERP Управление предприятием», пользователи и бухгалтеры часто пытаются применять привычные методы администрирования из «1С:Бухгалтерии». Одним из таких методов является добавление новых разрезов аналитики (субконто) к счетам учета непосредственно в режиме предприятия.
Однако при попытке добавить третье субконто, например, на счет 60.02 «Расчеты по авансам выданным» или 62.01 «Расчеты с покупателями», специалисты сталкиваются с неприятным сюрпризом: субконто успешно создается в плане счетов, но при проведении документов соответствующее поле в проводках упорно остается пустым. В этой статье мы подробно разберем, почему так происходит, как устроена архитектура регламентированного учета в ERP-системах и какими способами можно решить эту задачу без ущерба для обновлений и стабильности программы.
Для того чтобы понять, почему добавленное субконто не заполняется автоматически, проведем сравнительный анализ двух разных концепций проведения документов в решениях 1С.
В классической «1С:Бухгалтерии 3.0» проводки формируются непосредственно в момент проведения документа. Алгоритмы проведения написаны таким образом, что они динамически считывают текущую структуру метаданных плана счетов. Если система видит на счете новое субконто, она пытается сопоставить его с реквизитами документа и заполнить проводку.
В «1С:Комплексная автоматизация 2» и «1С:ERP» реализован совершенно иной подход — механизм отложенного отражения в регламентированном учете. Процесс формирования проводок здесь разделен на два независимых этапа:
ПриобретениеТоваровУслуг или СписаниеБезналичныхДенежныхСредств) данные записываются исключительно в оперативные регистры накопления (такие как РасчетыСПоставщиками, ДетализацияСебестоимости и др.). На этом этапе бухгалтерские проводки вообще не создаются.Этот обработчик работает на основе жестко закодированных в конфигурации SQL-подобных запросов. Эти запросы находятся в модулях менеджеров документов или специализированных общих модулях. Для счетов расчетов с контрагентами формирование проводок определяется общим модулем ДокументЛокализация в функции ТекстОтраженияВРеглУчете().
Поскольку разработчики фирмы «1С» заложили в эти запросы жесткую структуру полей (как правило, только два субконто: Контрагенты и Договоры), в коде генерации проводок поля для третьего субконто (СубконтоДт3 или СубконтоКт3) принудительно приравниваются к значению НЕОПРЕДЕЛЕНО (NULL) или игнорируются. Именно поэтому, даже если вы добавите субконто в режиме предприятия, система физически не передаст в него данные при формировании проводок.
Среди специалистов ходит миф о наличии некой «секретной галочки» или настройки в режиме предприятия, которая позволяет связать реквизиты документов с добавленным субконто. Вынуждены вас разочаровать: такой настройки в типовой конфигурации не существует.
Упоминание в профессиональных сообществах «настройки» через модуль ДокументЛокализация.ТекстОтраженияВРеглУчете() — это не более чем разработческий юмор. Под этим подразумевается необходимость непосредственного изменения исходного кода конфигурации программистом. Без доработки кода заставить систему автоматически заполнять произвольное третье субконто в регламентированных проводках невозможно.
Если бизнес-требования вашей организации категорически настаивают на ведении аналитического учета на счетах расчетов именно через субконто, рассмотрим технические варианты реализации этой задачи.
Чтобы сохранить конфигурацию на поддержке и не препятствовать последующим обновлениям, все изменения необходимо вносить через механизм расширений. Нам потребуется перехватить формирование текста запроса для отражения в регламентированном учете.
Разберем примерную схему реализации на языке 1С. Мы можем использовать аннотацию &Вместо для изменения логики формирования проводок нужного документа в расширении:
&Вместо("ПодготовитьТаблицыОтраженияДокумента")
Процедура Мой_ПодготовитьТаблицыОтраженияДокумента(ПараметрыПроведения, ТаблицыДокумента)
// Вызываем оригинальный алгоритм заполнения таблиц
ПродолжитьВызов(ПараметрыПроведения, ТаблицыДокумента);
// Перебираем таблицы, предназначенные для формирования проводок
Для Каждого Таблица Из ТаблицыДокумента Цикл
Если Таблица.Колонки.Найти("СубконтоДт3") <> Неопределено Тогда
// Заполняем колонку СубконтоДт3 нужным значением из оперативного учета
Для Каждого Строка Из Таблица Цикл
Если Строка.СчетДт = ПланыСчетов.Хозрасчетный.РасчетыПоАвансамВыданным Тогда
Строка.СубконтоДт3 = Строка.Ссылка.МойДополнительныйРеквизит;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Этот способ требует хорошего понимания внутренней структуры метаданных конкретного документа и связей между оперативным и бухгалтерским контурами. В качестве примера готовой реализации можно использовать расширение для детализации проводок по счету 76.10 в 1С:ERP.
В крайних случаях, если операция единична, можно воспользоваться ручной корректировкой проводок непосредственно в документе (установив признак «Ручная корректировка» на вкладке «Проводки»). Однако при регулярной деятельности и большом документообороте этот метод неприменим, так как он полностью парализует автоматизацию процесса и повышает риск возникновения человеческих ошибок.
Прежде чем приступать к программированию и изменению плана счетов, проанализируем последствия этого шага для вашей базы данных. Попытка детализировать счета расчетов (60, 62, 76 и др.) через добавление нетиповых субконто почти гарантированно приведет к следующим критическим проблемам:
В методологию «1С:Комплексная автоматизация» и «1С:ERP» заложены мощные инструменты, позволяющие детально анализировать учет без физического редактирования плана счетов. Рассмотрим наиболее эффективные из них:
Если вам требуется разделять взаиморасчеты по видам деятельности, типам партнеров или иным укрупненным признакам, используйте Группы финансового учета расчетов. ГФУ настраиваются в справочниках договоров или партнеров и позволяют автоматически перенаправлять проводки на разные субсчета (например, выделять расчеты по лизингу, аренде, обеспечению на отдельные субсчета счета 76).
Это сквозная аналитика всей системы. С помощью направлений деятельности можно обособить не только доходы и расходы, но и денежные средства, запасы на складах, а также расчеты с контрагентами. При использовании НД вся цепочка документов — от закупки до реализации — будет автоматически маркироваться выбранным направлением, и вы сможете формировать баланс и финансовый результат в разрезе этих направлений без добавления субконто.
Если аналитика требуется исключительно для построения управленческих отчетов, а не для формирования баланса, идеальным решением станет использование дополнительных реквизитов. Вы можете добавить любой реквизит к договору, контрагенту или документу без изменения конфигурации. В дальнейшем эти реквизиты легко выводятся в любых стандартных отчетах (например, в «Ведомости расчетов с клиентами») через настройки группировок.
Подведем итог: Прежде чем добавлять новое субконто в план счетов «1С:Комплексная автоматизация», тщательно взвесьте все риски. Использование типовых альтернатив (ГФУ, направления деятельности, доп. свойства) избавит вас от проблем с закрытием месяца, сохранит базу на стандартной поддержке и обеспечит абсолютную корректность ведения учета.