Имя: Пароль:
1C
1С v8
Выбор из справочника без удаленных элементов
0 medved_kot
 
28.03.15
21:53
Здравствуйте.
Есть маленький справочник 15 эл. без иерархии. Какие-то элементы удаляются (помечаются), обратно восстанавливаются.
В управляемой форме выбор из поля ввода открывается в виде списка.
Как убрать из выпадающего списка удаленные?
Версия 8.2.18 примерно.
1 ДенисЧ
 
28.03.15
22:01
Свой список выбора задавать
2 GROOVY
 
28.03.15
22:03
В форме выбора задать отбор у динамического списка.
Описать событие в модуле менеджера, не помню название, которое срабатывает при вводе по строке.
3 medved_kot
 
28.03.15
22:19
(2) У справочника есть форма выбора, но так как справочник не иерархический, то как и в семерке происходит выбор из списка. Вот этот выбор как ограничить? Там два события НачалоВыбора и НачалоВыбораИзСписка
(1) Как свой список задать?
4 medved_kot
 
28.03.15
22:22
(1) Там вызов с клиента, а список надо на сервере создавать. Я до сих пор путаюсь с ними.
Из события вызывать серверную процедуру для формирования списка?
5 GROOVY
 
28.03.15
22:29
(3)  У справочника есть модуль менеджера, именно там событие описывается, что система в поля ввода передавать будет при выборе из списка и вводе по строке.

Я тут еще подумал, можно RLS заюзать.
6 medved_kot
 
28.03.15
22:35
(5) Вот. Это уже ближе. Где б почитать.
Не знаю, что такое RLS. Не матюк надеюсь.
7 medved_kot
 
28.03.15
22:51
Все. Спасибо (5). В модуле менеджера справочника написал процедуру.

Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    СписокВыбора = Новый СписокЗначений;
    Выборка = Справочники.Терминалы.Выбрать();
    Пока Выборка.Следующий() Цикл
        Если Выборка.ПометкаУдаления Тогда Продолжить; КонецЕсли;
        СписокВыбора.Добавить(Выборка.Ссылка);
    КонецЦикла;
    ДанныеВыбора = СписокВыбора;
    
КонецПроцедуры
8 Фокусник
 
29.03.15
00:33
(7) выборку лучше запросом делать.
9 PR
 
29.03.15
00:40
(7) Делал недавно такую задачу. Не надо так. Надо так Параметры.Вставить("ПометкаУдаления", Ложь);
10 PR
 
29.03.15
00:41
+(9) В смысле Параметры.Отбор.Вставить("ПометкаУдаления", Ложь);
11 medved_kot
 
29.03.15
01:16
(8) В (0) я говорил справочник маленький. Везде запросы пихать не выход.
12 medved_kot
 
29.03.15
01:17
(9) Попробую.
13 medved_kot
 
29.03.15
01:19
+(9) Классно. Работает.
14 Chameleon1980
 
29.03.15
10:15
А с 1С я последний раз встречался когда однопалубный корабль на эту клетку ставил (C) Калян Наумов
15 alex_shkut
 
29.03.15
10:21
(13) Никогда не принимай во внимание размер справочника. Всегда думай, что там будет много тыщ :) элементов. Тогда и код будет оптимальный, и не впомнишь про него никогда...
16 ДенисЧ
 
29.03.15
10:22
(15) Premature optimisation is a root of evil.
На 10 элементах в файловой версии выборка будет быстрей.
17 Фокусник
 
29.03.15
13:23
(16) Про файловую базу в (0) не было речи. И потом, "каждая файловая база стремится стать SQLной" (с) моё
;)