Перенос справочника с помощью обработки TRANREF.ERT #508308


#0 by Nic1
Пытаюсь перенести справочник между базами с одинаковой конфой, причем не весь справочник, а только добавленные новые элементы. Обнаружил такой момент. Если справочник одноуровневый, все переносится нормально. Если многоуровневый, то элемент переносится только в том случае, если его родитель тоже является новой группой и переносился в текущем сеансе переноса. Если же такой родитель уже есть, то элемент не переносится. Заглянул в код обработки. Там как бы такой принцип: создается таблица соответствия - ИД элемента в старой базе и ИД элемента в новой базе. Если родитель в текущем сеансе переносится, то соответствие есть и тогда переносится и элемент. Если родитель не переносится, то соответствия нет, и элемент тоже не переносится. Зачем так сделано? Или я чего-то не правильно делаю?
#1 by AlexYurg
Кто мешает тебе "подпилить" обработку под свои нужды? Тем более, что ты уже в ней разобрался.
#2 by Cthulhu
где ты там ИД-ы то нашёл???
#3 by Nic1
если оно так и должно работать, то так и придется подпиливать. Просто думал, что может что-то не так делаю.. Имею в виду результат оператора ЗначениеВСтрокуВнутр, я так понимаю, там ИД являются частью полученной строки. Может, не так выразился, но все равно не в этом суть.
#4 by Nic1
Например, {"B","0","0","105","0","0","     83857   "} #Родитель Вот "     83857   " видимо это внутренний ИД, хотя может и ошибаюсь..
#5 by Cthulhu
: єто внутреннее представление обїекта данных, вообще-то. я же про то, с чего ты взял что синхронизация по ИД-ам????
#6 by Nic1
в таблице соответствий синхронизация идет по внутреннему представлению объекта. При переносе элемента, если в таблице соответствий не найден его родитель, то переноса не происходит. А родитель там бывает только тогда, когда он уже был ранее перенесен в текущем сеансе переноса.
#7 by Nic1
Что любопытно, при выгрузке код родителя не выгружается. Поэтому он и не пытается найти такого родителя в базе-приемнике, и не загружает сам элемент. Вот пример выгрузки для элемента:
#8 by Nic1
ой, это не из файла выгрузки, а из таблицы соответствий...
#9 by Nic1
Ну в общем ясно, при выгрузке элемента не выгружается код родителя, а только его внутреннее представление. А внутренние представления элементов в базах разные. Поэтому если родитель в текущем не переносился, обработка не может установить для него родителя, поэтому и не загружает.
#10 by Nic1
Вопрос, а можно ли при переносе устанавливать самому внутренний ИД для вновь создаваемого элемента, или на это никак повлиять нельзя и платформа всегда создает новый ИД?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С