Массив узлов по значениям свойств. Возвращает массив узлов плана обмена по заданным параметрам запроса и тексту запроса к таблице плана обмена.
// Возвращает массив узлов плана обмена по заданным параметрам запроса и тексту запроса к таблице плана обмена.
//
//
Функция МассивУзловПоЗначениямСвойств(ЗначенияСвойств, Знач ТекстЗапроса, Знач ИмяПланаОбмена, Знач ИмяРеквизитаФлага, Знач Выгрузка = Ложь) Экспорт
// Возвращаемое значение функции.
МассивУзловРезультат = Новый Массив;
// Подготавливаем запрос для получения узлов планов обмена.
Запрос = Новый Запрос;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ОбязательныеУсловия]",
"И ПланОбменаОсновнаяТаблица.Ссылка <> &" + ИмяПланаОбмена + "ЭтотУзел
|И НЕ ПланОбменаОсновнаяТаблица.ПометкаУдаления
|[УсловиеОтбораПоРеквизитуФлагу]
|");
//
Если ПустаяСтрока(ИмяРеквизитаФлага) Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[УсловиеОтбораПоРеквизитуФлагу]", "");
Иначе
Если Выгрузка Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[УсловиеОтбораПоРеквизитуФлагу]",
"И (ПланОбменаОсновнаяТаблица.[ИмяРеквизитаФлага] = ЗНАЧЕНИЕ(Перечисление.РежимыВыгрузкиОбъектовОбмена.ВыгружатьПоУсловию)
|ИЛИ ПланОбменаОсновнаяТаблица.[ИмяРеквизитаФлага] = ЗНАЧЕНИЕ(Перечисление.РежимыВыгрузкиОбъектовОбмена.ВыгружатьВручную)
|ИЛИ ПланОбменаОсновнаяТаблица.[ИмяРеквизитаФлага] = ЗНАЧЕНИЕ(Перечисление.РежимыВыгрузкиОбъектовОбмена.ПустаяСсылка))");
Иначе
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[УсловиеОтбораПоРеквизитуФлагу]",
"И (ПланОбменаОсновнаяТаблица.[ИмяРеквизитаФлага] = ЗНАЧЕНИЕ(Перечисление.РежимыВыгрузкиОбъектовОбмена.ВыгружатьПоУсловию)
|ИЛИ ПланОбменаОсновнаяТаблица.[ИмяРеквизитаФлага] = ЗНАЧЕНИЕ(Перечисление.РежимыВыгрузкиОбъектовОбмена.ПустаяСсылка))");
КонецЕсли;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ИмяРеквизитаФлага]", ИмяРеквизитаФлага);
КонецЕсли;
// текст запроса
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр(ИмяПланаОбмена + "ЭтотУзел", ОбменДаннымиПовтИсп.ПолучитьЭтотУзелПланаОбмена(ИмяПланаОбмена));
// Задаем значения параметров запроса из свойств объекта.
Для Каждого Элемент Из ЗначенияСвойств Цикл
Запрос.УстановитьПараметр("СвойствоОбъекта_" + Элемент.Ключ, Элемент.Значение);
КонецЦикла;
Попытка
МассивУзловРезультат = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
Исключение
СтрокаСообщения = НСтр("ru = 'Ошибка при получении списка узлов получателей. Ошибка выполнения запроса: [ОписаниеОшибки]'");
СтрокаСообщения = СтрЗаменить(СтрокаСообщения, "[ОписаниеОшибки]", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ВызватьИсключение СтрокаСообщения;
КонецПопытки;
Возврат МассивУзловРезультат;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
МассивУзловПоЗначениямСвойств (БСП)
ЭлементОтбораСвойствоЗначениеКонстанты (БСП)
ЭлементОтбораСвойствоАлгоритмЗначения (БСП)
ОбновитьСвойстваПредопределенныхУзлов (БСП)
Чтение значения атрибута узла XML или объекта XDTO
XML -> Структура/Соответствие (хмл в структуру/соответствие)