Имя: Пароль:
1C
 
Конвертация данных 2.1. Значение галки "Не запоминать выгруженные объекты"
,
0 kabanoff
 
23.03.11
15:32
Привет, Сообщество!
Работаю с Конвертацией данных 2.1.4.1. Столкнулся вот с такой проблемой. Если галка "Не запоминать выгруженные объекты" снята, то объект 100% выгружается, а если установлена, то 50/50%. Так у меня получилось с объектом "Подразделение" (справочник).

Например, данные таб.части документа N:
(Физ.лицо)  | (Подразделение)
Иванов Иван | Прикубанский округ
Петров Петр | Прикубанский округ

... выгрузились как:
(Физ.лицо)  | (Подразделение)
Иванов Иван | Прикубанский округ
Петров Петр | <пустая ссылка>

Вопрос - почему?
1 Vovan1975
 
23.03.11
15:35
не поверишь...

потому что при снятой галочке он выгружает объект только один раз, и затем в некоем соответствии запоминает, что этот объект выгружался и при следующем упонимании этого объекта он уже в файл обмена не записывается...
2 kabanoff
 
23.03.11
15:40
(0) Добавлю немного инфы: переношу данные подсистемы N между двумя базами. ПКО "ФизЛица", ПКО "Подразделения" и ПКО "Документ N" входят в эту подсистему.

Правила работают по условиям:
1. Объекты подсистемы N выгружаются полностью. Загружаются с полной заменой найденных объектов.
2. Объекты, не входящие в подсистему N, не выгружаются. При загрузке ссылочных объектов происходит только поиск по ссылке.
3. Все объекты сначала ищутся по ГУИДу, потом по полям поиска.
3 kabanoff
 
23.03.11
15:44
(1) Я-то понимаю, что повторно объект не выгружается. Вопрос в том, почему не выгружается ссылка?
Если открыть файл выгрузки, найти тег <Запись>, принадлежащую таб.части документа N, то в Записи №1 (Иванов Иван) ссылка на подразделение выгрузилась, а в Записи №2 (Петров Петр) - нет (тупо тег со ссылкой пропущен). Почему?
4 kabanoff
 
23.03.11
16:08
?
5 ValeriTim
 
23.03.11
16:15
(0) дополняю (1)
Для того, чтобы понять этот механизм и правильно выставлять эти галки надо посидеть с отладчиком. Все дело в том, что при выгрузке объекта ссылка на него заносится в некую таблицу и при снятой галке проверяется наличие ссылки на этот объект в той самой таблице, и если ссылка в таблице найдена, то выгружаются только поля поиска (в 7.7 точно, в 8 может и только ссылка на уже выгруженный объект - точно сейчас не помню), т.к. объект уже выгружался и повторная выгрузка его не требуется. Вся загвоздка состоит в той таблице, в которую заносится ссылка на выгруженный объект - объекты могут быть разные (объект генерится кодом), а вот ссылка на него получится одинаковая (выгружаемого объекта в базе источнике может вообще не быть). Вот тут то и получается своеобразная "коллизия".
6 kabanoff
 
23.03.11
16:58
(5) Спасибо за участие. Вот только не пойму фразу:
"объекты могут быть разные (объект генерится кодом), а вот ссылка на него получится одинаковая (выгружаемого объекта в базе источнике может вообще не быть)".

Как могут объекты одной ссылки быть разными? Как в базе-Источнике может не быть выгружаемого объекта?
7 Defender aka LINN
 
23.03.11
17:03
(6) Для того, чтобы выгрузить объект, он не обязан существовать. Такой вот фокус :)
Если нет элемента "Ссылка" в фале данных - скорее всего, не определилось ПКО.
8 kabanoff
 
23.03.11
17:18
(7) Ну хоть здесь с тобой спишемся :)
Чудеса, да и только! :) Ладно, пойду курить отладчик.

Спасибо всем за помощь!
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.