Имя: Пароль:
1C
1С v8
Управляемые формы, отбор по родителю
0 altaykniga
 
15.05.14
15:49
Добрый день! Да, таких тем здесь уже много, не могу выудить нужную информацию, помогите!
Выбираю контрагента с формы документа. Необходимо, чтобы открылась форма выбора только с элементами, у которых Родитель=Абоненты(предопределенный элемент).
Пользователю нужно запретить переход в другую папку и выбор контрагента, у которого Родитель<>Абоненты! Как сделать?
1 butterbean
 
15.05.14
16:03
Делай свою форму выбора с параметром, в ней в дин. списке делай отбор по родителю или как тебе там надо. При открытии проверяй выбран-ли параметр и устанавливай отбор.
2 altaykniga
 
15.05.14
17:26
(1) в справочник Контрагенты вносить изменения нельзя, одно из  условий. Есть форма документа, нужно все сделать оттуда (установить жесткий отбор по родителю при начале выбора справочника контрагенты)
3 Wobland
 
15.05.14
17:32
4 altaykniga
 
15.05.14
17:43
(3) спасибо большое, получилось! А как поставить режим просмотра - список?
-чтобы пользователь не мог изменять режим просмотра
-чтобы пользователь не мог записывать контрагентов в другие папки
5 olegves
 
15.05.14
17:45
(0) кури СвязиПараметровВыбора в свойствах элемента формы, зависящего от родителя
6 altaykniga
 
15.05.14
17:46
(3) только вот проблема: открывается справочник Контрагенты с отбором по родителю, находишь нужного контрагента, жмешь Выбрать, выбранный элемент переносится в форму документа, но тут же открывается справочник контрагентов без всяких отборов по родителю, т.е. открывается повторно стандартная форма выбора!
7 Wobland
 
15.05.14
17:46
второе как-то бредово звучит
8 Wobland
 
15.05.14
17:46
(6) стандартная обработка после твоей срабатывает что ль?
9 altaykniga
 
15.05.14
17:53
(8) да, срабатывала стандартнаяОбработка, установил =Ложь. Спасибо. Заметил еще проблему: выбранное значение все-таки не педерается в форму документа... вот код процедуры:

&НаКлиенте
Процедура КонтрагентНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    
    СтандартнаяОбработка=Ложь;
    Форма=ПолучитьФорму("Справочник.Контрагенты.ФормаВыбора");
    ЭО=Форма.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭО.ВидСравнения=ВидСравненияКомпоновкиДанных.ВИерархии;
    ЭО.ЛевоеЗначение=Новый ПолеКомпоновкиДанных("Родитель");
    ЭО.ПравоеЗначение=ПредопределенноеЗначение("Справочник.Контрагенты.Абоненты");
    ЭО.Использование=Истина;
    Ответ=Форма.ОткрытьМодально();    
КонецПроцедуры
10 Wobland
 
15.05.14
17:54
нене, педерать нам тут не надо
11 Wobland
 
15.05.14
17:54
(9) хочешь сказать, в ответе хрень? хочешь сказать, что модально - хорошо?
12 altaykniga
 
15.05.14
17:54
(0) да курил - все выкурил... не могу разобраться
13 altaykniga
 
15.05.14
17:57
(11) что не так делаю? Куда затем с этим ответом идти?
14 altaykniga
 
15.05.14
18:04
(13) а, ну да. Нужно теперь ответ назад в форму передать. Только вот подскажите, каким образом передать?
Делаю так: Объект.Контрагент = Ответ  . Это правильно? Или надо через ЭтаФорма./..../ = Ответ?
15 altaykniga
 
15.05.14
18:27
(3) а как спозиционироваться на текущем значении реквизита формы "Контрагент" при начале выбора?