Загрузка данных в 1С:УПП (Управление производственным предприятием) за прошедшие периоды — это задача, требующая предельной осторожности. Одной из главных проблем, с которой сталкиваются специалисты, является появление дублей документов. В этой статье мы подробно разберем, как подготовиться к загрузке, какими инструментами искать уже созданные дубли и как правильно настроить процесс, чтобы избежать их появления в будущем.
Прежде чем приступать к поиску, нам необходимо четко сформулировать, что именно мы считаем дублем. В отличие от справочников, где уникальность часто определяется по коду или ИНН, для документов ситуация сложнее. Проанализируем типичные критерии, по которым система или пользователь могут идентифицировать лишнюю запись:
ПоступлениеТоваровУслуг и ОприходованиеТоваров) не могут быть дублями друг друга формально, но могут дублировать хозяйственную операцию.Рассмотрим совет опытных специалистов: «переносите по ссылкам — не будет дублей». Что это означает на практике? При использовании механизмов обмена (например, Конвертация данных 2.0) ключевым фактором является УникальныйИдентификатор (GUID).
Если мы загружаем документы, используя поиск по внутреннему идентификатору, 1С сначала проверяет наличие объекта с таким GUID в базе. Если объект найден, он обновляется, если нет — создается новый. Это гарантированный способ избежать технических дублей. Если же GUID объектов в источнике и приемнике различаются, необходимо настроить Поля поиска в правилах обмена (ПКО). Типичная комбинация для поиска документа: Дата + Номер + Организация.
Если загрузка уже произведена и вы подозреваете наличие лишних документов, разберем, как быстро найти их с помощью «Консоли запросов». Это наиболее оперативный метод, не требующий установки дополнительных расширений. Проанализируем пример запроса для поиска дублей документа ПлатежноеПоручениеИсходящее:
ВЫБРАТЬ
Платежка.Номер,
Платежка.Дата,
Платежка.Контрагент,
Платежка.СуммаДокумента,
КОЛИЧЕСТВО(*) КАК КоличествоДублей
ИЗ
Документ.ПлатежноеПоручениеИсходящее КАК Платежка
ГДЕ
Платежка.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
СГРУППИРОВАТЬ ПО
Платежка.Номер,
Платежка.Дата,
Платежка.Контрагент,
Платежка.СуммаДокумента
ИМЕЮЩИЕ
КОЛИЧЕСТВО(*) > 1
В данном запросе мы группируем данные по ключевым полям. Условие ИМЕЮЩИЕ КОЛИЧЕСТВО(*) > 1 отсеивает уникальные документы, оставляя только те группы, где параметры совпадают. После выполнения запроса мы получим список «подозрительных» реквизитов, по которым сможем детально изучить документы в списке.
Для профессиональной работы с дублями в 1С:УПП рекомендуется использовать внешнюю обработку «Инструменты разработчика» (автор — Тормозит). Разберем по шагам, как работает поиск дублей в этом инструменте:
РеализацияТоваровУслуг).Выясним причину, почему в УПП нельзя просто удалить найденные дубли. Конфигурация УПП крайне чувствительна к хронологии. Документы делают движения по сложным регистрам накопления: «Партии товаров на складах», «Взаиморасчеты с контрагентами», «Затраты».
Если вы нашли два одинаковых документа и один из них удалили, необходимо выполнить следующие действия:
В ситуациях, когда объем загружаемых данных исчисляется сотнями тысяч строк, стандартные средства 1С могут работать медленно. Рассмотрим скриптовый метод предварительной проверки. Если ваша база работает на MS SQL Server, можно выполнить быстрый запрос к таблицам документов (например, _Document150) для поиска совпадений по полям _Number и _Date_Time еще до того, как объект будет создан в среде 1С. Это позволит предотвратить запись дубля на уровне логики загрузчика.
Резюме: Для успешной борьбы с дублями в 1С:УПП мы рекомендуем комбинированный подход: жесткая настройка полей поиска в правилах обмена для предотвращения, использование консоли запросов для быстрого аудита и применение специализированных обработок («Инструменты разработчика») для корректного слияния объектов без потери данных в движениях регистров.