Как программно заполнить субконто «Типы затрат» при создании проводки Дт 20 — Кт 10.07 в 1С:КА 2 и ERP

Программист 1С v8.3 (Управляемые формы) 1С:Комплексная автоматизация Бухгалтерский учет
← На главную

При разработке кастомных механизмов отражения документов в регламентированном учете программисты часто сталкиваются с необходимостью ручного формирования проводок. Одной из типовых задач является передача затрат на производство (счет 20) со счета материалов, переданных в переработку (счет 10.07). Особенность современных конфигураций, таких как «1С:Комплексная автоматизация 2» и «1С:ERP Управление предприятием», заключается в сложной структуре аналитики (субконто) на счетах учета затрат.

В этой статье мы разберем, как правильно заполнить субконто Типы затрат, выясним, откуда система берет эти данные, и рассмотрим наиболее корректные методы программного создания записей в регистре бухгалтерии Хозрасчетный.

Анализ проблемы: поиск типа данных для субконто

Рассмотрим ситуацию: при создании проводки по дебету счета 20.01 («Основное производство») нам необходимо заполнить аналитику. Если со справочниками Номенклатура или СтатьиЗатрат всё прозрачно, то субконто Типы затрат часто вызывает вопросы, так как в пользовательском интерфейсе оно выглядит как текст («Материальные затраты»), но при программной записи требует конкретную ссылку на объект метаданных.

Чтобы понять, что именно записывать в это субконто, проанализируем план счетов. В конфигураторе для плана счетов Хозрасчетный у счета 20 определены виды субконто. Одним из них является Типы затрат. Этот вид субконто берется из Плана видов характеристик (ПВХ) ВидыСубконтоХозрасчетные.

Если мы заглянем в состав типов этого ПВХ, мы увидим внушительный список. Для идентификации нужного типа выполним следующие шаги:

  1. Найдем в ПВХ предопределенный элемент ТипыЗатрат.
  2. Посмотрим на свойство «Тип значения».
  3. В конфигурациях КА 2 и ERP этим типом является ПеречислениеСсылка.ТипыЗатратРегл.

Таким образом, значением субконто должна быть не строка, а элемент перечисления.

Практическое решение: прямой метод заполнения

Выяснив, что нам нужно перечисление ТипыЗатратРегл, мы можем дополнить код формирования проводки. Допустим, мы обрабатываем таблицу материалов из документа «Отчет переработчика». Рассмотрим пример заполнения:


// Создание новой проводки в наборе записей
НоваяПроводка = Источник.Добавить();
НоваяПроводка.СчетДт = ПланыСчетов.Хозрасчетный.ОсновноеПроизводство;
НоваяПроводка.СчетКт = ПланыСчетов.Хозрасчетный.МатериалыПереданныеВПереработку;

// Установка базовых реквизитов
НоваяПроводка.Период = ОтчетПереработчика.Дата;
НоваяПроводка.Организация = ОтчетПереработчика.Организация;

// Заполнение аналитики Дт (Счет 20)
// 1. Указываем Тип затрат - именно здесь была основная сложность
НоваяПроводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ТипыЗатрат] = Перечисления.ТипыЗатратРегл.МатериальныеЗатраты;

// 2. Указываем Статью затрат (обычно это справочник СтатьиРасходов или СтатьиЗатрат)
НоваяПроводка.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СтатьиЗатрат] = ТекСтрокаМатериалы.СтатьяЗатрат; 

// Заполнение аналитики Кт (Счет 10.07)
НоваяПроводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = ОтчетПереработчика.Контрагент;
НоваяПроводка.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура] = ТекСтрокаМатериалы.Номенклатура;

Важный нюанс: В перечислении ТипыЗатратРегл доступны и другие значения, такие как ОплатаТруда, Амортизация, ПрочиеЗатраты. Для проводки списания материалов (10.07) логично использовать именно МатериальныеЗатраты.

Рекомендуемый метод: использование общего модуля

Прописывание субконто «в лоб» через индекс СубконтоДт[ВидСубконто] — рабочий метод, но он не считается эталонным для разработки в среде 1С. В типовых конфигурациях для этого существует специальный механизм в общем модуле БухгалтерскийУчет. Этот метод безопаснее, так как он проверяет наличие аналитики на счете перед записью.

Разберем, как переписать наш пример с использованием функции УстановитьСубконто:


// Используем стандартный метод для установки аналитики
БухгалтерскийУчет.УстановитьСубконто(
    НоваяПроводка.СчетДт, 
    НоваяПроводка.СубконтоДт, 
    "ТипыЗатрат", 
    Перечисления.ТипыЗатратРегл.МатериальныеЗатраты
);

БухгалтерскийУчет.УстановитьСубконто(
    НоваяПроводка.СчетДт, 
    НоваяПроводка.СубконтоДт, 
    "СтатьиЗатрат", 
    ТекСтрокаМатериалы.СтатьяЗатрат
);

Этот подход делает код более читаемым и устойчивым к изменениям плана счетов (например, если порядок субконто на 20-м счете изменится).

Особенности работы со счетом 10.07

Проанализируем кредитовую часть проводки. Счет 10.07 («Материалы, переданные в переработку») требует тщательного заполнения аналитики, иначе в учете возникнут «хвосты» и ошибки при закрытии месяца.

Проверьте следующие моменты при создании проводки Кт 10.07:

Связь с экономическим смыслом (ПБУ 10/99)

Почему система вообще требует заполнения субконто Типы затрат? Это необходимо для автоматического формирования Пояснений к бухгалтерскому балансу (раздел 6 «Затраты на производство»). Система группирует все обороты по 20, 23, 25, 26 счетам в разрезе этих элементов:

  1. Материальные затраты.
  2. Расходы на оплату труда.
  3. Отчисления на социальные нужды.
  4. Амортизация.
  5. Прочие затраты.

Поэтому при программном создании проводок важно не просто заполнить «что-нибудь», а выбрать элемент, соответствующий экономической сути операции.

Заключение

Подведем итог. Для успешного создания проводки Дт 20 Кт 10.07 в 1С:КА 2 / ERP необходимо:

1. Использовать значение из перечисления Перечисления.ТипыЗатратРегл.МатериальныеЗатраты для аналитики счета 20.

2. По возможности использовать типовую функцию БухгалтерскийУчет.УстановитьСубконто.

3. Не забывать про заполнение всей цепочки субконто на счете 10.07, включая контрагента и (при необходимости) партию.

Соблюдение этих правил обеспечит корректность не только оборотно-сальдовой ведомости, но и всей регламентированной отчетности предприятия.

← На главную