В процессе ведения учета в программе 1С:Бухгалтерия 8.3 (редакция 3.0) бухгалтеры и технические специалисты периодически сталкиваются с необходимостью полностью обнулить или свернуть остатки товаров по счету 41 («Товары»). Такая задача возникает при переходе на новые схемы учета, закрытии складов, исправлении накопленных исторических ошибок или при подготовке базы к свертке.
Существует несколько способов решения этой задачи: от разработки специализированной внешней обработки до использования встроенных типовых инструментов загрузки данных. В этой статье мы подробно разберем все доступные варианты, проанализируем техническую логику их работы, а также рассмотрим скрытые риски проведения подобных операций для бухгалтерского и налогового учета.
Это классический автоматизированный подход, который часто заказывают программистам. Суть метода заключается в создании внешней обработки заполнения табличной части (формата .epf), которая подключается к документу РеализацияТоваровУслуг. Она выполняет запрос к остаткам по счету 41 на дату документа и автоматически заполняет табличную часть «Товары».
Рассмотрим логику работы алгоритма такой обработки. Программа должна собрать остатки в разрезе двух субконто счета 41: Номенклатура и Склад. Цена для реализации рассчитывается динамически по формуле:
Цена = Суммовой остаток на счете 41 / Количественный остаток на счете 41
Проанализируем пример программного кода, который используется для получения остатков по счету 41 и заполнения табличной части документа:
// Запрос для получения ненулевых остатков по счету 41
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
| ХозрасчетныйОстатки.Субконто2 КАК Склад,
| ХозрасчетныйОстатки.КоличествоОстатокДт КАК Количество,
| ХозрасчетныйОстатки.СуммаОстатокДт КАК Сумма
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ТоварыНаСкладах), , Организация = &Организация) КАК ХозрасчетныйОстатки
|ГДЕ
| ХозрасчетныйОстатки.КоличествоОстатокДт > 0";
Запрос.УстановитьПараметр("Период", ОбъектДокумент.Дата);
Запрос.УстановитьПараметр("Организация", ОбъектДокумент.Организация);
РезультатЗапроса = Запрос.Выполнить();
ТаблицаОстатков = РезультатЗапроса.Выгрузить();
После получения таблицы остатков мы должны обойти ее в цикле и заполнить табличную часть документа реализации. Посмотрим на пример реализации заполнения строк:
Для Каждого СтрокаОстатка Из ТаблицаОстатков Цикл
НоваяСтрока = ОбъектДокумент.Товары.Добавить();
НоваяСтрока.Номенклатура = СтрокаОстатка.Номенклатура;
НоваяСтрока.Количество = СтрокаОстатка.Количество;
// Защита от деления на ноль при некорректных остатках
Если СтрокаОстатка.Количество <> 0 Тогда
НоваяСтрока.Цена = СтрокаОстатка.Сумма / СтрокаОстатка.Количество;
Иначе
НоваяСтрока.Цена = 0;
КонецЕсли;
НоваяСтрока.Сумма = СтрокаОстатка.Сумма;
КонецЦикла;
Этот способ удобен тем, что он исключает человеческий фактор: бухгалтеру достаточно нажать одну кнопку в документе реализации, указать склад (или оставить поле пустым для заполнения со всех складов сразу), после чего документ будет автоматически заполнен под ноль.
Если у вас нет штатного программиста или возможности подключить внешнюю обработку, проблему можно решить с помощью стандартного функционала платформы 1С:Предприятие 8.3. Этот метод основан на выгрузке отчета в Excel и его последующем импорте в документ.
Разберем этот процесс по шагам:
Конечный остаток Дт > 0. На вкладке «Группировка» обязательно добавим субконто Номенклатура и Склад..xls или .xlsx).Реализация товаров и услуг или Списание товаров.Этот метод не требует программирования и позволяет бухгалтеру самостоятельно управлять процессом свертки остатков без привлечения ИТ-специалистов.
Использование документа Реализация товаров и услуг для технической свертки или обнуления остатков несет в себе серьезные методологические риски. Оформление продажи на «дружественного» контрагента или создание фиктивной сделки приводит к необоснованному начислению НДС и увеличению налогооблагаемой базы по налогу на прибыль.
Если фактического товара на складе нет, правильнее использовать стандартную цепочку складских документов:
Инвентаризация товаров.Списание товаров. Он автоматически спишет всю себестоимость товаров на финансовые результаты (счет 94 «Недостачи и потери от порчи ценностей» или 91.02 «Прочие расходы»).Этот способ является юридически и методологически чистым, так как не имитирует торговую деятельность там, где ее не было.
Независимо от выбранного метода обнуления остатков, необходимо учитывать несколько критических особенностей работы механизмов партионного и складского учета в 1С:
41 задействуется третье субконто — Документы поступления. При простом списании по средней цене (без учета конкретных партий) программа при проведении документа может некорректно распределить суммы. В результате после закрытия месяца на счете 41 могут остаться «зависшие» копейки и суммовые остатки без количественных. Чтобы избежать этого, перед проведением документов свертки убедитесь, что все партии распределены корректно.41 уже зависли только суммы без количества (результат прошлых некорректных ручных операций), стандартные документы реализации или списания не помогут, так как они требуют указания количества. В таких ситуациях необходимо использовать документ Операция, введенная вручную, тщательно заполняя всю аналитику (включая партии) для закрытия дебетовых или кредитовых суммовых «хвостов».