При работе в конфигурациях 1С:Комплексная автоматизация 2 и 1С:ERP Управление предприятием пользователи часто сталкиваются с неприятной ситуацией: при автоматическом заполнении документа Пересчет товаров (инвентаризация) табличная часть заполняется дублями. Одна и та же номенклатурная позиция может повториться 5, 10 или более раз, даже если по ней нет фактических остатков или серии отключены. Давайте разберем причины этой проблемы и найдем способы её решения.
Одной из самых частых причин дублирования строк является некорректное отключение серийного учета. Если в начале работы с базой серии были включены и по ним велись записи, а затем функциональная опция была отключена, данные в регистрах могут остаться в «подвешенном» состоянии. Рассмотрим, как это влияет на заполнение документа.
Система компоновки данных (СКД), которая отвечает за формирование списка товаров в пересчете, обращается к таблицам остатков. Если в регистре накопления ТоварыНаСкладах или СвободныеОстатки остались записи с заполненными измерениями Серия, запрос выберет каждую такую запись отдельно. Поскольку в интерфейсе колонка «Серия» при выключенной опции скрыта, пользователю кажется, что строки абсолютно идентичны.
Для исправления ситуации выполним следующие шаги:
Ввод остатков. Если в них были указаны серии, необходимо очистить эти данные в табличных частях и перепровести документы.В современных версиях КА 2 и ERP данные для отчетов и документов часто берутся из агрегированных таблиц (итогов). Если произошел технический сбой или некорректное обновление конфигурации, регистр сведений Складские итоги может содержать избыточные записи. Запрос заполнения пересчета, соединяясь с этим регистром, будет множить номенклатуру на количество ошибочных записей в итогах.
Разберем, как восстановить корректность данных:
Товары на складах.Заполнение документа Пересчет товаров реализовано через механизм СКД. Текст запроса находится в макете ЗаполнениеПересчетаТоваров. Ошибка может крыться в самом алгоритме соединения таблиц. Рассмотрим упрощенный пример того, как некорректное соединение (JOIN) вызывает дубли:
ВЫБРАТЬ
Остатки.Номенклатура,
Остатки.Характеристика,
Упаковки.Ссылка КАК Упаковка
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, Склад = &Склад) КАК Остатки
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.УпаковкиЕдиницыИзмерения КАК Упаковки
ПО Остатки.Номенклатура = Упаковки.Владелец
Если в справочнике УпаковкиЕдиницыИзмерения для одной номенклатуры заведено 5 упаковок, то при ЛЕВОМ СОЕДИНЕНИИ без фильтра по конкретной упаковке или без группировки СГРУППИРОВАТЬ ПО, система выведет 5 строк. В типовых конфигурациях 1С:КА 2.4.10 встречались ошибки, когда запрос «цеплял» лишние записи из-за отсутствия жестких условий по типам запасов или складским ячейкам.
Выясним причину дублей с помощью метода «Поиска ссылок»:
Штрихкоды номенклатуры или Настройки адресного хранения, которые «размножают» результат запроса.Система может дублировать строки, если на складе числятся остатки одного и того же товара, но с разными типами запасов (например, «Собственный товар» и «Товар на комиссии»). В документе Пересчет товаров колонка с типом запаса может быть не выведена, что создает иллюзию ошибки. Проанализируем регистр Товары организации, чтобы убедиться, что товар не разделен по разным налогообложениям или владельцам.
Также стоит обратить внимание на использование упаковок. В некоторых релизах была зафиксирована ошибка: если для товара создано несколько индивидуальных упаковок, запрос СКД дублировал строку номенклатуры по количеству этих упаковок, даже если в документе единицей измерения выступает базовая единица (штуки).
Если вы убедились, что данные в базе чисты, а итоги пересчитаны, но проблема сохраняется, выполните следующие действия:
Администрирование — Обслуживание — Обновление программы — Установленные исправления. Для версии 2.4.10 выпускались специальные патчи (например, EF_0013xxxx), исправляющие алгоритмы заполнения складских документов.Таким образом, мы выяснили, что дублирование в пересчете товаров — это комплексная проблема, требующая анализа как настроек системы (серии, упаковки), так и технического состояния итогов регистров.