Создание в базе назначения элемента справочника с таким же УИД, как и в базе-источнике данных через COM-соединение
Не могу через ком соединение перенести элемент справочника "Физлица" из одной базы в другую с сохранением УИД. Подскажите, пожалуйста, что может быть не так, и как это сделать?...
Пытаюсь совершить обмен с использованием COM-соединения между УПП1.3 и ДО2.0.16.1 (документооборот). Платформа 8.3.9.1850. Физическое лицо из одной базы кидаю в другую. Com-соединение создается.
Ответственный участок кода
Далее - либо так:
либо так:
Выдает ошибку
При этом тип переменной УИДФизлицаВИсточнике по табло - "УникальныйИдентификатор", т.е. то, что надо.
На одной базе (документооборот) подобные манипуляции проходили без проблем. Пример рабочего кода (ссылку удается получить)
Считаем, что база получатель изначально пуста, поэтому проблема возможного задвоения ссылок нас интересовать не должна...
Помогите, кто чем может, пожалуйста
Пытаюсь совершить обмен с использованием COM-соединения между УПП1.3 и ДО2.0.16.1 (документооборот). Платформа 8.3.9.1850. Физическое лицо из одной базы кидаю в другую. Com-соединение создается.
Ответственный участок кода
ОбъектФизЛицо = Неопределено;
// Задание УИД и ссылки для элемента справочника, создаваемого в базе получателя
СсылкаНаПереносимыйЭлементСправочника = ВыборкаДетальныеЗаписи.Ссылка;
УИДФизлицаВИсточнике = СсылкаНаПереносимыйЭлементСправочника.УникальныйИдентификатор();
// Переход в базу получателя
СсылкаДляЭлементаСоздаваемогоНаПолучателе = Соединение.Справочники.ФизическиеЛица.ПолучитьСсылку(УИДФизлицаВИсточнике);
Далее - либо так:
ОбъектФизЛицо = Соединение.Справочники.ФизическиеЛица.СоздатьГруппу(СсылкаДляЭлементаСоздаваемогоНаПолучателе);
либо так:
ОбъектФизЛицо = Соединение.Справочники.ФизическиеЛица.СоздатьЭлемент(СсылкаДляЭлементаСоздаваемогоНаПолучателе);
Выдает ошибку
{ВнешняяОбработка.ПеребросВсехФизическихЛицВДО.Форма.Форма.Форма(132)}: Ошибка при вызове метода контекста (ПолучитьСсылку)
СсылкаДляЭлементаСоздаваемогоНаПолучателе = Соединение.Справочники.ФизическиеЛица.ПолучитьСсылку(УИДФизлицаВИсточнике);
по причине:
Произошла исключительная ситуация (1C:Enterprise 8.3.9.1850): Несоответствие типов (параметр номер '1')
СсылкаДляЭлементаСоздаваемогоНаПолучателе = Соединение.Справочники.ФизическиеЛица.ПолучитьСсылку(УИДФизлицаВИсточнике);
по причине:
Произошла исключительная ситуация (1C:Enterprise 8.3.9.1850): Несоответствие типов (параметр номер '1')
При этом тип переменной УИДФизлицаВИсточнике по табло - "УникальныйИдентификатор", т.е. то, что надо.
На одной базе (документооборот) подобные манипуляции проходили без проблем. Пример рабочего кода (ссылку удается получить)
елементФизЛицСсылка = Справочники.ФизическиеЛица.НайтиПоНаименованию("Штерн Иван петрович");
УИД = елементФизЛицСсылка.УникальныйИдентификатор();
НовСсылка = Справочники.ФизическиеЛица.ПолучитьСсылку(УИД);
строка1 = ЗначениеВСтрокуВнутр(елементФизЛицСсылка);
строка2 = ЗначениеВСтрокуВнутр(НовСсылка);
Сообщить(строка1);
Сообщить(строка2);
Считаем, что база получатель изначально пуста, поэтому проблема возможного задвоения ссылок нас интересовать не должна...
Помогите, кто чем может, пожалуйста
По теме из базы знаний
Найденные решения
Извините, что пропал... Отгулыс'с... Вопрос дожал при всем при этом...
Работаетв таком виде. Кому поможет - семь футов под килем. В свою очередь спасибо всем ответившим...
Далее на основе сгенерированной на базе получателе ссылки можно создавать объект с УИД таким же, как и на базе-источнике
Работаетв таком виде. Кому поможет - семь футов под килем. В свою очередь спасибо всем ответившим...
//база-источник
ССылкаНаФизЛицоБазаИсточника = ФизическиеЛица.НайтиПоНаименованию("Перевалов Семен Абрикосович");
УИДФизлица = ССылкаНаФизЛицоБазаИсточника.УникальныйИдентификатор();
СтрокаУИДФизлица = Строка(УИДФизлица);
//база, к которой присоединеяемся
УИДРодителяНаБазеПолучателе = Соединение.NewObject("УникальныйИдентификатор",СтрокаУИДФизлица);
СсылкаНаРодителяНаПолучателе = Соединение.Справочники.ФизическиеЛица.ПолучитьСсылку(УИДРодителяНаПолучателе);
ПоказатьДалее на основе сгенерированной на базе получателе ссылки можно создавать объект с УИД таким же, как и на базе-источнике
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
УИДФизлицаВИсточнике = Строка(СсылкаНаПереносимыйЭлементСправочника.УникальныйИдентификатор());
// Переход в базу получателя
СсылкаДляЭлементаСоздаваемогоНаПолучателе = Соединение.Справочники.ФизическиеЛица.ПолучитьСсылку(Соединение.NewObject("УникальныйИдентификатор", УИДФизлицаВИсточнике));
ОбъектФизЛицоНаПолучателе.УстановитьСсылкуНового(СсылкаДляЭлементаСоздаваемогоНаПолучателе);
// Переход в базу получателя
СсылкаДляЭлементаСоздаваемогоНаПолучателе = Соединение.Справочники.ФизическиеЛица.ПолучитьСсылку(Соединение.NewObject("УникальныйИдентификатор", УИДФизлицаВИсточнике));
ОбъектФизЛицоНаПолучателе.УстановитьСсылкуНового(СсылкаДляЭлементаСоздаваемогоНаПолучателе);
сравните в отладчике глазками значения:
Строка(СсылкаНаПереносимыйЭлементСправочника.УникальныйИдентификатор())
и
СсылкаНаПереносимыйЭлементСправочника.УникальныйИдентификатор()
насколько я помню вы убедитесь, что состав значения разный.
а потом сравните глазками в отладчике
XMLСтрока(СсылкаНаПереносимыйЭлементСправочника.УникальныйИдентификатор())
и
СсылкаНаПереносимыйЭлементСправочника.УникальныйИдентификатор()
насколько я помню вы убедитесь, что состав значения идентичный.
я могу плохо помнить
Строка(СсылкаНаПереносимыйЭлементСправочника.УникальныйИдентификатор())
и
СсылкаНаПереносимыйЭлементСправочника.УникальныйИдентификатор()
насколько я помню вы убедитесь, что состав значения разный.
а потом сравните глазками в отладчике
XMLСтрока(СсылкаНаПереносимыйЭлементСправочника.УникальныйИдентификатор())
и
СсылкаНаПереносимыйЭлементСправочника.УникальныйИдентификатор()
насколько я помню вы убедитесь, что состав значения идентичный.
я могу плохо помнить
Извините, что пропал... Отгулыс'с... Вопрос дожал при всем при этом...
Работаетв таком виде. Кому поможет - семь футов под килем. В свою очередь спасибо всем ответившим...
Далее на основе сгенерированной на базе получателе ссылки можно создавать объект с УИД таким же, как и на базе-источнике
Работаетв таком виде. Кому поможет - семь футов под килем. В свою очередь спасибо всем ответившим...
//база-источник
ССылкаНаФизЛицоБазаИсточника = ФизическиеЛица.НайтиПоНаименованию("Перевалов Семен Абрикосович");
УИДФизлица = ССылкаНаФизЛицоБазаИсточника.УникальныйИдентификатор();
СтрокаУИДФизлица = Строка(УИДФизлица);
//база, к которой присоединеяемся
УИДРодителяНаБазеПолучателе = Соединение.NewObject("УникальныйИдентификатор",СтрокаУИДФизлица);
СсылкаНаРодителяНаПолучателе = Соединение.Справочники.ФизическиеЛица.ПолучитьСсылку(УИДРодителяНаПолучателе);
ПоказатьДалее на основе сгенерированной на базе получателе ссылки можно создавать объект с УИД таким же, как и на базе-источнике
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот