Консоль запросов, "Перед выполнением запроса"
|
|
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, в портативном варианте нет и не может быть глобальных модулей и соответственно методов. Поэтому функция Ис() в нем недоступна. Вместо нее можно использовать ирОбщий.ИсЛкс(), что несложно и самостоятельно увидеть в коде подсистемы.
|
|
| |