При переходе с конфигурации «Бухгалтерия предприятия» на «Управление производственным предприятием» пользователи часто требуют привычной детализации: видеть конкретные расчетные документы непосредственно в оборотно-сальдовой ведомости по счету 60. В УПП типовая архитектура регламентированного учета построена иначе — на счетах 60 и 62 используется только два субконто (Контрагенты и Договоры), а детальные взаиморасчеты ведутся в специализированных регистрах накопления. Разберем, что происходит при добавлении третьего субконто на субсчета нижнего уровня, нужно ли поднимать его на уровень счета 60 в целом и с какими архитектурными сложностями придется столкнуться.
Выясним причину, по которой возникает вопрос: добавлять ли субконто на счета-родители (60.01, 60) или оставить его только на субсчетах нижнего уровня (например, 60.01.1). Поведение платформы определяет следующие правила:
Остатки, ОстаткиИОбороты) при запросе к родительскому счету поле отсутствующего субконто вернет значение NULL. Построить отчет с детализацией до расчетного документа получится только строго по конечному субсчету.Таким образом, если перед нами стоит задача дать бухгалтеру возможность формировать единую ОСВ по всему счету 60 с детализацией по документам, субконто обязательно требуется добавлять и на субсчета второго уровня, и на счет 60 в целом.
Добавление субконто составного типа («Документы расчетов с контрагентами») в высоконагруженные счета регламентированного учета в конфигурации УПП несет в себе серьезные скрытые угрозы для целостности учета. Проанализируем критические моменты, которые неизбежно проявятся при эксплуатации системы:
ПереоценкаВалютныхСредств и алгоритмы закрытия месяца рассчитывают курсовые разницы в разрезе только двух субконто — контрагента и договора. Если документ переоценки сделает проводку с пустым третьим субконто, возникнет разрыв сальдо: основной долг останется привязан к документу расчетов, а курсовая разница повиснет на пустом субконто. В результате ОСВ по документам расчетов перестанет сходиться, образуя «разъехавшиеся» дебетовые и кредитовые остатки.ОперацияБух. При ручном указании третьего субконто в проводках движения по регистрам накопления (ВзаиморасчетыСКонтрагентами, РасчетыПоПриобретениюВУсловныхЕдиницахОрганизации) не формируются. Типовые механизмы УПП ориентируются на регистры, поэтому при следующем автоматическом проведении документов или восстановлении последовательности программа проигнорирует ручную проводку и сформирует зачет повторно.ФормированиеЗаписейКнигиПокупок и ФормированиеЗаписейКнигиПродаж считывают данные не из бухгалтерских проводок счета 60, а из собственных регистров накопления по НДС. Добавление третьего субконто никак не поможет автоматизировать зачет авансов для целей книги покупок.Максимальное количество субконто в типовой УПП равно 3. Заняв третье субконто документами расчетов, разработчик полностью исчерпывает платформенный лимит, лишаясь возможности добавить проектный или складской учет на этот план счетов без изменения глобальных метаданных.Если решение о внедрении третьего субконто принято окончательно, заполнять аналитику внутри каждого отдельного документа вручную нельзя. Рассмотрим правильную архитектуру заполнения проводок.
В УПП расчет задолженности и определение расчетных документов производятся на уровне регистров накопления. Следовательно, проводка должна зеркально отражать то, что система уже определила в оперативном учете. Разберем шаги синхронизации:
РасчетыПоПриобретениюВУсловныхЕдиницахОрганизации или ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов) с учетом установленного порядка погашения (ФИФО или по явно указанным документам).ПереоценкаВалютныхСредств: выборка остатков по счетам 60.21, 60.31 должна группироваться с учетом третьего субконто, чтобы курсовая разница относилась ровно на тот документ расчетов, по которому возник переоцениваемый остаток.Посмотрим на пример заполнения третьего субконто при обходе сформированных движений регистра взаиморасчетов:
// Обработка движений по регистру бухгалтерии на основе рассчитанных данных
Для Каждого Проводка Из НаборЗаписейХозрасчетный Цикл
Если Проводка.СчетКт = Счет60_01 Или Проводка.СчетДт = Счет60_01 Тогда
// Находим соответствующую строку оперативного расчета
Отбор = Новый Структура("ДоговорКонтрагента", Проводка.СубконтоКт.Договоры);
СтрокиРегистра = Движения.РасчетыПоПриобретениюВУсловныхЕдиницахОрганизации.НайтиСтроки(Отбор);
Если СтрокиРегистра.Количество() > 0 Тогда
// Заполняем третье субконто документа расчетов
Проводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ДокументыРасчетовСКонтрагентами] = СтрокиРегистра[0].ДокументРасчетов;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Прежде чем вносить изменения в структуру типового плана счетов, разберем более надежные проектные подходы, которые не нарушают типовую логику закрытия периода и обновления конфигурации:
ДоговорыКонтрагентов достаточно переключить режим взаиморасчетов на «По документам расчетов». В этом случае система автоматически ведет детальный учет по каждому расчетному документу в регистре ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов. Все типовые отчеты подсистемы взаиморасчетов будут разворачивать долги до документов без изменения плана счетов.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов. Бухгалтерия получает желаемую форму представления данных, при этом регламентированный учет, механизмы переоценки и документы расчета НДС продолжают работать штатно без риска рассинхронизации.