Как реализовать раздельный учет затрат по договорам на счете 20.01 в 1С:Бухгалтерия 3.0?

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

При ведении учета в 1С:Бухгалтерия 3.0 (БП 3.0) бухгалтеры и разработчики часто сталкиваются с требованием разделения затрат не просто по видам деятельности, а по конкретным договорам с покупателями. Особенно это актуально для строительных организаций и компаний, работающих с Гособоронзаказом (ГОЗ) или под контролем ФАС. Типовая методология программы предполагает использование Номенклатурных групп как основного разреза на счете 20.01, но когда договоров тысячи, возникают вопросы производительности и корректности закрытия месяца.

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

Зачем нужен раздельный учет по договорам?

Прежде чем переходить к технической реализации, выясним причину возникновения такой задачи. Зачастую это не просто прихоть руководства, а законодательное требование. Согласно Федеральному закону №275-ФЗ и Постановлению Правительства РФ №47, организации, исполняющие государственные контракты, обязаны вести раздельный учет результатов финансово-хозяйственной деятельности по каждому контракту. Это подразумевает:

  1. Обособление прямых затрат (материалы, зарплата производственного персонала).
  2. Обоснованное распределение косвенных расходов (аренда, амортизация, общехозяйственные нужды).
  3. Прослеживаемость движений денежных средств.

Вариант 1: Использование принципа «Один договор = Одна номенклатурная группа»

Это наиболее стандартный метод, не требующий внесения изменений в конфигурацию. Рассмотрим его подробнее. В этом случае для каждого нового договора в справочнике Номенклатурные группы создается отдельный элемент.

Преимущества метода:

Проблемы и риски:

Основная сложность заключается в масштабируемости. Если в компании заключается 2–3 тысячи договоров в год, справочник Номенклатурные группы разрастается до огромных размеров. Проанализируем ситуацию: при выполнении регламентной операции Закрытие счетов 20, 23, 25, 26 система должна перебрать все комбинации подразделений и номенклатурных групп. При наличии тысяч групп процедура закрытия месяца может занимать часы, а база данных будет стремительно расти в объеме.

Также стоит помнить о незавершенном производстве (НЗП). При таком подходе остатки на счете 20.01 будут «висеть» мертвым грузом по каждой закрытой или замороженной группе, что потребует от бухгалтера ежемесячного контроля инвентаризации затрат.

Вариант 2: Использование субконто «Номенклатура» на 20 счете

Рассмотрим альтернативный вариант, который предложили опытные участники обсуждения. В плане счетов 1С для счета 20.01 предусмотрено три субконто: Подразделения, Номенклатурные группы и Номенклатура. Последнее по умолчанию часто не используется для сбора затрат, так как оно предназначено для учета выпуска конкретной продукции.

Мы можем использовать этот разрез для детализации до договора:

  1. Создадим в справочнике Номенклатура элементы, соответствующие названиям или номерам договоров.
  2. При отражении затрат (через Требование-накладная, Начисление зарплаты, Поступление (акты, накладные)) будем указывать не только общую номенклатурную группу (например, «Строительно-монтажные работы»), но и конкретную «продукцию» (договор) в третьем субконто.
  3. Выпуск продукции (документ Отчет производства за смену или Оказание производственных услуг) также будет фиксироваться в разрезе этой номенклатуры.

Важный нюанс: В этом случае Номенклатурная группа выступает как «контейнер» для объединения однотипных договоров, а детальный расчет себестоимости идет внутри группы. Однако стоит учитывать, что распределение косвенных расходов (счета 25, 26) в типовой БП 3.0 происходит именно на Номенклатурную группу, а не на конкретную Номенклатуру. Это означает, что внутри группы затраты 25 счета будут распределяться между «договорами» пропорционально плановой себестоимости выпуска или другим настройкам программы.

Вариант 3: Расширение функционала через Дополнительные реквизиты

Если нам нужно разделение только для отчетности, а не для изменения логики расчета себестоимости, проанализируем вариант с Дополнительными сведениями. В справочнике Номенклатурные группы можно создать доп. реквизит с типом СправочникСсылка.ДоговорыКонтрагентов.

