Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Есть форма, содержащая динамический список с произвольным запросом. Как при открытии формы установить нужные параметры в этом запросе?          
Batchir Подменю пользователя
сообщение 21.03.11, 9:28
Сообщение #1

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1427 раз
Рейтинг: 0

Есть форма, содержащая динамический список с произвольным запросом. Как при открытии формы установить нужные параметры в этом запросе?

Одна из задач, возникающих при открытии формы, может заключаться в том, что динамический список в открываемой форме содержит произвольный запрос с параметрами. И при открытии такой формы нужно передавать в этот список конкретные значения параметров.

Эта задача решается с помощью создания дополнительных параметров формы, передачи в них необходимых значений и установки их в параметры запроса в обрабтчике события формы При создании на сервере.

Предположим, что имеется регистр ЦеныТоваров. В форме списка этого регистра содержится динамический список с произвольным запросом:

ВЫБРАТЬ
     РегистрСведенийЦеныТоваров.Период,
     РегистрСведенийЦеныТоваров.Товар,
     РегистрСведенийЦеныТоваров.Цена
ИЗ
     РегистрСведений.ЦеныТоваров КАК РегистрСведенийЦеныТоваров
ГДЕ
     РегистрСведенийЦеныТоваров.Товар = &Товар
     И РегистрСведенийЦеныТоваров.Период >= &НачалоПериода
     И РегистрСведенийЦеныТоваров.Период <= &КонецПериода


Как видно из текста запроса, у запроса есть три параметра: Товар, НачалоПериода и КонецПериода. Для нормального функционирования формы значения этих параметров должны быть заданы при открытии формы, иначе в результате открытия формы будет получена ошибка.

Чтобы передать собственные параметры в форму, желательно создать их в редакторе формы.

Вообще говоря, делать это не обязательно. Любые параметры, переданные в метод ОткрытьФорму(), будут доступны в обработчике события формы При создании на сервере. Но все же лучше создать их у формы в явном виде.

Тогда, во-первых, в модуле формы не придется проверять, существуют такие параметры или нет. А во-вторых, явное создание параметров формы облегчает поддержку прикладного решения теми разработчиками, которые не участвовали в его создании.

Итак, создадим у формы списка регистра сведений три параметра: НачалоПериода, КонецПериода (тип Дата) и Товар (тип СправочникСсылка.Товары).



Теперь в форме элемента справочника Товары создадим команду ЦеныВДекабре со следующим текстом:

ПараметрыФормы = Новый Структура("НачалоПериода, КонецПериода, Товар", '20091201000000', '20091231235959', Объект.Ссылка);
ОткрытьФорму("РегистрСведений.ЦеныТоваров.Форма.ФормаСписка", ПараметрыФормы);

Этой командой мы открываем форму списка регистра сведений и передаем ей значения трех параметров.

В самой форме регистра сведений, в обработчике события формы При создании на сервере, установим переданные значения в качестве параметров произвольного запроса динамического списка следующим образом:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
                
     Список.Параметры.УстановитьЗначениеПараметра("НачалоПериода", Параметры.НачалоПериода);
     Список.Параметры.УстановитьЗначениеПараметра("КонецПериода", Параметры.КонецПериода);
     Список.Параметры.УстановитьЗначениеПараметра("Товар", Параметры.Товар);
                
КонецПроцедуры

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 13.06.24, 21:00
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!