Ситуация, когда при создании очередной Реализации товаров и услуг на основании частично отгруженного Заказа клиента система «подтягивает» все позиции заказа (включая уже отгруженные), является довольно распространенной в 1C:ERP. На первый взгляд это кажется критическим сбоем регистров, который не лечится обычным перепроведением. Проанализируем причины этого явления и разберем по шагам, как восстановить корректную работу системы.
В 1C:ERP связь между строками заказа и документами отгрузки осуществляется не только по ссылке на номенклатуру, но и по служебному реквизиту КодСтроки. Рассмотрим подробнее, как это работает: при добавлении товара в заказ каждой строке присваивается уникальный числовой идентификатор. Регистры накопления, такие как Заказы клиентов и Товары к отгрузке, хранят остатки именно в разрезе этого кода.
Выясним причину сбоя: Если в заказе после частичной отгрузки строки были скопированы, удалены и добавлены заново или загружены через внешнюю обработку, КодСтроки может дублироваться или не соответствовать тому, что уже записано в движениях по регистру. В результате система «видит» свободный остаток по конкретному коду строки и предлагает его к отгрузке повторно.
Для диагностики рекомендуется использовать консоль запросов и проверить содержимое табличной части «Товары» заказа и записи регистра Товары к отгрузке:
ВЫБРАТЬ
ЗаказТовары.Номенклатура,
ЗаказТовары.КодСтроки КАК КодВЗаказе,
ТоварыКОтгрузкеОстатки.КодСтроки КАК КодВРегистре,
ТоварыКОтгрузкеОстатки.КОтгрузкеОстаток
ИЗ
Документ.ЗаказКлиента.Товары КАК ЗаказТовары
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыКОтгрузке.Остатки КАК ТоварыКОтгрузкеОстатки
ПО ЗаказТовары.Ссылка = ТоварыКОтгрузкеОстатки.ДокументОтгрузки
ГДЕ
ЗаказТовары.Ссылка = &СсылкаНаЗаказ
Если вы обнаружите расхождения в кодах строк, обычное перепроведение не поможет. Потребуется программная корректировка Кода строки в заказе, чтобы он соответствовал движениям в регистрах.
Проанализируем ситуацию со стороны технологической платформы. В версиях платформы 8.3.17 (включая сборку 1851) и выше замечены случаи «разрыва итогов». Это означает, что данные в физических таблицах движений регистра корректны, но в таблице итогов (откуда система берет остатки для заполнения документов) хранятся неверные значения.
Рассмотрим решение через управление итогами:
Товары к отгрузке (и сопутствующий Заказы клиентов).В ERP 2.4 и 2.5 активно используются механизмы оффлайн-расчетов. Если включено распределение запасов в фоновом режиме, система может не успеть обновить оперативные остатки между двумя быстро созданными реализациями.
Также разберем ситуацию с ключами аналитики. При перепроведении документов могут возникнуть дубли в справочниках Ключи аналитики учета номенклатуры. Хотя визуально отчеты могут выглядеть правильно, механизмы проведения будут сбоить. Проанализируем состояние базы через регламентную операцию:
Зайдем в раздел НСИ и администрирование — Обслуживание — Корректировка данных — Исправление дублей ключей аналитики. Выполнение этой процедуры часто «лечит» необъяснимые сбои в подтяжке строк в документы.
Посмотрим на настройки склада. При использовании настройки «Сначала заказы, затем накладные, потом ордера», крайне важна последовательность статусов. Если в цепочке документов Заказ - Реализация - Ордер складской ордер был удален или отменен, но реализация осталась проведенной, регистр Товары к отгрузке может вести себя непредсказуемо, если нарушена жесткая связь Документ-основание.
Пошаговая проверка цепочки:
Чтобы в дальнейшем избежать «двоения» позиций при частичных отгрузках, рекомендуем придерживаться следующих правил:
Если проблема не решается перепроведением, наиболее эффективным методом является использование документа Корректировка регистров. С его помощью можно вручную закрыть «висящие» остатки в Товары к отгрузке по проблемным кодам строк, что позволит пользователям продолжить работу с заказом без его полной переделки.