Надо сравнить две одинаковые ТЧ в локальном и удаленном документах и найти различающиеся строки.
С созданием структуры поиска в удаленной базе разобрался, хоть и сломал всю голову. Не могу из массива результата поиска получить найденную строку, чтобы ее удалить из ТЗ. РезультатПоиска.Получить (
0) говорит, что метод (Получить) не обнаружен. Хотя УдаленнаяТЗ.НайтиСтроки (УдаленнаяСтруктураПоиска).Получить (
0) нормально работает.
<code>
ЛокальнаяТЗ = Объект.Товары.Выгрузить();
УдаленнаяТЗ = УдаленныйОбъект.Товары.Выгрузить();
ЧислоЛокальныхСтрок = ЛокальнаяТЗ.Количество();
ИндексСтроки = ЧислоЛокальныхСтрок -1;
Пока ИндексСтроки >=0 Цикл
ЛокальнаяСтрока = ЛокальнаяТЗ[ИндексСтроки];
УдаленнаяСтруктураПоиска = ПолучитьУдаленнуюСтруктуруПоиска (ЛокальнаяСтрока, ИменаКолонокТЧ, ПодключениеКБазе2);
РезультатПоиска = УдаленнаяТЗ.НайтиСтроки (УдаленнаяСтруктураПоиска);
Если РезультатПоиска.Количество() > 0 Тогда
ЛокальнаяТЗ.Удалить (ЛокальнаяСтрока);
УдаленнаяТЗ.Удалить (РезультатПоиска.Получить (
0));
КонецЕсли;
ИндексСтроки = ИндексСтроки - 1;
КонецЦикла;
Функция ПолучитьУдаленнуюСтруктуруПоиска (ЛокальнаяСтрока, ИменаКолонокТЧ, УдаленноеПодключение)
ЧислоКолонок = ИменаКолонокТЧ.Количество();
УдаленнаяСтруктураПоиска = УдаленноеПодключение.NewObject ("Структура");
Для ИндексКолонки = 0 По ЧислоКолонок-1 Цикл
ИмяКолонки = ИменаКолонокТЧ[ИндексКолонки];
ЛокальноеЗначение = ЛокальнаяСтрока[ИмяКолонки];
ТипДанныхXML = XMLТипЗнч (ЛокальноеЗначение);
УдаленнаяСтруктураПоиска.Вставить (ИмяКолонки,
УдаленноеПодключение.XMLЗначение (УдаленноеПодключение.ИзXMLТипа(ТипДанныхXML.ИмяТипа, ТипДанныхXML.URIПространстваИмен), XMLСтрока (ЛокальноеЗначение)));
КонецЦикла;
Возврат УдаленнаяСтруктураПоиска;
КонецФункции
</code>