Сравнение значений Соответствия с элементами справочника

1. val_ka 13.11.20 07:29 Сейчас в теме
Я выгружаю задачи из Битрикс в 1с запросом tasks.task.list
У меня есть Соответствие в котором храниться Идентификатор задачи и Дата изменения задачи. Случается так, что в Битриксе изменили что-то в задаче и мне нужно ее обновить в 1с, Но при этом так, чтобы она не продублировалась, а изменилась уже записанная в 1с задача.

Пока что я смогла написать такой код, но он неверен, т.к. сравниваются элементы выборки из справочника с элементами из соответствия, а нужно наоборот, чтобы элементы из соответствия сравнивались с элементами выборки из справочника.

Подскажите как это реализовать?


Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	Задачи.ДатаСозданияЗадачи КАК ДатаСозданияЗадачи,
	|	Задачи.Код КАК Код,
	|	Задачи.Наименование КАК Наименование,
	|	Задачи.ОписаниеЗадачи КАК ОписаниеЗадачи,
	|	Задачи.ДатаИзмененияЗадачи КАК ДатаИзмененияЗадачи,
	|	Задачи.ДатаЗакрытияЗадачи КАК ДатаЗакрытияЗадачи,
	|	Задачи.Контрагент КАК Контрагент,
	|	Задачи.Контрагент1 КАК Контрагент1,
	|	Задачи.Контрагент2 КАК Контрагент2
	|ИЗ
	|	Справочник.Задачи КАК Задачи";

	РезультатЗапроса = Запрос.Выполнить();

	Выборка = РезультатЗапроса.Выбрать();

	Пока Выборка.Следующий() Цикл
		
	ВыборкаДатаИзменения = Выборка.ДатаИзмененияЗадачи;
	ВыборкаКод =  Выборка.Код;
	 	
			//Поучение значения ключей соответсвия
			Для Каждого Элемент Из МассивЗадач Цикл
					
					ДатаИзменения =  Элемент.Получить ("changedDate");
					Идентификатор =  Элемент.Получить ("id");
					Наименование = Элемент.Получить ("title");
					Описание = Элемент.Получить ("description");
					ДатаСоздания = Элемент.Получить ("createdDate");
					ДатаЗакрытия = Элемент.Получить ("closedDate");

							//Проверка на уникальность. Запись новых элементов если совпадений нет
							Если НЕ ВыборкаДатаИзменения = ДатаИзменения И НЕ ВыборкаКод = Идентификатор Тогда

//Запись новых элементов 

ИначеЕсли НЕ ВыборкаДатаИзменения = ДатаИзменения И ВыборкаКод = Идентификатор Тогда

//Перезапись старых элементов

КонецЕсли;
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. malikov_pro 1293 13.11.20 07:39 Сейчас в теме
Сначала отфильтруйте запрос, простой вариант

МассивИдентификаторов = Новый Массив;

Для Каждого Элемент Из МассивЗадач Цикл

МассивИдентификаторов. Добавить(Элемент.Получить ("id"));



В запросе

ГДЕ Задачи.Код В (&МассивИдентификаторов)



Можно массив соответствий перевести в ТЗ, её как временную загрузить в запрос и сделать отбор по 2 колонкам
3. val_ka 13.11.20 07:55 Сейчас в теме
(2) спасибо, сейчас попробую
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот