Я выгружаю задачи из Битрикс в 1с запросом tasks.task.list
У меня есть Соответствие в котором храниться Идентификатор задачи и Дата изменения задачи. Случается так, что в Битриксе изменили что-то в задаче и мне нужно ее обновить в 1с, Но при этом так, чтобы она не продублировалась, а изменилась уже записанная в 1с задача.
Пока что я смогла написать такой код, но он неверен, т.к. сравниваются элементы выборки из справочника с элементами из соответствия, а нужно наоборот, чтобы элементы из соответствия сравнивались с элементами выборки из справочника.
Подскажите как это реализовать?
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Задачи.ДатаСозданияЗадачи КАК ДатаСозданияЗадачи,
| Задачи.Код КАК Код,
| Задачи.Наименование КАК Наименование,
| Задачи.ОписаниеЗадачи КАК ОписаниеЗадачи,
| Задачи.ДатаИзмененияЗадачи КАК ДатаИзмененияЗадачи,
| Задачи.ДатаЗакрытияЗадачи КАК ДатаЗакрытияЗадачи,
| Задачи.Контрагент КАК Контрагент,
| Задачи.Контрагент1 КАК Контрагент1,
| Задачи.Контрагент2 КАК Контрагент2
|ИЗ
| Справочник.Задачи КАК Задачи";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
ВыборкаДатаИзменения = Выборка.ДатаИзмененияЗадачи;
ВыборкаКод = Выборка.Код;
//Поучение значения ключей соответсвия
Для Каждого Элемент Из МассивЗадач Цикл
ДатаИзменения = Элемент.Получить ("changedDate");
Идентификатор = Элемент.Получить ("id");
Наименование = Элемент.Получить ("title");
Описание = Элемент.Получить ("description");
ДатаСоздания = Элемент.Получить ("createdDate");
ДатаЗакрытия = Элемент.Получить ("closedDate");
//Проверка на уникальность. Запись новых элементов если совпадений нет
Если НЕ ВыборкаДатаИзменения = ДатаИзменения И НЕ ВыборкаКод = Идентификатор Тогда
//Запись новых элементов
ИначеЕсли НЕ ВыборкаДатаИзменения = ДатаИзменения И ВыборкаКод = Идентификатор Тогда
//Перезапись старых элементов
КонецЕсли;
Показать