Записки программиста 1с

1с форма выбора

1с форма выбора используется для выбора варианта из справочника. Очень часто возникает необходимость программно открыть какую-то форму выбора (документа, справочника), выбрать нужное значение, и передать это значение на форму, которая инициализировала открытие формы выбора. Разберем создание и использование формы выбора 1с на примере.  

Документ «Акт о приеме» имеет следующие реквизиты:

1с форма выбора
Структура документа 1с

Открывать форму выбора будем при помощи команды ОткрытьФорму.

1с форма выбора
Использование команды ОткрытьФорму().

Создаем форму Выбора Справочника «Подразделения». Используем форму созданную по умолчанию.

1с форма выбора
Форма выбора Справочника 1с

Выберем в Свойствах формы Действие «ОбработкаВыбора».

1с форма выбора
Свойства формы выбора 1с

Форма документа будет содержать следующий код:

Код формы документа 1с
Код выбора элемента справочника 1с

Передача параметров в управляемые формы 1с

Код Для передачи Параметра «Откуда» передаем и открываем форму.

	&НаКлиенте
Процедура Команда1(Команда)
	СтандартнаяОбработка=Ложь;
		Склад=Объект.Склад; 
		Сообщить("Склад="+Склад);

		Параметр=Новый Структура;

		Параметр.Вставить("Склад",Склад);
			ОткрытьФорму("Документ.РасходнаяНакладная.Форма.ФормаДокумента",Параметр,,,,,,);
   КонецПроцедуры

Код ПриСозданииНаСервере в форме получателе. Используем «Параметры».

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если Параметры.Свойство("Склад") Тогда
        ОБъект.Склад=Параметры.Склад;
	КонецЕсли;
КонецПроцедуры

Используя метод Оповещение.

Обе процедуры пишем в форме откуда открываем форму выбора.

Второй способ — воспользуемся методом оповещения:

&НаКлиенте
Процедура КомандаОткрытьФорму(Команда)
ПараметрыОповещения = Новый Структура;    
ПараметрыОповещения.Вставить("ПараметрДляПримера",100); // Данный параметр передали для примера
Оповещение = Новый ОписаниеОповещения("ВыборЗаказаКлиентаЗавершение",ЭтотОбъект,ПараметрыОповещения);
ПараметрыФормы = Новый Структура;
ФормаДокумента = ОткрытьФорму("Документ.ЗаказКлиента.ФормаВыбора",ПараметрыФормы,,,,,Оповещение);
КонецПроцедуры  
&НаКлиенте
Процедура ВыборЗаказаКлиентаЗавершение(ВыбранноеЗначение, ДополнительныеПараметры) Экспорт
Если ВыбранноеЗначение <> Неопределено Тогда
// Получаем выбранный Заказ клиента и производим с ним необходимые действия
ВыбранныйЗаказКлиента = ВыбранноеЗначение;
// в структуре ДополнительныеПараметры будет находится свойство "ПараметрДляПримера" со значением 100, которое было передано в ПараметрыОповещения
КонецЕсли;    
КонецПроцедуры

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *