В процессе работы с 1С:ERP 2.5 (особенно на релизах ветки 2.5.9) пользователи и разработчики часто сталкиваются с ситуацией, когда при попытке перевода Этапа производства в статус «Начат» с одновременным заполнением табличной части «Расход», система выдает ошибку проведения. Текст ошибки гласит: «Регистр "Себестоимость товаров" И "Движения Номенклатура-Номенклатура" имеют пустую аналитику учета номенклатуры». Разберем подробно, почему это происходит и как устранить данную проблему, проанализировав механизмы работы конфигурации.
Проанализируем ситуацию: у нас есть набор полуфабрикатов (А, Б, В), которые выпускаются в цеховую кладовую. Эти полуфабрикаты являются компонентами для сборки комплекта С. При попытке начать этап производства комплекта С, система должна зафиксировать расход компонентов. Именно в этот момент возникают некорректные движения в регистрах. Для диагностики подобных расхождений полезно использовать отчет для сравнения товаров на складах и данных регистра себестоимости, который поможет визуализировать разрывы в аналитике.
Если мы заглянем в отладчик или посмотрим движения документа, то увидим следующую картину в регистре СебестоимостьТоваров:
КорАналитикаУчетаНоменклатуры заполнено.Такое поведение системы говорит о том, что механизм формирования ключей аналитики не смог сопоставить данные из табличной части документа с существующими (или вновь создаваемыми) записями в справочнике КлючиАналитикиУчетаНоменклатуры. Рассмотрим подробнее причины возникновения этого разрыва.
В ERP 2.5 практически все движения по регистрам накопления завязаны на идентификаторы (ключи). Если в справочнике ключей аналитики возникли дубли или «битые» ссылки, документ не сможет корректно подтянуть нужное значение. Выясним причину через проверку целостности данных. В случаях, когда ключи не были созданы автоматически при миграции данных или сбоях, рекомендуется использовать обработку для создания отсутствующих ключей аналитики учета.
Что необходимо сделать:
ОбновлениеКлючейАналитики.АналитикаУчетаНоменклатуры для данной строки.Часто проблема кроется в настройке схемы обеспечения. Если полуфабрикаты А, Б, В выпускаются в кладовую, а для комплекта С настроено обеспечение «из этой же кладовой», система может конфликтовать, если подразделение-исполнитель этапа С не имеет прав или четкой привязки к этой кладовой.
Проанализируем настройки:
Если в цепочке производства используется обособленный учет (под заказ), то реквизит Назначение становится критически важным для формирования ключа аналитики. Если в этапах на выпуск А, Б, В указано одно назначение (или оно пустое), а в этапе на комплект С — другое, система выдаст ошибку пустой аналитики, так как не сможет найти подходящий остаток.
Разберем по шагам проверку назначений:
В версиях 1С:ERP 2.5.9.xxx был зафиксирован ряд программных ошибок (багов), связанных с формированием временных таблиц при проведении этапа в статусе «Начат». Система пытается сформировать корреспондирующие движения для НЗП, но теряет ссылку на аналитику склада.
Рассмотрим пример того, как программно можно проверить заполнение аналитики перед записью (для разработчиков):
// В модуле проведения можно выполнить проверку подготовленных таблиц
Для Каждого СтрокаТЧ Из ТаблицаСебестоимость Цикл
Если Не ЗначениеЗаполнено(СтрокаТЧ.АналитикаУчетаНоменклатуры) Тогда
Сообщить("Обнаружена пустая аналитика для номенклатуры: " + СтрокаТЧ.Номенклатура);
// Здесь можно поставить точку останова и проследить путь формирования ключа
КонецЕсли;
КонецЦикла;
Если конфигурация типовая и изменения не вносились, а ошибка сохраняется, рекомендуется рассмотреть возможность обновления до актуального исправительного релиза или следующей минорной версии (например, 2.5.12+), где механизмы распределения затрат были существенно переработаны.
Если проблему нужно решить оперативно, а обновление невозможно, выполним следующие действия:
Выясним причину появления пустой строки в ДвиженияНоменклатураНоменклатура: это происходит потому, что при расходе материалов со склада в производство (в НЗП) система должна создать «пару» движений. Если одно из них имеет пустую аналитику, значит, система «потеряла» информацию о месте хранения или о самой номенклатуре в одной из временных таблиц запроса проведения. Чаще всего это связано с тем, что спецификация на комплект С ссылается на старые или некорректные версии спецификаций полуфабрикатов.
Подведем итог: для решения проблемы необходимо последовательно проверить справочник ключей аналитики, единообразие назначений в цепочке производства и корректность привязки цеховых кладовых к подразделениям. В большинстве случаев помогает перевыбор данных в документе или обновление ключей через регламентные операции.