Переход с версии 1С:Бухгалтерия ПРОФ на КОРП — это не просто обновление интерфейса, а серьезное изменение структуры хранения данных в регистре бухгалтерии. Одной из самых частых проблем, с которой сталкиваются пользователи и технические специалисты, является невозможность списать материалы, находящиеся в эксплуатации (счет МЦ.04). Система выдает ошибку о нехватке остатка, хотя в отчетах количество отображается корректно.
Разберем детально, почему так происходит и какими способами можно восстановить работоспособность базы данных.
В версии ПРОФ учет на забалансовых счетах (в частности, МЦ.04 «Инвентарь и хозяйственные принадлежности в эксплуатации») ведется в разрезе номенклатуры и ответственных лиц. Реквизит Местонахождение в документе «Передача материалов в эксплуатацию» часто игнорируется или носит чисто информационный характер, так как на плане счетов в ПРОФ по этим счетам признак «Учет по подразделениям» обычно выключен.
При переходе на КОРП ситуация кардинально меняется:
МЦ.04 (и многих других) автоматически включается признак Учет по подразделениям.Подразделение регистра бухгалтерии.Подразделение либо заполнено значением NULL (техническое отсутствие значения), либо пустой ссылкой. Когда вы пытаетесь провести новый документ «Списание материалов из эксплуатации», система подставляет в запрос подразделение из поля Местонахождение. Так как на этом конкретном подразделении остатков нет (они числятся на «пустом» подразделении), возникает ошибка нехватки количества.Проанализируем разницу в значениях: для системы 1С значение NULL, Неопределено и ПустаяСсылка — это разные объекты. Проведение документа в КОРП всегда ищет совпадение по конкретной ссылке подразделения.
Это наиболее правильный методический путь. Нам необходимо сделать так, чтобы старые остатки «переехали» на те подразделения, с которых мы планируем их списывать. Разберем по шагам, как это реализовать:
1. Воспользуемся стандартной обработкой Групповое изменение реквизитов.
2. Отберем документы Передача материалов в эксплуатацию за все прошлые периоды, по которым еще есть остатки на счете МЦ.04.
3. Установим в этих документах реквизит Местонахождение (подразделение). Если фактическое подразделение неизвестно, можно выбрать «Основное подразделение».
4. Проведем эти документы повторно. Внимание: это изменит движения в закрытых периодах. Если перезакрытие периодов недопустимо, переходите к Способу 2.
5. После перепроведения старых передач документ Списание материалов из эксплуатации увидит остатки по нужному подразделению и проведется без ошибок.
Если вы не хотите менять старые документы и перепроводить прошлые годы, можно выполнить «выравнивание» остатков на дату перехода (например, на 31 декабря предыдущего года или 1-е число текущего месяца).
Рассмотрим алгоритм действий:
Корректировка записей регистров.МЦ.04, Подразделение — Пустая ссылка, Номенклатура и Физ.лицо как в остатках.МЦ.04, Подразделение — Ваше реальное подразделение (например, «Склад»), те же Номенклатура и Физ.лицо.Таким образом, мы перенесем количественный остаток с «пустоты» на конкретную аналитику, не затрагивая первичные документы прошлых лет.
Иногда пользователи пытаются просто снять галочку в плане счетов, но в КОРП она часто заблокирована или недоступна для изменения в пользовательском режиме. Рассмотрим, как программно отключить этот признак учета, если вы уверены, что аналитика по подразделениям на счете МЦ.04 вам не нужна.
Для этого можно создать внешнюю обработку со следующим кодом:
// Выбираем нужный счет из плана счетов
СчетОбъект = ПланыСчетов.Хозрасчетный.МЦ04.ПолучитьОбъект();
// Отключаем признак учета по подразделениям
СчетОбъект.УчетПоПодразделениям = Ложь;
// Записываем изменения
Попытка
СчетОбъект.Записать();
Сообщить("Учет по подразделениям на счете МЦ.04 успешно отключен.");
Исключение
Сообщить("Ошибка при записи счета: " + ОписаниеОшибки());
КонецПопытки;
Важный нюанс: Помните, что при очередном обновлении конфигурации или при выполнении регламентных операций по обновлению ИБ, этот признак может снова включиться автоматически, так как это заложено в логике КОРП-версии. Кроме того, полное удаление аналитики подразделения со счета приведет к потере этих данных в проводках навсегда (при повторном включении они не восстановятся).
Если вы хотите сохранить типовую конфигурацию на поддержке, но при этом запретить системе требовать подразделение на конкретных счетах, можно создать Расширение. В расширении можно переопределить модуль проведения документов списания, чтобы при проверке остатков система игнорировала измерение подразделения для забалансовых счетов.
Проанализируем пример кода, который можно внедрить в процедуру перед расчетом остатков:
&Вместо("СформироватьЗапросПоОстаткам")
Процедура Мой_СформироватьЗапросПоОстаткам(Параметры)
// Здесь мы можем модифицировать текст запроса,
// чтобы условие по подразделению не применялось для счета МЦ.04
ТекстЗапроса = Параметры.ТекстЗапроса;
// Логика замены условия ГДЕ Подразделение = &Подразделение
// на более мягкое условие или его исключение
КонецПроцедуры
Однако этот путь является наиболее трудозатратным и требует регулярной поддержки при обновлениях.
Выясним причину выбора конкретного метода. Если ваша организация планирует полноценно использовать возможности КОРП (обособленные подразделения, расчет налога на прибыль по филиалам), то единственный верный путь — это приведение данных к стандартам КОРП (Способ 1 или 2). Игнорирование подразделений может привести к некорректному заполнению регламентированной отчетности в будущем.
Подведем итог совместной работы:
Это позволит вам продолжить работу в версии КОРП без критических ошибок и сохранить чистоту ведения бухгалтерского учета.