Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Открыть форму выбора с отбором "Обычные формы" и подставить выбранное значение в документ

Открыть форму выбора с отбором "Обычные формы" и подставить выбранное значение в документ
Я
   sergqwert
 
16.03.21 - 21:39
Как можно открыть форму выбора с отбором и подставить выбранное значение в документ? Не получается подставить значение.
Открыть форму выбора с отбором получилось.
Как выбранный элемент в документ подставить?

Процедура ВодительНачалоВыбора(Элемент, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    ФормаВыбора = Справочники.ФизическиеЛица.ПолучитьФормуВыбора(,Элемент);
    ФормаВыбора.СправочникСписок.Отбор.Должность.ВидСравнения = ВидСравнения.Равно;
    ФормаВыбора.СправочникСписок.Отбор.Должность.Значение = Водитель();
    ФормаВыбора.СправочникСписок.Отбор.Должность.Использование = Истина;
        
    Водители = Новый СписокЗначений();
    Водители = ПоискВодителей();
    
    //Отбор водителей, не назначенных другими документами
    ФормаВыбора2 = Справочники.ФизическиеЛица.ПолучитьФормуВыбора(,Элемент);
    ФормаВыбора2.СправочникСписок.Отбор.Наименование.ВидСравнения = ВидСравнения.НеВСписке;
    ФормаВыбора2.СправочникСписок.Отбор.Наименование.Значение = Водители;
    ФормаВыбора2.СправочникСписок.Отбор.Наименование.Использование = Истина;
    
    ВыбранныйВодитель = ФормаВыбора.ОткрытьМодально();
    
    Если НЕ Строка(ВыбранныйВодитель) = "" Тогда
        ВыбранныйВодитель = Водитель;
    КонецЕсли;
    
КонецПроцедуры

Функция ПоискВодителей();
    
    Водители = Новый СписокЗначений();
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    СформированныеБригады.Водитель КАК Водитель
        |ИЗ
        |    РегистрСведений.СформированныеБригады КАК СформированныеБригады
        |ГДЕ
        |    СформированныеБригады.Период МЕЖДУ &ДатаНач И &ДатаКон
        |    И СформированныеБригады.ТранспортноеСредство = &ТранспортноеСредство";
    
    Запрос.УстановитьПараметр("ДатаНач", НачалоДня(Дата));
    Запрос.УстановитьПараметр("ДатаКон", КонецДня(Дата));
    Запрос.УстановитьПараметр("ТранспортноеСредство", ЭлементыФормы.Машина.Значение);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
         Водители.Добавить(Строка(ВыборкаДетальныеЗаписи.Водитель));
    КонецЦикла;
    
    Возврат Водители;
    
КонецФункции

Функция Водитель()
    
    Возврат Справочники.Должности.Водитель.Наименование;

КонецФункции
   youalex
 
1 - 16.03.21 - 22:46
>НЕ Строка(ВыбранныйВодитель) = ""
Не пиши так, есть ЗначениеЗаполнено() - проверит и на Неопределено, и на пустую ссылку. 

> ВыбранныйВодитель = Водитель;
Очевидно, здесь нужно наоборот, если конечно  у тебя реквизит называется "Водитель". 

Тем более, ты назначаешь владельцем формы выбора текущий элемент (ПолучитьФормуВыбора(,Элемент)), 
он у тебя при выборе должен автоматически подставиться. Попробуй оставить просто 
ФормаВыбора.ОткрытьМодально();

Список тем форума
Рекламное место пустует  Рекламное место пустует
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.