Это позволит не плодить лишние сущности, а связывать группы с договорами. Однако это не решит проблему, если в рамках одной группы нужно вести учет по нескольким объектам. Данный метод подходит скорее для аналитического учета «постфактум» через универсальный отчет.

Проблема распределения косвенных расходов (25 и 26 счета)

Это «узкое место» любой схемы раздельного учета. Выясним, как система ведет себя при закрытии месяца. Косвенные расходы накапливаются по подразделениям и статьям затрат без привязки к конкретному заказу/договору. В конце месяца они должны «приземлиться» на счет 20.01.

Базой распределения могут выступать:

Разберем пример: если мы выбрали базу «Прямые затраты», но по одному из договоров (номенклатурных групп) в текущем месяце не было ни одного списания материалов или начисления зарплаты, то косвенные расходы на него не распределятся. В итоге себестоимость этого объекта будет занижена. В контексте требований ФАС или ГОЗ это может быть расценено как нарушение методологии раздельного учета.

Практическая реализация программной доработки

Если типовых средств недостаточно, программисту может потребоваться добавить новое субконто Договоры непосредственно на счет 20.01. Посмотрим на пример кода, который может использоваться для анализа движений, хотя основная работа будет заключаться в изменении модулей проведения документов закрытия месяца.


// Пример получения затрат в разрезе договоров, если добавлено субконто
Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |   ХозрасчетныйОстатки.Субконто1 КАК Подразделение,
    |   ХозрасчетныйОстатки.Субконто2 КАК НоменклатурнаяГруппа,
    |   ХозрасчетныйОстатки.Субконто3 КАК Договор,
    |   ХозрасчетныйОстатки.СуммаОстаток КАК СуммаЗатрат
    |ИЗ
    |   РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОсновноеПроизводство), , ) КАК ХозрасчетныйОстатки";

Запрос.УстановитьПараметр("Период", КонецДня(Объект.ДатаОтчета));
Результат = Запрос.Выполнить();

Внимание! Изменение плана счетов и добавление субконто на 20-й счет — это крайняя мера. Алгоритмы закрытия месяца в 1С:Бухгалтерия 3.0 крайне сложны и используют жестко прописанные обращения к субконто НоменклатурныеГруппы. При добавлении субконто Договоры вам придется переписывать значительную часть расширения ЗакрытиеМесяца, чтобы суммы корректно распределялись и закрывались.

Рекомендации по выбору решения

Подведем итоги и выясним, какой путь выбрать в зависимости от ситуации:

  1. Малое количество договоров (до 100-200): Смело используйте схему 1 договор = 1 Номенклатурная группа. Это обеспечит максимальную прозрачность для бухгалтерии и не потребует вмешательства программиста.
  2. Среднее количество и необходимость строгого учета по ГОЗ: Рассмотрите переход на 1С:Бухгалтерия КОРП. В этой версии функционал раздельного учета по государственным контрактам реализован на уровне типового решения, включая работу с ИГК (идентификаторами госконтрактов).
  3. Огромное количество договоров (тысячи) и сложное производство: Типовая «Бухгалтерия» может не справиться с нагрузкой при закрытии месяца. В этом случае стоит рассмотреть 1С:ERP или 1С:Комплексная автоматизация, где раздельный учет реализован через механизм Направления деятельности, который гораздо производительнее и гибче.
  4. Специфика строительства: Если ваша деятельность — чистой воды стройка, лучше использовать отраслевое решение 1С:Подрядчик строительства. Там объект строительства (или договор) является штатным разрезом учета, под который оптимизированы все отчеты и процедуры распределения затрат.

Заключение: Реализация раздельного учета затрат по договорам в 1С:Бухгалтерия 3.0 требует баланса между детальностью аналитики и производительностью системы. Самым безопасным методом остается использование Номенклатурных групп, но он требует жесткой дисциплины со стороны пользователей по закрытию неиспользуемых групп и контролю НЗП.

← На главную