При ведении учета в программе 1С:Бухгалтерия 3.0 (БП 3.0) нередко возникают ситуации, когда правила игры меняются на ходу. Одной из таких классических ситуаций является переход от простого учета номенклатуры к детальному складскому учету. Когда мы включаем настройку учета запасов «По складам (места хранения) по количеству и сумме», программа перестраивает регистры. Однако исторические данные, накопленные в базе до этого момента, не могут автоматически «догадаться», на какие именно реальные склады нужно распределить остатки.
В результате в Оборотно-сальдовой ведомости (ОСВ) по счетам 41.01 (Товары на складах) или 10 (Материалы) образуется неприятная картина: количество товаров успешно числится на выбранном новом складе (например, «Основной склад»), а вся их себестоимость (суммы) «зависает» на пустых строках (в субконто отображаются пустые скобки <...>). Проведение новых документов списания или реализации в такой ситуации начинает порождать отрицательные остатки по суммам или некорректно рассчитывать себестоимость. Для своевременного обнаружения таких ошибок подойдет отчет для контроля отрицательных остатков товаров.
В этой статье мы подробно проанализируем причины этой проблемы и разберем три практических метода ее решения без перепроведения прошлых закрытых периодов, которое может безвозвратно испортить сданную отчетность.
---
Давайте проанализируем ситуацию с технической точки зрения. До активации складского учета аналитический разрез (субконто) Склады на счетах учета ТМЦ был просто отключен или отсутствовал. Программа записывала все движения только в разрезе номенклатуры (и партий, если включен партионный учет). Физически в базе данных поле складских остатков оставалось незаполненным (значение Null или пустая ссылка).
Когда мы включаем опцию складского учета «по количеству и сумме»:
Склады добавляется на счета учета (например, 41.01).Перепроведение документов за прошлые периоды могло бы решить проблему, автоматически подставив склад в старые проводки. Но в реальных базах с большим объемом данных и закрытыми прошлыми периодами (сданным НДС и налогом на прибыль) перепроводить документы категорически нельзя — это гарантированно приведет к искажению и «расползанию» учета.
---
Рассмотрим первый метод, который идеально подходит, если список позиций номенклатуры, по которым зависли суммы, относительно небольшой (до 100-200 позиций). Этот способ полностью безопасен и не затрагивает прошлые периоды. Для автоматизации этого процесса можно использовать обработку для автоматического переноса остатков на другое субконто.
Выполнять перенос необходимо строго на дату, предшествующую началу ведения детального складского учета (например, если складской учет внедряется с 1 января нового года, операцию делаем 31 декабря предыдущего года в 23:59:59).
Разберем процесс по шагам:
41.01 (или 10). В настройках отчета (вкладка «Группировка») обязательно укажите три субконто: Номенклатура, Склады, Партии (если применимо). Нажмите кнопку «Сформировать» и убедитесь, что вы видите строки, где склад не указан, но есть суммы.Операция.41.01). В субконто укажите конкретную номенклатуру, ваш реальный целевой склад (например, «Основной склад») и соответствующую партию. Заполните поле «Сумма» (и при необходимости количество, если оно тоже зависло).41.01). В субконто укажите ту же номенклатуру, ту же партию, но поле «Склад» оставьте пустым. Заполните ту же самую сумму.Таким образом, мы выполняем внутреннюю проводку по счету 41.01. Общий баланс и обороты по счету в целом по предприятию не изменятся, но внутри субконто произойдет «схлопывание»: сумма уйдет с пустого аналитического разреза и зачислится на конкретный склад.
---
Если позиций номенклатуры слишком много для ручного ввода в проводках, мы можем использовать стандартные складские документы конфигурации. Этот метод основан на транзитном счете 94 (Недостачи и потери от порчи ценностей) или 000 (Вспомогательный счет).
Проанализируем пошаговый алгоритм реализации этого метода:
Дт 94 — Кт 41.01 (с пустым складом, так как настройка отключена).
Ctrl + C или через контекстное меню).
Ctrl + V). Документ сформирует проводки:
Дт 41.01 (Основной склад) — Кт 91.01 (Прочие доходы).
Дт 91.01 — Кт 94.
После проведения этой цепочки документов счета 94 и 91.01 закроются в ноль, а вся себестоимость товаров окажется на нужном складе.
---
Для крупных баз данных ручные корректировки неприменимы. Если вы обладаете навыками конфигурирования или можете привлечь программиста 1С, проблему можно решить автоматизированным путем. Существует два типа специализированных обработок:
Хозрасчетный по пустым субконто на определенную дату и автоматически формирует документ ОперацияБух со всеми необходимыми проводками переноса.Посмотрим на пример кода, который иллюстрирует, как можно программно перезаписать субконто «Склад» в проводках конкретного документа-регистратора без его перепроведения:
// Пример программного заполнения пустого субконто "Склад" в проводках
НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(ДокументСсылка);
НаборЗаписей.Прочитать();
Для Каждого Запись Из НаборЗаписей Цикл
// Проверяем, что счет проводки - это счет учета товаров (например, 41.01)
Если Запись.СчетДт = ПланыСчетов.Хозрасчетный.ТоварыНаСкладах Тогда
// Ищем индекс субконто "Склады" на данном счете
ИндексСклада = Запись.СчетДт.ВидыСубконто.Найти(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады);
Если ИндексСклада <> Неопределено Тогда
// Если субконто не заполнено, подставляем нужный склад
Если Запись.СубконтоДт[ИндексСклада] = Неопределено ИЛИ Запись.СубконтоДт[ИндексСклада].Пустая() Тогда
Запись.СубконтоДт[ИндексСклада] = СсылкаНаОсновнойСклад;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
// Записываем измененный набор проводок в базу данных без проведения документа
НаборЗаписей.Записать();
---
Прежде чем приступать к исправлению остатков любым из перечисленных методов, обязательно обратите внимание на следующие особенности работы платформы 1С:
.dt).Применяя эти методы, мы сможем быстро и безболезненно навести порядок в Оборотно-сальдовой ведомости, восстановить корректный расчет себестоимости и продолжить комфортную работу в программе с полноценным складским учетом.