Имя: Пароль:
1C
1С v8
Розница 2.0 Справочник Подключаемое оборудование
0 nkolp
 
15.10.13
11:08
По умолчанию в типовой при выборе элемента справочника в поле ввода открывается список с отбором. Список формируктся в экспортной функции модуля менеджера объекта ПолучитьСписокОборудования; в структуре объекта есть команда ОткрытьПодключаемоеОборудование, которая открывает фомуСписка справочника с параметрами. Поставил точки останова, выбираю элемент из ревизита формы обработки - поле ввода (тип реквизита объекта- СправочникССылка.ПодключаемоеОборудование) - в точки останова не попадаю. Задача - сделать свой отбор. Если кто сталкивался с подобной задачей или есть мысли - напишите :)
1 nkolp
 
15.10.13
11:26
Функция ПолучитьСписокОборудования не отрабатывает, потому что в модуле менеджера стоит директива "#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда", а я запускаю с клиента ... Кстати, у поля ввода ПриНачалеВыбора список выбора (Элемент.СписокВыбора) пустой. Тогда вопрос почему при выборе открывается выпадающий список, а не форма выбора справочника по умолчанию?
2 nkolp
 
15.10.13
11:29
Sorry :) ... у моего поля ввода В СОБЫТИИ ПриНачалеВыбора ...
3 nkolp
 
15.10.13
11:31
&НаКлиенте
Процедура ОборудованиеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    СПС = Элемент.СписокВыбора  //Элементы.Оборудование.СписокВыбора   ????
КонецПроцедуры
4 nkolp
 
15.10.13
13:00
Так, в списке показываются все элементы справочника ...
Ларчик просто открывался в свойствах справочника установлен способ выбора "Быстрый выбор"(Внимательнее надо быть :)
Получилось примерно так:
5 nkolp
 
15.10.13
13:02
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
СписокШринСлипЧека = Новый СписокЗначений;
    //Элементы.ЧислоПозицийЧека.СписокВыбора.Добавить(24,  "24 сим");
    Элементы.ЧислоПозицийЧека.СписокВыбора.Добавить(32,  "32 сим");
    Элементы.ЧислоПозицийЧека.СписокВыбора.Добавить(36,  "36 сим");
    Элементы.ЧислоПозицийЧека.СписокВыбора.Добавить(40,  "40 сим");
    Элементы.ЧислоПозицийЧека.СписокВыбора.Добавить(48,  "48 сим");
    //Элементы.ЧислоПозицийЧека.СписокВыбора = СписокШринСлипЧека;
    Элементы.Оборудование.СписокВыбора.ЗагрузитьЗначения(ОтборПоЭквайрингу());

КонецПроцедуры
Функция ОтборПоЭквайрингу()
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ПодключаемоеОборудование.Ссылка
                   |ИЗ
                   |    Справочник.ПодключаемоеОборудование КАК ПодключаемоеОборудование
                   |ГДЕ
                   |    ПодключаемоеОборудование.ТипОборудования = ЗНАЧЕНИЕ(Перечисление.ТипыПодключаемогоОборудования.ЭквайринговыйТерминал)";
    Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
КонецФункции
6 nkolp
 
15.10.13
18:10
а ещё проще в параметрах выбора поля ввода установить отбор по типу оборудования :) Тогда список выбора вообще не нужен :)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший