Доброго всем дня! Уже час не могу понять странное поведение ТЗ.
В общем есть 2 ТЗ, которые я получаю из запроса (методом Выгрузить()).
В первую ТЗ у меня помещается результат из запроса к БД, из которой запускаю обработку, во вторую из запроса к другой БД(копия первой). В общем дергаю движения и нужно найти отличия. Вот таким кодом удаляю в 2-х ТЗ одинаковые строки:
Для Каждого СтрокаТек Из РезультатТекущий Цикл
СтруктураОтбора = Новый Структура;
Для каждого Колонка Из РезультатТекущий.Колонки Цикл
СтруктураОтбора.Вставить(Колонка.Имя, СтрокаТек[Колонка.Имя]);
КонецЦикла;
НайденныеСтроки = ТаблицаКБД.НайтиСтроки(СтруктураОтбора);
Если НайденныеСтроки.Количество() > 0 Тогда
РезультатТекущий.Удалить(СтрокаТек);
Для номер =0 По НайденныеСтроки.Количество()-1 Цикл
ТаблицаКБД.Удалить(НайденныеСтроки[номер]);
КонецЦикла;
КонецЕсли;
КонецЦикла;
Но самое веселое то, что цикл доходит примерно до середины. Т.е. размер 51 элемент, а цикл проходит всего лишь 25 раз.
Для Каждого СтрокаТек Из РезультатТекущий Цикл
СтруктураОтбора = Новый Структура;
Для каждого Колонка Из РезультатТекущий.Колонки Цикл
СтруктураОтбора.Вставить(Колонка.Имя, СтрокаТек[Колонка.Имя]);
КонецЦикла;
НайденныеСтроки = ТаблицаКБД.НайтиСтроки(СтруктураОтбора);
Если НайденныеСтроки.Количество() > 0 Тогда
МассивУдаляемых.Добавить(СтрокаТек);
Для номер =0 По НайденныеСтроки.Количество()-1 Цикл
ТаблицаКБД.Удалить(НайденныеСтроки[номер]);
КонецЦикла;
КонецЕсли;
КонецЦикла;
Для Номер = 0 По МассивУдаляемых.Количество()-1 Цикл
РезультатТекущий.Удалить(МассивУдаляемых[номер]);
КонецЦикла;
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой