Рано или поздно развивающийся бизнес сталкивается с необходимостью детализации хранения материальных ценностей. В конфигурации «1С:Бухгалтерия Предприятия 3.0» по умолчанию складской учет может быть отключен, и все запасы учитываются «в одной куче». Когда руководство принимает решение разложить товары по конкретным местам хранения, перед бухгалтером и ИТ-специалистом встает серьезная дилемма: как включить поскладской учет в уже работающей базе, где документы проводились на протяжении нескольких лет?
Простая активация настройки и тотальное перепроведение документов за прошлые периоды («задним числом») гарантированно приведет к катастрофе: «поплывет» себестоимость списания, изменятся финансовые результаты прошлых лет, закроются иначе прошлые месяцы, а оборотно-сальдовая ведомость (ОСВ) перестанет сходиться со сданной отчетностью. В этой статье мы подробно разберем, почему так происходит, и рассмотрим безопасные методики перехода на учет по складам без изменения прошлых периодов.
---
Давайте проанализируем внутренние механизмы платформы «1С:Предприятие 8». В настройках плана счетов (находится по пути: Главное — Настройки — План счетов — Настройка учета запасов) при включении тумблера «По складам» система предлагает два режима:
Если организация ранее вела учет без разделения по складам, а при переходе выбрала вариант «По количеству и сумме», то последующее перепроведение исторических документов полностью перестроит алгоритм списания себестоимости. Программа начнет искать партии и среднюю стоимость товаров не в целом по фирме, а на конкретных складах, которых в старых документах просто не было. Как результат — себестоимость списания исказится, изменятся обороты по дебету и кредиту счетов 10, 41, 43, 90, а ранее сданные декларации по налогу на прибыль или УСН потеряют актуальность.
---
Выясним причину еще одной популярной проблемы. Допустим, мы просто включили опцию учета по складам, но решили не перепроводить старые документы. В этот момент на счетах учета запасов (10, 41, 43) добавляется новое субконто — Склады.
Поскольку старые проводки не менялись, значение этого субконто в исторических записях останется пустым. В оборотно-сальдовой ведомости вся номенклатура будет отображаться на пустой строке (так называемый «пустой склад»).
Попытка перенести эти товары на вновь созданный реальный склад стандартным документом Перемещение товаров закончится неудачей. В этом документе поле «Отправитель» является обязательным для заполнения, и выбрать туда «пустоту» система не позволит. При проведении программа начнет искать остатки на конкретном выбранном складе, не увидит их (ведь они числятся на «пустом») и выдаст ошибку о нехватке запасов.
---
Рассмотрим частую ошибку начинающих пользователей: галочку в настройках плана счетов включили, но в экранных формах документов поступления или реализации поле «Склад» так и не появилось.
Это не баг программы, а заложенный разработчиками алгоритм экономии экранного пространства. Если в справочнике Склады создан всего один элемент, система считает, что у пользователя нет выбора, и автоматически скрывает это поле в интерфейсе, подставляя единственный склад «под капотом». Чтобы колонка или поле «Склад» отобразились в документах, необходимо зайти в справочник складов и создать там как минимум второй элемент (например, «Основной склад» и «Оптовый склад»).
---
Это самый надежный методический путь, который позволяет начать поскладской учет с чистого листа (например, с начала нового квартала или года), не затрагивая закрытые прошлые периоды. Разберем этот процесс по шагам.
Шаг 1. Фиксация даты перехода.
Выбираем дату начала ведения складского учета. Пусть это будет 1 января нового года. Все операции до этой даты должны остаться неизменными.
Шаг 2. Обнуление «пустого склада».
На последнюю секунду старого года (31 декабря в 23:59:59) создаем документ Списание товаров. В него подбираем все остатки ТМЦ, которые числятся в системе.
В документе необходимо включить ручную корректировку проводок и заменить дебет счета списания (обычно 94 или 91) на вспомогательный технический счет 000. Таким образом, мы списываем все ценности с «пустого склада» в корреспонденции со счетом 000, не увеличивая коммерческие расходы организации.
Шаг 3. Включение функциональной опции.
Переходим в настройки плана счетов и активируем учет по складам (по количеству или по количеству и сумме).
Шаг 4. Оприходование на реальные склады.
На первую секунду нового года (1 января в 00:00:01) создаем документ Оприходование товаров. В табличную часть копируем все позиции из ранее созданного списания, но теперь в шапке или строках документа четко указываем наши новые реальные склады, на которые физически поступает товар.
В проводках этого документа также через ручную корректировку заменяем счет доходов (91.01) на вспомогательный счет 000. Баланс восстанавливается, обороты по счету 000 схлопываются в ноль, а товары теперь числятся на конкретных складах.
---
Если номенклатура компании исчисляется тысячами позиций, ручной перенос через документы списания и оприходования превращается в кошмар. В такой ситуации программисты используют внешние обработки для прямой записи субконто в базу данных без перепроведения документов-регистраторов.
Проанализируем пример кода, который выполняет заполнение пустого субконто Склады в проводках регистра бухгалтерии за определенный период:
Процедура ЗаполнитьСкладВПроводках(ВыбранныйСклад, ДатаНачала, ДатаКонца)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ХозрасчетныйДвижения.Регистратор КАК Регистратор
|ИЗ
| РегистрБухгалтерии.Хозрасчетный КАК ХозрасчетныйДвижения
|ГДЕ
| ХозрасчетныйДвижения.Период МЕЖДУ &ДатаНачала И &ДатаКонца
| И (ХозрасчетныйДвижения.СчетДт.ВидыСубконто.ВидСубконто = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады)
| ИЛИ ХозрасчетныйДвижения.СчетКт.ВидыСубконто.ВидСубконто = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады))";
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Запрос.УстановитьПараметр("ДатаКонца", ДатаКонца);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
НаборЗаписей.Прочитать();
Модифицирован = Ложь;
Для Каждого Запись Из НаборЗаписей Цикл
// Проверяем Дебет
Если Запись.СчетДт.ВидыСубконто.Найти(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады) <> Неопределено Тогда
Если Не ЗначениеЗаполнено(Запись.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады]) Тогда
Запись.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады] = ВыбранныйСклад;
Модифицирован = Истина;
КонецЕсли;
КонецЕсли;
// Проверяем Кредит
Если Запись.СчетКт.ВидыСубконто.Найти(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады) <> Неопределено Тогда
Если Не ЗначениеЗаполнено(Запись.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады]) Тогда
Запись.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады] = ВыбранныйСклад;
Модифицирован = Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если Модифицирован Тогда
НаборЗаписей.Записать();
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Этот программный способ позволяет «прописать» базовый склад во все исторические проводки. Оборотно-сальдовая ведомость останется сопоставимой, себестоимость не пересчитается, а пустые строки в субконто исчезнут, заменяясь на выбранный предопределенный склад. После этого вы сможете штатно выполнять любые перемещения на новые склады.
---
Если ваша организация ведет раздельный учет НДС (например, осуществляет экспортные операции, применяет ставку 0% или совмещает разные режимы налогообложения), включение складов задним числом таит в себе скрытую угрозу.
В «1С:Бухгалтерия 3.0» партионный учет для целей НДС контролируется по специальному регистру накопления Раздельный учет НДС. Измерения записей этого регистра жестко связаны со справочником Ключи аналитики учета затрат. В состав этого ключа входят: номенклатура, партия, счет учета и склад.
Если складской учет включается посреди года:
Для решения этой проблемы стандартных средств системы недостаточно. Потребуется помощь квалифицированного программиста 1С, который с помощью специальной обработки скорректирует ключи аналитики в движениях регистра накопления за переходный период.
---
Внедрение складского учета в уже работающей базе — ответственный шаг. Прежде чем выполнять любые действия в рабочей базе, обязательно создайте резервную копию или разверните тестовую копию базы данных. Протестируйте предложенные варианты (перенос через счет 000 или заполнение субконто обработкой), убедитесь в отсутствии расхождений по ОСВ и только после этого переносите изменения в рабочую среду.