Как передать структуру в запрос на 1С как параметр
Понимание проблемы: Прямая передача структур в качестве параметров запросов в 1С не поддерживается. Это связано с особенностями языка запросов, который оптимизирован для работы с конкретными типами данных. Альтернативные подходы: // Создание структуры Структура = Новый Структура("Поле1, Поле2"); Структура.Поле1 = "Значение1"; Структура.Поле2 = 20; // Создание таблицы значений ТаблицаЗначений = Новый ТаблицаЗначений; ТаблицаЗначений.Колонки.Добавить("Поле1"); ТаблицаЗначений.Колонки.Добавить("Поле2"); НоваяСтрока = ТаблицаЗначений.Добавить(); НоваяСтрока.Поле1 = Структура.Поле1; НоваяСтрока.Поле2 = Структура...
2 года назад
#1С #1C Текст запроса по полям таблицы значений // // Параметры: // Поля - КоллекцияКолонокТаблицыЗначений - Коллекция колонок таблицы значений для формирования текста запроса // // Возвращаемое значение: // Строка - Строка с текстом запроса или пустая строка. // Функция ТекстЗапросаПоПолямТЗ(Поля) Экспорт Если ТипЗнч(Поля) <> Тип("КоллекцияКолонокТаблицыЗначений") Тогда Возврат Строка(""); КонецЕсли; ТекстЗапроса = "ВЫБРАТЬ" + Символы.ПС; Для каждого Поле Из Поля Цикл ТекстЗапроса = ТекстЗапроса + Символы.Таб + "ТЗ." + Поле.Имя + " КАК " + Поле.Имя + "," + Символы.ПС; КонецЦикла; ТекстЗапроса = Лев(ТекстЗапроса, СтрДлина(ТекстЗапроса) - 2) + Символы.ПС; ТекстЗапроса = ТекстЗапроса + "ПОМЕСТИТЬ ТЗ" + Символы.ПС; ТекстЗапроса = ТекстЗапроса + "ИЗ" + Символы.ПС; ТекстЗапроса = ТекстЗапроса + Символы.Таб + "&ТЗ КАК ТЗ" + Символы.ПС; ТекстЗапроса = ТекстЗапроса + "; | |////////////////////////////////////////////////////////////////////////////////" + Символы.ПС; Возврат ТекстЗапроса; КонецФункции // ТекстЗапросаПолямТЗ()