Добрый день!
Нужна помощь по Com соединению.
Через Com соединение запросом тянем данные из другой базы. Это используется для обмена данными между ЗУП и БУХ.
Сейчас синхронизация справочников делается по кодам. Хочу перевести на синхронизацию по ГУИДам.
ГУИДы получить запросом нельзя.
Поэтому результат запроса выгружаю в ТЗ и затем уже вычисляю ГУИДы.
Не пойму почему ТЗ превращается в ComОбъект после того как я в нее выгружаю результат запроса? И из нее удаляются колонки добавленные для хранения ГУИДов?
Для Каждого СтрокаТЗ Из ТЗПодразделения Цикл
СтрокаТЗ.СсылкаГУИД = ЗУП.String(СтрокаТЗ.Ссылка.УникальныйИдентификатор()); // здесь уже нет реквизита СсылкаГУИД
КонецЦикла;
Объясните, плз, суть, что я делаю неправильно?
Нужна помощь по Com соединению.
Через Com соединение запросом тянем данные из другой базы. Это используется для обмена данными между ЗУП и БУХ.
Сейчас синхронизация справочников делается по кодам. Хочу перевести на синхронизацию по ГУИДам.
ГУИДы получить запросом нельзя.
Поэтому результат запроса выгружаю в ТЗ и затем уже вычисляю ГУИДы.
Не пойму почему ТЗ превращается в ComОбъект после того как я в нее выгружаю результат запроса? И из нее удаляются колонки добавленные для хранения ГУИДов?
ТЗПодразделения = Новый ТаблицаЗначений;
ТЗПодразделения.Колонки.Добавить("Ссылка",);
ТЗПодразделения.Колонки.Добавить("СсылкаГУИД",);
ТЗПодразделения.Колонки.Добавить("Код",);
ТЗПодразделения.Колонки.Добавить("Наименование",);
ТЗПодразделения = Запрос.Выполнить().Выгрузить(); // вот здесь ТЗ превращается в ComОбъект
Для Каждого СтрокаТЗ Из ТЗПодразделения Цикл
СтрокаТЗ.СсылкаГУИД = ЗУП.String(СтрокаТЗ.Ссылка.УникальныйИдентификатор()); // здесь уже нет реквизита СсылкаГУИД
КонецЦикла;
Объясните, плз, суть, что я делаю неправильно?
По теме из базы знаний
- WS Black Hole by EvilGrym. Универсальный обмен через SOAP, вместо прямого соединения через COM, V83.Application и т.п.
- Работа с ComОбъектом 1С 8.2; 8.3
- Пример переноса справочников, документов и движений через Эксель и "Конвертацию данных 2" из оптовой учетной системы 1С 7.7 Комплексной 4.2 и розничной учетной системы Рарус Торговый комплекс -> в 1С 8.3 ЕРП 2.4 (расширение и дополнительные реквизиты)
- Список баз подразделения
- Универсальный отчет для сравнения записей регистров накопления между базами по COM-соединению, для обычных форм
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Видимо объект "Запрос" создан на стороне базы, к которой подключаешься по СОМ
А раз он на другой стороне, то это СОМ-объект.
Добавляй колонки после получения ТЗ
СКД может сразу вернуть ТЗ с ГУИДами.
Запрос = ЗУП.NewObject("Запрос")
А раз он на другой стороне, то это СОМ-объект.
Добавляй колонки после получения ТЗ
ТЗПодразделения = Запрос.Выполнить().Выгрузить();
ТЗПодразделения.Колонки.Добавить("СсылкаГУИД")
СКД может сразу вернуть ТЗ с ГУИДами.
Вот это все описание бесполезно:
так как в строке
переменной ТЗПодразделения присваивается ComОбъект - ТаблицаЗначений - результат выполненного запроса в удаленной базе
Весь код должен быть:
ТЗПодразделения = Новый ТаблицаЗначений;
ТЗПодразделения.Колонки.Добавить("Ссылка",);
ТЗПодразделения.Колонки.Добавить("СсылкаГУИД",);
ТЗПодразделения.Колонки.Добавить("Код",);
ТЗПодразделения.Колонки.Добавить("Наименование",);
так как в строке
ТЗПодразделения = Запрос.Выполнить().Выгрузить(); // вот здесь ТЗ превращается в ComОбъект
переменной ТЗПодразделения присваивается ComОбъект - ТаблицаЗначений - результат выполненного запроса в удаленной базе
Весь код должен быть:
ТЗПодразделения = Запрос.Выполнить().Выгрузить(); // вот здесь ТЗ превращается в ComОбъект
ТЗПодразделения.Колонки.Добавить("СсылкаГУИД");
Для Каждого СтрокаТЗ Из ТЗПодразделения Цикл
СтрокаТЗ.СсылкаГУИД = ЗУП.String(СтрокаТЗ.Ссылка.УникальныйИдентификатор()); // здесь уже нет реквизита СсылкаГУИД
КонецЦикла;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот