сравнение загружаемого объекта с существующим
задача такова: нужно сравнивать загружаемый объект с уже существующим, пример - документ изменился в источнике, а в приемнике уже есть этот объект полученный в предыдущей выгрузке/загрузке, и если эти объекты не идентичны, при загрузке в приемнике вывести их на форму в которой пользователь примет решение загружать измененный объект или оставить текущий в приемнике.
собственно затык в том как отловить загружаемый объект перед записью в ИБ, на текущий момент решения не вижу
собственно затык в том как отловить загружаемый объект перед записью в ИБ, на текущий момент решения не вижу
По теме из базы знаний
- Универсальная загрузка любых документов из Excel с использованием нечеткого сравнения по реквизиту типа "Справочник"
- Универсальный обмен данными UNIDATA 1с77
- Выгрузка-загрузка любых данных из 1С (и измененных) в XML между похожими конфигурациями (ФАЙЛ, HTTP, COM) ЛЮБЫХ баз 1С 8.1-8.3 с обработкой и поиском данных по произвольным полям поиска
- Обработка ручного одностороннего переноса документов из УТ 10.2 в БП 2.0 через Com-соединение без использования правил обмена
- Организация обмена с базой филиала (розничного магазина) в торговой сети через XML (универсальный обмен)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Bukaska, я так и предполагал слелать, какраз нужно грузить в БП 2.0, т.е. обычные формы, если бы БД была на управляемых формах, то вариант с обработкой не прокатил бы,
предполагаю сравнивать объекты в обработчике При загрузке,
в нем есть интересная инфа "Объект - Произвольный. Загружаемый, модифицируемый объект, созданный по ссылке или найденный в информационной базе. Если способ идентификации объекта в файле не указан (т.е. отсутствует узел "Ссылка"), то параметр содержит значение Неопределено. В этом случае в обработчике возможна произвольная инициализация загружаемого объекта, в противном случае, объект будет создан автоматически."
т.е. мне нужно сравнить все реквизиты Объекта с найденный объектом ИБ, для этого я думаю при выгрузке передавать в параметры объекта УИД, и если в приемнике ОбъектНайден, то по УИД выцеплять существующий (найденный) объект в БД.
предполагаю сравнивать объекты в обработчике При загрузке,
в нем есть интересная инфа "Объект - Произвольный. Загружаемый, модифицируемый объект, созданный по ссылке или найденный в информационной базе. Если способ идентификации объекта в файле не указан (т.е. отсутствует узел "Ссылка"), то параметр содержит значение Неопределено. В этом случае в обработчике возможна произвольная инициализация загружаемого объекта, в противном случае, объект будет создан автоматически."
т.е. мне нужно сравнить все реквизиты Объекта с найденный объектом ИБ, для этого я думаю при выгрузке передавать в параметры объекта УИД, и если в приемнике ОбъектНайден, то по УИД выцеплять существующий (найденный) объект в БД.
В настройках ПКО есть же флажок "Не замещать существующие объекты в приемнике при загрузке, а только создавать новые и заполнять их". Это для ключевых полей.
А если сравнивать все поля, то в ПКО есть событие "После загрузки", и в нем переменные Объект и Ссылка, причем Объект еще не записан в базу и соответственно в них могуть быть различия.
А если сравнивать все поля, то в ПКО есть событие "После загрузки", и в нем переменные Объект и Ссылка, причем Объект еще не записан в базу и соответственно в них могуть быть различия.
Попробуйте сохранять интересующие Вас реквизиты в Параметры в КД.
А в событии после выгрузки сравнивать значения из Параметров и из Объекта, и соответственно дальше записывать расхождения в регистр или в документ.
Я бы писал в регистр, кстати :-)
А в конце загрузки поставить "Отказ" = Истина;
Хотя не уверен, что этот отказ отработает.
А в событии после выгрузки сравнивать значения из Параметров и из Объекта, и соответственно дальше записывать расхождения в регистр или в документ.
Я бы писал в регистр, кстати :-)
А в конце загрузки поставить "Отказ" = Истина;
Хотя не уверен, что этот отказ отработает.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот