Имя: Пароль:
 
1C
 
Как ограничить отбор в выпадающем на форме в списке в поле ввода
0 gabd_marat
 
24.09.16
22:10
Народ есть поле в котором вводится счет учета. Необходимо, чтобы пользователь мог ввести или выбрать только определенные счета из плана счетов (предположим с 10 по 11). А у меня пользователь может выбрать любой счет учета.(1с 8.3)
Как это можно сделать..
Создал процедуру, но все выдает полный список плана счетов
Процедура СчетУчетаБУНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;

Форма = ПланыСчетов.Хозрасчетный.ПолучитьФормуВыбора(, Элемент);

СписокСчетов = Форма.ЭлементыФормы.Список;

Отбор = СписокСчетов.Значение.Отбор;
Отбор.КодБыстрогоВыбора.ВидСравнения  = ВидСравнения.ИнтервалВключаяНачало;
Отбор.КодБыстрогоВыбора.ЗначениеС       = "10";
Отбор.КодБыстрогоВыбора.ЗначениеПо      = "11";
Отбор.КодБыстрогоВыбора.Использование = Истина;

СписокСчетов.НастройкаОтбора.КодБыстрогоВыбора.Доступность = Ложь;

Форма.ОткрытьМодально();
КонецПроцедуры
1 butterbean
 
25.09.16
08:14
В своем поле выбора просто заполни список выбора нужными счетами, и не надо форму выбора открывать
2 jsmith
 
25.09.16
09:46
(1) Некошерно.
3 jsmith
 
25.09.16
09:47
>>А у меня пользователь может выбрать любой счет учета.(1с 8.3)
Нафига писать 8.3, если речь идет про обычное приложение?!
4 TreeDogNight
 
25.09.16
09:49
В событии "НачалоВыбора" поля "Счет" впишите код:
[code]
МассивСчетов  = //Массив с необходимыми счетами;
НовыйПараметр = Новый ПараметрВыбора("Отбор.Ссылка", МассивСчетов);
НовыйМассив = Новый Массив();
НовыйМассив.Добавить(НовыйПараметр);
НовыеПараметры = Новый ФиксированныйМассив(НовыйМассив);
Элементы.Счет.ПараметрыВыбора = НовыеПараметры;[/code]
В этом случае отбор будет устанавливаться и на форму выбора и на поиск по вводу.
5 gabd_marat
 
25.09.16
12:13
Сделал след образом, но все равно не работает(выдает полный список плана счетов). Читал что в 1с 8.3 нужно правильно настроить свойство поля и дважды прописать код выбора из списка, как это сделать? или я не правильно делаю?

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

&НаСервере
Процедура СчетУчетаБУНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
    Запрос = Новый Запрос;
     Запрос.Текст = "ВЫБРАТЬ
     | Хозрасчетный.Ссылка
     |ИЗ
     | ПланСчетов.Хозрасчетный КАК Хозрасчетный
     |ГДЕ
     | Хозрасчетный.Родитель В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Материалы))
     | И Хозрасчетный.ЗапретитьИспользоватьВПроводках = ЛОЖЬ";
     СписокСчетов = Новый СписокЗначений;
     СписокСчетов.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
     ФормаВыбора = ПланыСчетов.Хозрасчетный.ПолучитьФормуВыбора(, Элемент);
     ЭлементОтбораСсылка = ФормаВыбора.Отбор.Ссылка;
     Если ЭлементОтбораСсылка <> Неопределено Тогда
     ЭлементОтбораСсылка.ВидСравнения = ВидСравнения.ВСписке;
     ЭлементОтбораСсылка.Значение = СписокСчетов;
     ЭлементОтбораСсылка.Использование = Истина;
     КонецЕсли;
     ФормаВыбора.ЭлементыФормы.Список.НастройкаОтбора.Ссылка.Доступность = Ложь;
     ФормаВыбора.Открыть();
     СтандартнаяОбработка = Ложь;
КонецПроцедуры
6 gabd_marat
 
25.09.16
12:15
Свойство поля КнопкаВыпадающегоСписка и КнопкаВыбора на Да
7 TreeDogNight
 
25.09.16
12:56
(6) Вы походу моё сообщение даже не прочитали?
2 + 2 = 3.9999999999999999999999999999999...