При разработке кастомных механизмов отражения документов в регламентированном учете программисты часто сталкиваются с необходимостью ручного формирования проводок. Одной из типовых задач является передача затрат на производство (счет 20) со счета материалов, переданных в переработку (счет 10.07). Особенность современных конфигураций, таких как «1С:Комплексная автоматизация 2» и «1С:ERP Управление предприятием», заключается в сложной структуре аналитики (субконто) на счетах учета затрат.
В этой статье мы разберем, как правильно заполнить субконто Типы затрат, выясним, откуда система берет эти данные, и рассмотрим наиболее корректные методы программного создания записей в регистре бухгалтерии Хозрасчетный.
Рассмотрим ситуацию: при создании проводки по дебету счета 20.01 («Основное производство») нам необходимо заполнить аналитику. Если со справочниками Номенклатура или СтатьиЗатрат всё прозрачно, то субконто Типы затрат часто вызывает вопросы, так как в пользовательском интерфейсе оно выглядит как текст («Материальные затраты»), но при программной записи требует конкретную ссылку на объект метаданных.
Чтобы понять, что именно записывать в это субконто, проанализируем план счетов. В конфигураторе для плана счетов Хозрасчетный у счета 20 определены виды субконто. Одним из них является Типы затрат. Этот вид субконто берется из Плана видов характеристик (ПВХ) ВидыСубконтоХозрасчетные.
Если мы заглянем в состав типов этого ПВХ, мы увидим внушительный список. Для идентификации нужного типа выполним следующие шаги:
ТипыЗатрат.ПеречислениеСсылка.ТипыЗатратРегл.Таким образом, значением субконто должна быть не строка, а элемент перечисления.
Выяснив, что нам нужно перечисление ТипыЗатратРегл, мы можем дополнить код формирования проводки. Допустим, мы обрабатываем таблицу материалов из документа «Отчет переработчика». Рассмотрим пример заполнения:
// Создание новой проводки в наборе записей
НоваяПроводка = Источник.Добавить();
НоваяПроводка.СчетДт = ПланыСчетов.Хозрасчетный.ОсновноеПроизводство;
НоваяПроводка.СчетКт = ПланыСчетов.Хозрасчетный.МатериалыПереданныеВПереработку;
// Установка базовых реквизитов
НоваяПроводка.Период = ОтчетПереработчика.Дата;
НоваяПроводка.Организация = ОтчетПереработчика.Организация;
// Заполнение аналитики Дт (Счет 20)
// 1. Указываем Тип затрат - именно здесь была основная сложность
НоваяПроводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ТипыЗатрат] = Перечисления.ТипыЗатратРегл.МатериальныеЗатраты;
// 2. Указываем Статью затрат (обычно это справочник СтатьиРасходов или СтатьиЗатрат)
НоваяПроводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СтатьиЗатрат] = ТекСтрокаМатериалы.СтатьяЗатрат;
// Заполнение аналитики Кт (Счет 10.07)
НоваяПроводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = ОтчетПереработчика.Контрагент;
НоваяПроводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура] = ТекСтрокаМатериалы.Номенклатура;
Важный нюанс: В перечислении ТипыЗатратРегл доступны и другие значения, такие как ОплатаТруда, Амортизация, ПрочиеЗатраты. Для проводки списания материалов (10.07) логично использовать именно МатериальныеЗатраты.
Прописывание субконто «в лоб» через индекс СубконтоДт[ВидСубконто] — рабочий метод, но он не считается эталонным для разработки в среде 1С. В типовых конфигурациях для этого существует специальный механизм в общем модуле БухгалтерскийУчет. Этот метод безопаснее, так как он проверяет наличие аналитики на счете перед записью.
Разберем, как переписать наш пример с использованием функции УстановитьСубконто:
// Используем стандартный метод для установки аналитики
БухгалтерскийУчет.УстановитьСубконто(
НоваяПроводка.СчетДт,
НоваяПроводка.СубконтоДт,
"ТипыЗатрат",
Перечисления.ТипыЗатратРегл.МатериальныеЗатраты
);
БухгалтерскийУчет.УстановитьСубконто(
НоваяПроводка.СчетДт,
НоваяПроводка.СубконтоДт,
"СтатьиЗатрат",
ТекСтрокаМатериалы.СтатьяЗатрат
);
Этот подход делает код более читаемым и устойчивым к изменениям плана счетов (например, если порядок субконто на 20-м счете изменится).
Проанализируем кредитовую часть проводки. Счет 10.07 («Материалы, переданные в переработку») требует тщательного заполнения аналитики, иначе в учете возникнут «хвосты» и ошибки при закрытии месяца.
Проверьте следующие моменты при создании проводки Кт 10.07:
Почему система вообще требует заполнения субконто Типы затрат? Это необходимо для автоматического формирования Пояснений к бухгалтерскому балансу (раздел 6 «Затраты на производство»). Система группирует все обороты по 20, 23, 25, 26 счетам в разрезе этих элементов:
Поэтому при программном создании проводок важно не просто заполнить «что-нибудь», а выбрать элемент, соответствующий экономической сути операции.
Подведем итог. Для успешного создания проводки Дт 20 Кт 10.07 в 1С:КА 2 / ERP необходимо:
1. Использовать значение из перечисления Перечисления.ТипыЗатратРегл.МатериальныеЗатраты для аналитики счета 20.
2. По возможности использовать типовую функцию БухгалтерскийУчет.УстановитьСубконто.
3. Не забывать про заполнение всей цепочки субконто на счете 10.07, включая контрагента и (при необходимости) партию.
Соблюдение этих правил обеспечит корректность не только оборотно-сальдовой ведомости, но и всей регламентированной отчетности предприятия.