Пятница, 04.10.2024, 14:09
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Консоль запросов, "Перед выполнением запроса"
unichkinДата: Среда, 16.03.2016, 09:10 | Сообщение # 1
Полковник
Группа: Проверенные
Сообщений: 199
Репутация: 37
Статус: Оффлайн
Добрый день.  Есть простейший запрос:
ВЫБРАТЬ
АвансовыйОтчет.Ссылка
ИЗ
Документ.АвансовыйОтчет КАК АвансовыйОтчет
ГДЕ
АвансовыйОтчет.Дата >= &НачалоПериода
На закладке "Параметры" нажимаю "Из запроса" - добавляется параметр "НачалоПериода"
Хочу задавать его программно - через "УстановитьПараметр".
Для этого на закладке "Перед выполнением запроса" пишу код: 
мОбъектЗапроса.УстановитьПараметр("НачалоПериода", Дата(2015 ,1, 1));
Выполняю, на закладке "Параметры" не вижу никаких изменений. 
Не знаю ошибка это или нет. Если нет - объясните пожалуйста, каково назначение закладки "Перед выполнением запроса"?.. Я увидев параметр "мОбъектЗапроса" ожидал что будет доступно и программное заполнение параметров - что весьма пригодилось бы.
 
tormozitДата: Среда, 16.03.2016, 09:48 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 6382
Репутация: 165
Статус: Оффлайн
Это задуманное поведение. Изменения с объектом запроса носят разовый характер.
 
unichkinДата: Среда, 16.03.2016, 10:00 | Сообщение # 3
Полковник
Группа: Проверенные
Сообщений: 199
Репутация: 37
Статус: Оффлайн
"Изменения с объектом запроса носят разовый характер." - не понял? А можно тогда предусмотреть вариант для программного заполнения параметров? Сейчас вставил для себя костыль, но неохота вспоминать об этом в будущем.
 
tormozitДата: Среда, 16.03.2016, 10:05 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 6382
Репутация: 165
Статус: Оффлайн
Изменения с объектом запроса - буквально изменения с объектом запроса, а не с таблицей параметров, из которой в запрос добавляются параметры. Программное заполнение таблицы параметров не предусмотрено. Опиши зачем это потребовалось.
 
unichkinДата: Среда, 16.03.2016, 10:11 | Сообщение # 5
Полковник
Группа: Проверенные
Сообщений: 199
Репутация: 37
Статус: Оффлайн
Ну, просто мне хочется видеть результат вычисления параметров. Скажем я устанавливаю его из константы - а какое ее значение на данный момент точно не знаю. Что ж мне теперь лезть и все смотреть? А может тогда на закладке "Параметры" доработать кнопку "Из запроса" - чтобы соотв. значения если есть обновлялись?
 
tormozitДата: Среда, 16.03.2016, 10:14 | Сообщение # 6
Генералиссимус
Группа: Администраторы
Сообщений: 6382
Репутация: 165
Статус: Оффлайн
Для вычисляемых параметров нужно указывать тип "Выражение".
 
unichkinДата: Среда, 16.03.2016, 10:16 | Сообщение # 7
Полковник
Группа: Проверенные
Сообщений: 199
Репутация: 37
Статус: Оффлайн
У меня 20 параметров в запросе. Есть портянка кода на 50 строк, где они вычисляются и задаются. Перерисовывать это в Выражение - долго и неудобно.
 
tormozitДата: Среда, 16.03.2016, 10:23 | Сообщение # 8
Генералиссимус
Группа: Администраторы
Сообщений: 6382
Репутация: 165
Статус: Оффлайн
В таком случае можно в обработчике ПередВыполнением в конце поставить строку "Ис(мОбъектЗапроса.Параметры);"
 
unichkinДата: Среда, 16.03.2016, 10:28 | Сообщение # 9
Полковник
Группа: Проверенные
Сообщений: 199
Репутация: 37
Статус: Оффлайн
Суть понял, но все равно не то. Чую, что буду заморачиваться на этом моменте) А почему нельзя доработать кнопку "Из запроса"? Вроде смысл не теряется. Если параметры уже заполнены - получаем их из запроса и всё. Если по строке - выражение - все равно брать параметр из запроса, для выражений есть кнопка "Вычислить".
 
tormozitДата: Среда, 16.03.2016, 10:36 | Сообщение # 10
Генералиссимус
Группа: Администраторы
Сообщений: 6382
Репутация: 165
Статус: Оффлайн
Прочитай подсказку к кнопке "Из запроса" и станет понятно, почему нельзя так сделать без потери смысла кнопки.

Превращать консоль запросов в консоль кода не планируется. Обработчик "Перед выполнением запроса" сделан для удовлетворения всех экзотических потребностей пользователей. Рассматриваемая ситуация как раз является экзотической.
 
testpilot24Дата: Вторник, 27.02.2018, 14:53 | Сообщение # 11
Сержант
Группа: Проверенные
Сообщений: 34
Репутация: 16
Статус: Оффлайн
Цитата tormozit ()
В таком случае можно в обработчике ПередВыполнением в конце поставить строку "Ис(мОбъектЗапроса.Параметры);"

в консоли запросов версии 4.40р попробовал вставить данный код, и он оказался не рабочим, пишет что данной процедуры/функции "ИС" не существует. Подскажите пожалуйста, какой вариант использовать для обновления данных параметров, если он существует. И также пожелание по доработке. В подменю "вставка" в "перед выполнением запроса" добавить вставку данной функции/процедуры для обновления вкладки "параметры".
 
tormozitДата: Вторник, 27.02.2018, 22:09 | Сообщение # 12
Генералиссимус
Группа: Администраторы
Сообщений: 6382
Репутация: 165
Статус: Оффлайн
testpilot24, в портативном варианте нет и не может быть глобальных модулей и соответственно методов. Поэтому функция Ис() в нем недоступна. Вместо нее можно использовать ирОбщий.ИсЛкс(), что несложно и самостоятельно увидеть в коде подсистемы.
 
  • Страница 1 из 1
  • 1
Поиск: