В практике бухгалтерского учета в 1С:Бухгалтерия предприятия 3.0 часто возникает сложная задача: руководство или проверяющие органы (например, ФАС в рамках ГОЗ) требуют расшифровать затраты на 20 счете (Основное производство) в разрезе поставщиков материалов. Ситуация осложняется тем, что на предприятии может быть установлен способ оценки МПЗ "По средней", при котором партионный учет в системе отключен, и стандартная аналитика ДокументПоступления на 10 счете отсутствует.
В данной статье мы разберем несколько стратегий решения этой задачи, проанализируем их плюсы и минусы, а также выясним, как программно "восстановить" связь между списанием материалов и их поставщиками, не ломая типовую логику закрытия месяца.
Поскольку типовой бухгалтерский регистр Хозрасчетный при учете "по средней" не содержит информации о конкретном поставщике в момент списания, мы можем реализовать собственный механизм накопления данных. Разберем этот алгоритм по шагам.
1. Создание служебного регистра
Нам необходимо создать новый РегистрНакопления (вид — Остатки), назовем его, например, ПартииМатериаловВПроизводстве. В качестве измерений добавим:
Номенклатура (СправочникСсылка.Номенклатура);Контрагент (СправочникСсылка.Контрагенты);Договор (СправочникСсылка.ДоговорыКонтрагентов);ДокументПоступления (ДокументСсылка.ПоступлениеТоваровУслуг и др.).В качестве ресурсов определим Количество и Сумма.
2. Настройка проведения документов
Чтобы наполнить регистр данными, воспользуемся механизмом расширений и создадим ПодпискаНаСобытие для документов поступления и списания (РасходМатериалов, ОтчетПроизводстваЗаСмену). Проанализируем пример кода для обработки списания материалов по методу ФИФО (даже если в БУ выбрана "средняя"), чтобы определить поставщика:
Процедура ПриПроведенииСписания(Источник, Отказ, РежимПроведения)
// 1. Получаем остатки из нашего регистра по Номенклатуре
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ * ИЗ РегистрНакопления.ПартииМатериаловВПроизводстве.Остатки(,&Номенклатура = &Номенклатура)";
// ... настройка параметров ...
// 2. Распределяем списываемое количество по партиям (метод ФИФО)
СписываемоеКоличество = Источник.Материалы.Итог("Количество");
Пока СписываемоеКоличество > 0 Цикл
// Логика распределения по записям регистра
КонецЦикла;
КонецПроцедуры
Важный момент: Этот способ требует ввода начальных остатков по регистру на дату запуска механизма. Преимущество метода в том, что он не влияет на расчеты себестоимости в бухгалтерском учете, но позволяет строить детальные отчеты.
Проанализируем интересную особенность 1С:Бухгалтерии 3.0: даже если учет МПЗ ведется "по средней", учет НДС в программе всегда является партионным. Система обязана знать, по какому именно счету-фактуре пришел материал, чтобы корректно сформировать Книгу покупок или восстановить НДС при выбытии.
Рассмотрим использование регистра накопления НДС по приобретенным ценностям. В нем содержится аналитика:
Поставщик;Счет-фактура (который связан с документом поступления);Вид ценности (Материалы).Если на предприятии включен раздельный учет НДС (в учетной политике), этот регистр становится идеальным источником данных. При списании материалов на 20 счет, документы делают движения в этот регистр, указывая, какая "партия НДС" была списана. Мы можем построить отчет, сопоставляющий обороты 20 счета и движения по регистрам НДС, чтобы вычислить контрагентов.
Если вносить изменения в конфигурацию или включать новые регистры нельзя, остается вариант математической реконструкции. Этот метод подразумевает написание сложного запроса, который "на лету" сопоставляет приходы и расходы.
Разберем логику работы такого отчета:
Номенклатура, Контрагент, Дата.20 счет в хронологическом порядке.Проанализируем сложность: Главная проблема здесь — перемещения между складами. Если материал поступил на "Склад 1", потом переместился на "Склад 2", а оттуда списался на производство, цепочка в стандартных бухгалтерских проводках без партий разрывается. Для решения этой задачи потребуется анализировать не только Дт 20 — Кт 10, но и Дт 10 — Кт 10 (внутрискладские перемещения).
Рассмотрим вариант с минимальным вмешательством в типовые механизмы закрытия месяца. Мы можем создать в плане счетов забалансовый счет (например, МЦ.20), на котором добавим субконто:
Номенклатура;Контрагенты;Договоры.С помощью расширения добавим в документы Поступление товаров и услуг и Расход материалов автоматическое заполнение этого забалансового счета. При поступлении на склад — делаем Дт МЦ.20 (приход партии), при списании в производство — Кт МЦ.20.
Преимущество: Стандартная оборотно-сальдовая ведомость по забалансовому счету сразу даст нам нужную "развертку". Риск: Необходимо обеспечить строгое соответствие количественных остатков на 10 счете и на забалансовом счете, иначе отчетность потеряет смысл.
Выясним, существуют ли типовые средства для решения задачи. В версии 1С:Бухгалтерия КОРП предусмотрен функционал Раздельного учета результатов финансово-хозяйственной деятельности. При его активации в документах появляется поле Направление деятельности или Государственный контракт.
Если задача "развернуть 20 счет" связана с требованием ФАС по Гособоронзаказу, рекомендуется использовать именно этот функционал. Он позволяет:
Важно предостеречь от прямого добавления субконто Контрагенты на счет 20.01. Проанализируем последствия такого решения:
Номенклатурным группам. Если вы добавите свою аналитику, система не будет знать, как распределять косвенные расходы или отклонения стоимости на новых субконто.Контрагенту А на 20 счете висит дебетовый остаток, а по Контрагенту Б — отрицательный, при этом общее сальдо по счету будет корректным. Это сделает невозможным автоматическое формирование баланса и декларации по налогу на прибыль.Мы рассмотрели несколько путей решения задачи. Выбор зависит от того, насколько глубоко вы готовы кастомизировать систему:
Помните, что отсутствие партионного учета — это осознанный выбор учетной политики для упрощения работы, и любая попытка получить "партии" задним числом всегда будет содержать долю абстракции или требовать серьезных доработок архитектуры программы.