Обработка предназначена для запуска в базе-источнике. Предварительно из приёмника нужно каким-либо способом получить список битых ссылок или GUID'ов объектов, которые требуется выгрузить. Затем список нужно сохранить в файл в формате табличного документа mxl.
Рассчитана на конфигурации с БСП. Тестировалась на "Рознице" версии 2.3.6.17 (синхронизация с Бухгалтерией 3.0) и в "Бухгалтерии предприятия" версии 3.0.84.31 (синхронизация с ЗУП 3.1).
Регистрация в источнике идёт по GUID из приёмника! Обработка подходит только для ИС, в которых GUID'ы объектов совпадают.
Вариант 1. Регистрация "битых ссылок"
У нас между базами "Розница" и "Бухгалтерия предприятия" настроена (почти типовая) синхронизация. После выгрузки данных в Бухгалтерии обнаружили ряд отчётов о розничных продажах с "Объект не найден" в списке товаров. Для выявления подобных документов был написан простенький отчёт на СКД с вот таким запросом:
ВЫБРАТЬ
ОтчетОРозничныхПродажахТовары.Ссылка КАК Ссылка,
ОтчетОРозничныхПродажахТовары.Номенклатура КАК Номенклатура,
ОтчетОРозничныхПродажахТовары.НомерСтроки КАК НомерСтроки
ИЗ
Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары
ГДЕ
ОтчетОРозничныхПродажахТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
И НЕ ОтчетОРозничныхПродажахТовары.Номенклатура ЕСТЬ NULL
И ОтчетОРозничныхПродажахТовары.Номенклатура.Код ЕСТЬ NULL
Формируем отчёт:
Это в примере такая номенклатура только одна, а если их несколько сотен? По одному регистрировать грустно. Грузить весь справочник, или снова все документы (после установки в ПРО флага выгрузки номенклатуры "при необходимости") долго. Так и родилась эта обработка.
Копируем колонку с номенклатурой в новый табличный документ, сохраняем файл mxl. Можно и без отчёта, вывести результат просто в консоли запросов и скопировать колонку с номенклатурой в новый файл.
Переходим в "Розницу". Выбираем тип ссылок, в данном случае это у нас "Номенклатура". Нажимаем "Загрузить файл", выбираем наш сохранённый mxl.
Обработка преобразовывает строки вида "Объект не найден" в GUID'ы, а затем ищет по ним ссылки в базе. Вот что-то и нашлось:
В списке справа указываем узлы обмена, на которых нужно зарегистрировать изменения, жмём соответствующую кнопку. При регистрации будут учтены отборы на узлах.
Вариант 2. Регистрация по GUID
Также можно выгрузить из базы-приёмника список GUID существующих объектов, если их по какой-то причине надо перезагрузить, а отбирать в источнике не представляется возможным. Ну, например, уже в Бухгалтерии кто-то накосячил и отнёс рандомные ООРП не на тот склад, а нам нужно вернуть как было. Формируем в приёмнике отчёт на СКД с нужным отбором и вычисляемым полем с GUID:
Копируем колонку с GUID, сохраняем в mxl:
Переходим в Розницу, открываем обработку. Тип ссылок на этот раз - "Отчет о розничных продажах", нажимаем "Загрузить файл", любуемся списком документов, затем выбираем нужный узел и регистрируем изменения.
Отчёт о "битых" ссылках для БП 3.0 можно скачать здесь.
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.161.19