При работе с конфигурацией «1С:Управление производственным предприятием» (УПП) редакции 1.3 разработчики часто сталкиваются с ситуацией, когда стандартные методы поиска формирования проводок не приносят результата. Особенно это актуально, если в системе включен режим РАУЗ (Расширенная аналитика учета затрат). В этом случае логика проведения документа «Требование-накладная» (и многих других материальных документов) кардинально отличается от классического партионного учета.
Разберем подробно, почему код в модуле документа кажется «пустым», где на самом деле скрыта логика формирования записей в регистр Хозрасчетный и как правильно подойти к модификации аналитики (субконто) на счетах затрат.
В конфигурации УПП при использовании РАУЗ документ Требование-накладная не формирует проводки напрямую в процедуре ОбработкаПроведения через перебор строк табличной части. Если мы заглянем в модуль объекта, то увидим вызов процедуры ДвиженияПоРегистрам, где код выглядит примерно так:
Если СтруктураШапкиДокумента.ОтражатьВБухгалтерскомУчете Тогда
Движения.Хозрасчетный.Записать();
КонецЕсли;
На первый взгляд кажется, что записывается пустой набор записей. Однако в режиме РАУЗ записи в Движения.Хозрасчетный подготавливаются внешними механизмами (общими модулями), а метод Записать() лишь фиксирует их в базе данных. Проанализируем, как эти данные туда попадают.
Основная точка входа для формирования движений в РАУЗ — это подписки на события. Нам необходимо обратить внимание на подписку ПриПроведенииРасширеннаяАналитикаЗапасовИзменениеСостояния. Именно она перехватывает проведение документа и запускает механизм отражения в учете затрат.
Эта подписка вызывает процедуру в общем модуле УправлениеЗапасамиРасширеннаяАналитика. Основной рабочий метод здесь — РасширеннаяАналитикаЗапасовИзменениеСостояния. Выясним по шагам, что происходит внутри:
ИспользуетсяРасширеннаяАналитикаУчета(Источник.Дата).Учет затрат (регламентированный учет).Хозрасчетный) в РАУЗ являются производными от движений по регистру Учет затрат. Если запись появилась в регистре затрат, она «отзеркалится» в проводку БУ согласно настройкам счетов.Рассмотрим ситуацию, когда нам необходимо добавить новое субконто (например, Основные средства) на счет 23.03 и заполнять его программно при проведении документа Требование-накладная. Многие разработчики пытаются сделать это привычным способом в ОбработкеПроведения:
Для каждого стр Из ТаблицаПоТоварам Цикл
Если стр.СчетЗатрат = ПланыСчетов.Хозрасчетный.НайтиПоКоду("23.03") Тогда
Стр.Субконто3 = стр.ОС; // Пытаемся заполнить субконто напрямую
КонецЕсли;
КонецЦикла;
Проанализируем, почему это не работает. В режиме РАУЗ алгоритм формирования проводок игнорирует напрямую значения из табличной части в момент записи регистра, если они не сопоставлены в механизме «трансляции» аналитик. Система использует Ключи аналитики учета затрат.
Чтобы ваше новое субконто попало в проводку, оно должно присутствовать в измерениях регистра Учет затрат (регламентированный учет). В типовой УПП набор аналитик затрат жестко ограничен (Номенклатура, Склад, Подразделение, Статья затрат и т.д.). Субконто Основные средства не входит в стандартный ключ аналитики для производственных счетов.
Если нам все же требуется заполнять специфическое субконто, у нас есть два пути:
СтруктураИсточника. Мы можем добавить туда свои данные, но нам придется вмешаться в общий модуль УправлениеЗапасамиРасширеннаяАналитика, в те процедуры, которые отвечают за подготовку таблицы проводок (например, ПодготовитьТаблицуПроводок).ПриЗаписи регистра накопления УчетЗатратРегламентированныйУчет или регистра бухгалтерии Хозрасчетный. Однако это менее предпочтительный путь, так как он может замедлить проведение документов и создать сложности при перепроведении.Чтобы увидеть, в какой именно момент заполняется набор записей Хозрасчетный, выполните следующие действия:
Хозрасчетный в процедуре ПередЗаписью.Количество() = 0), используйте условие в точке останова: ЭтотОбъект.Количество() > 0.УправлениеЗапасамиРасширеннаяАналитика, которая привела к записи. Именно там происходит сопоставление аналитик затрат со счетами БУ.Важное резюме: В УПП с РАУЗ бесполезно менять табличные части в ОбработкеПроведения для целей изменения проводок БУ, если эти изменения не поддерживаются механизмом ключей аналитики. Для корректной работы необходимо либо расширять состав аналитик учета затрат (что является сложной архитектурной задачей), либо внедряться в алгоритм формирования таблицы проводок внутри общих модулей РАУЗ.