cpr1c / tools_ui_1c

Универсальные инструменты 1С для управляемых форм
GNU General Public License v3.0
730 stars 230 forks source link

Порт. режим. УИ_ВыгрузкаЗагрузкаДанныхXMLСФильтрами. Отбор по реквизиту через точку вызывает ошибку незаданного параметра запроса. #633

Open Mazart opened 5 days ago

Mazart commented 5 days ago

Опишите ошибку Параметр запроса не задан

Воспроизведение ошибки

  1. Запустить обработку "Выгрузка и загрузка данных XML с фильтрами [УИ]"
  2. Добавить отбор по реквизиту через точку, например, рег. сведений выбрать в качестве отбора ссылка.реквизит
  3. Параметром в теле запроса будет задана через "&ссылка_реквизит", а в УстановитьПараметр "ссылка.реквизит"

Ожидаемое поведение В УстановитьПараметр должно быть "ссылка_реквизит" (добавил определение ЛевоеЗначение):

Для Каждого Строка Из ТаблицаОтбора1 Цикл
    Если ИмяОбъекта = Строка.имяреквизита И СтрокаДереваМетаданных.ИмяОбъектаМетаданных
        = Строка.ИмяОбъектаМетаданных Тогда
        Для Каждого СтрокаЭлементы Из Строка.Отбор.Элементы Цикл
            Если СтрокаЭлементы.Использование Тогда
                      ЛевоеЗначение=СтрЗаменить(Строка(СтрокаЭлементы.ЛевоеЗначение), ".", "_");
                Если Строка(ТипЗнч(СтрокаЭлементы.ПравоеЗначение)) = "Стандартная дата начала" Тогда
                    Запрос.УстановитьПараметр(Строка(ЛевоеЗначение),
                        СтрокаЭлементы.ПравоеЗначение.Дата);
                Иначе
                    Запрос.УстановитьПараметр(Строка(ЛевоеЗначение),
                        СтрокаЭлементы.ПравоеЗначение);
                КонецЕсли;

                Если Не Первая Тогда
                    ТекстЗапроса = ТекстЗапроса + Символы.ПС + " И " + ПолучитьВидСравненияВЗапрос(Строка,
                        СтрокаЭлементы, СтрокаЭлементы.ВидСравнения);
                Иначе
                    ТекстЗапроса = ТекстЗапроса + Символы.ПС + " ГДЕ " + ПолучитьВидСравненияВЗапрос(Строка,
                        СтрокаЭлементы, СтрокаЭлементы.ВидСравнения);
                КонецЕсли;
                Первая=Ложь;
            КонецЕсли;
        КонецЦикла;
        Прервать;
    КонецЕсли;
КонецЦикла;

Окружение ВариантПоставки=Портативный; ВерсияИнструментов=24.1.4; Платформа=8.3.24.1548; Клиент.ВерсияОС=Microsoft Windows 10 version 10.0 (Build 22631); Клиент.Разрядность=Windows x86-64; Клиент.Процессор=GenuineIntel Intel64 Family 6 Model 151 Stepping 5 3302 MHz; Клиент.Память=16 153; ТипКлиента=ТолстыйКлиентУправляемоеПриложение; Сервер.ВерсияОС=Microsoft Windows 10 version 10.0 (Build 20348); Сервер.Разрядность=Windows x86-64; Сервер.Процессор=GenuineIntel Intel64 Family 6 Model 85 Stepping 7 2394 MHz; Сервер.Память=204 798; ЭтоФайловаяБаза=Нет; ВерсияБСП=3.1.10.329; Конфигурация.Имя=ЗарплатаИУправлениеПерсоналом; Конфигурация.РежимСовместимости=НеИспользовать; Конфигурация.Версия=3.1.31.32; Конфигурация.ОсновнойРежимЗапуска=Управляемое приложение; Конфигурация.РежимИспользованияМодальности=НеИспользовать; Конфигурация.РежимИспользованияСинхронныхВызововРасширенийИВнешнихКомпонент=Использовать; Конфигурация.РежимИспользованияСинхронныхВызововРасширенийПлатформыИВнешнихКомпонент=Использовать; Конфигурация.РежимСовместимостиИнтерфейса=ТаксиРазрешитьВерсия8_2; Конфигурация.РежимУправленияБлокировкойДанных=Управляемый;

Дополнительная информация