Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 16:15

форма выбора для перечисления

Автор Св Ч, 08 ноя 2017, 16:57

0 Пользователей и 1 гость просматривают эту тему.

Св Ч

добрый день!
Нужен запуск формы выбора для перечисления по щелчку табличного поля документа, но по списку сформированному запросом:
форма выбора для элемента документа, с типом справочник запускается как
ФормаВыбора = Справочники.ДДС.ПолучитьФормуВыбора(, Элемент);
       ФормаВыбора.СправочникСписок.Отбор.Ссылка.ВидСравнения  = ВидСравнения.ВСписке;
       ФормаВыбора.СправочникСписок.Отбор.Ссылка.Использование = Истина;
       ФормаВыбора.СправочникСписок.Отбор.Ссылка.Значение      = СписокОпераций;
       ФормаВыбора.ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = Ложь;
       ФормаВыбора.Открыть();

но как запустить форму выбора если тип перечисление
ФормаВыбора = Перечисления.Вид_топлива.ПолучитьФормуВыбора(, Элемент);
как продолжить , вернее как заменить
ФормаВыбора.СправочникСписок.Отбор.Ссылка.ВидСравнения  = ВидСравнения.ВСписке;
       ФормаВыбора.СправочникСписок.Отбор.Ссылка.Использование = Истина;
       ФормаВыбора.СправочникСписок.Отбор.Ссылка.Значение      = СписокОпераций;
       ФормаВыбора.ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = Ложь;
       ФормаВыбора.Открыть();


как заменить на работу с перечислениями?

вся процедура:


Процедура ОперацииВид_топливоНачалоВыбора(Элемент, СтандартнаяОбработка)
   СтандартнаяОбработка = Ложь;
   ПодготовкаВыборкиГСМПользователем(Элемент);

КонецПроцедуры



Процедура ПодготовкаВыборкиГСМПользователем(Элемент)
перем ее;
СтрокаТабличнойЧасти = ЭлементыФормы.Операции.ТекущиеДанные;
ее=0;
Запрос = Новый Запрос();
Запрос.Текст = "
|ВЫБРАТЬ
| ПроводкиОстаткиИОбороты.СуммаНачальныйОстаток,
| ПроводкиОстаткиИОбороты.СуммаКонечныйОстаток,
| ПроводкиОстаткиИОбороты.Субконто5 КАК Вид,
| ПроводкиОстаткиИОбороты.Субконто4 КАК Топливо
|ПОМЕСТИТЬ остатки_топлива
|ИЗ
| РегистрБухгалтерии.Проводки.ОстаткиИОбороты(&КонДата, &КонДата, , , Счет = &Счет, , Субконто3 = &ВыбСотрудник) КАК ПроводкиОстаткиИОбороты
|;

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

    если   флаг=1 Тогда
   ФормаВыбора = Перечисления.Вид_топлива.ПолучитьФормуВыбора(, Элемент);
   
   ФормаВыбора.СправочникСписок.Отбор.Ссылка.ВидСравнения  = ВидСравнения.ВСписке;
       ФормаВыбора.СправочникСписок.Отбор.Ссылка.Использование = Истина;
       ФормаВыбора.СправочникСписок.Отбор.Ссылка.Значение      = СписокОпераций;
       ФормаВыбора.ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = Ложь;
       ФормаВыбора.Открыть();
конецесли;

конецПроцедуры



Заранее спасибо;

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск