В современных конфигурациях 1С, таких как Управление торговлей 11, ERP Управление предприятием и Комплексная автоматизация, одной из самых коварных проблем является нарушение целостности регистра «Аналитика учета номенклатуры». Чаще всего это происходит, когда пользователь меняет «Вид номенклатуры» или настройки использования характеристик у позиции, по которой уже были движения или есть текущие остатки. В этой статье мы подробно разберем, почему система перестает «видеть» товар, и проанализируем методы исправления этой ситуации — для этого есть анализ расхождений остатков на складах и организациях.
Для начала выясним причину возникновения ошибки. Регистр сведений АналитикаУчетаНоменклатуры служит вспомогательным механизмом для оптимизации производительности. Вместо того чтобы хранить в каждом регистре накопления (таких как СебестоимостьТоваров, ВыручкаИПродажи) полный набор данных (номенклатура, характеристика, склад, назначение, серия), система генерирует уникальный идентификатор — Ключ аналитики номенклатуры.
Когда мы меняем настройки в карточке номенклатуры (например, меняем вид номенклатуры, где по-другому настроены характеристики), алгоритм, по которому система вычисляет этот ключ, меняется. Старые записи в регистрах остаются привязанными к прежнему идентификатору, а новые документы пытаются найти или создать ключ по новым правилам. В итоге система выдает ошибку об отсутствии товара на остатках, хотя фактически он числится в базе, но под «старым» ключом.
Рассмотрим ситуацию, когда номенклатура изменена, остатки есть, но документ «Реализация товаров и услуг» или «Перемещение товаров» не проводится. Проблема часто кроется в скрытой табличной части ВидыЗапасов — поможет исправление ошибок в видах запасов и ГТД. Проанализируем алгоритм действий:
Видах запасов могла остаться ссылка на старую аналитику.Этот метод помогает в 90% случаев, когда ошибка возникает в конкретном документе при попытке списания остатков.
Если проблема носит массовый характер или в системе образовались «фантомные» дубли ключей, разберем более глубокий технический подход — есть исправление ошибок в ключах аналитики и себестоимости. Посмотрим на последовательность действий в справочнике ключей:
КлючиАналитикиНоменклатуры. Проанализируем элементы: иногда там появляются записи, помеченные восклицательным знаком или не имеющие правильной привязки в регистре сведений АналитикаУчетаНоменклатуры.КлючиАналитикиНоменклатуры.РегистрацияСебестоимостиНоменклатуры, придется временно пометить их на удаление, выполнить объединение ключей, а затем перепровести расчет себестоимости за соответствующие месяцы.Иногда запись в регистре сведений вовсе отсутствует. В этом случае выполним ручную привязку:
// Пример логики восстановления связи (условно)
Запись = РегистрыСведений.АналитикаУчетаНоменклатуры.СоздатьМенеджерЗаписи();
Запись.Номенклатура = СсылкаНаНоменклатуру;
Запись.Характеристика = СсылкаНаХарактеристику;
Запись.Склад = СсылкаНаСклад;
Запись.КлючАналитики = НайденныйИлиСозданныйКлюч;
Запись.Записать();
Если мы не хотим погружаться в дебри программного исправления регистров, разберем методику «Пересортицы». Это официально рекомендуемый подход, если нужно «перекинуть» остатки со старых настроек на новые:
Выясним причину этой ошибки при проведении документа РасчетСебестоимостиТоваров. Она возникает, когда в движениях по регистру СтоимостьТоваров система пытается записать пустую ссылку в поле аналитики. Это происходит из-за того, что механизм расчета не может найти соответствие между физическим товаром и ключом в регистре АналитикаУчетаНоменклатуры. Для этой задачи есть анализ расхождений регистров себестоимости.
Чтобы решить эту проблему, выполним следующие шаги:
Проанализируем последствия простого изменения вида номенклатуры в уже используемой карточке. 1С крайне не рекомендует это делать, и система обычно выводит предупреждение. Если мы все же это сделали:
КлючиАналитикиУчетаПартий (в ERP и УТ 11.5).Золотое правило: Если нужно изменить принципиальные параметры учета (вид номенклатуры, использование характеристик, единицу измерения для отчетов), лучше всего создать новую карточку номенклатуры и перенести на нее остатки. Это избавит вас от многочасового «лечения» регистров и поиска причин неверной себестоимости в закрытых периодах.