Имя: Пароль:
1C
1C 7.7
v7: При подборе из справочника открытие сразу нужной группы элементов
0 leonid_gun
 
18.09.19
23:23
Доброго времени!
Есть необходимость при подборе из справочника номенклатуры в табличную часть документа сразу производить выбор из определенной группы элементов. Причем только для этого документа. Подскажите, куда копать?
Допиливаю ТИС 7.70.032.
1 Lazy Stranger
 
18.09.19
23:37
АктивизироватьОбъект(<?>);
Синтаксис:
АктивизироватьОбъект(<Объект>)
Назначение:
Активизировать объект в форме списка.
Параметры:
<Объект> - выражение, которое может содержать значение элемента справочника или документ или запись журнала расчетов (в зависимости от типа модуля формы, в котором должен быть активизирован элемент диалога).
Замечание:
Доступ к методу возможен только в контексте Модуля формы.
2 Bigbro
 
19.09.19
04:40
ну так открыть подбор с контекстом.
а в при открытии в форме справочника - обрабатывать Форма.Параметр который передал.
и там уже устанавливай родителя владельца что угодно
3 leonid_gun
 
21.09.19
21:04
Я так понимаю, мне нужно работать с предопределенной процедурой ОбработкаПодбора(<Элемент>,<КонтФормы>) и в ней уже использовать АктивироватьОбъект()??
4 ДенисЧ
 
21.09.19
21:18
(3) Нет. Обработка подбора тебе уже возвращает выбранный элемент. Активизировать нужно при открытии формы подбора.
5 leonid_gun
 
21.09.19
22:52
Немного не разобрался. Но вот набросал код. НайтиПоКоду указан код нужной группы, которую нужно открыть сразу в подборе

Процедура ПодборУслуги(СправочникПодбора,ФормаПодбора="ФормаВыбора")
    Перем Параметр;
    Параметр = Форма.Параметр;
        Если СправочникПодбора.НайтиПоКоду("10350", 0) = 1 Тогда
           Если СправочникПодбора.Выбран()=1 Тогда
              НужнаяГруппа =  СправочникПодбора.ТекущийЭлемент();
              ИспользоватьРодителя(НужнаяГруппа,0);
              АтивизироватьОбъект(СправочникПодбора.ТекущийЭлемент());
           КонецЕсли;
        КонецЕсли;
    // открываем форму подбора
    ОткрытьПодбор(СправочникПодбора,ФормаПодбора,Параметр,0);
КонецПроцедуры
6 Chieftain
 
21.09.19
23:07
Перем Параметр;
Справ = СоздатьОбъект("Справочник.Номенклатура");
Если Справ.НайтиПоКоду("10350", 0) = 1 Тогда
    ОткрытьПодбор("Справочник.Номенклатура",ФормаПодбора,Параметр);
    Параметр.ИспользоватьРодителя(Справ.ТекущийЭлемент());
    или
    Параметр.АктивизироватьОбъект(Справ.ТекущийЭлемент());
КонецЕсли;
7 leonid_gun
 
21.09.19
23:14
И у меня еще вопрос.
Я так понял, что-то подобное будет работать при вызове этой процедуры через элемент формы типа Кнопка.
А вот как выполнить такую процедуру через нажатие в определенной колонке табличной части документа, которой привязан справочник номенклатуры, например, в таком документе как Расходная накладная???
Там тоже появляется ФормаВыбора со списком элементов.
8 GreyK
 
21.09.19
23:33
(7) Используй предопределенную процедуру ПриНачалеРедактированияСтроки, примеров её использования в ТиСе предостаточно.
9 Калиостро
 
22.09.19
11:06
(0)
В процедуре ПриОткрытии

    Спр = СоздатьОбъект("Справочник." + Вид());
    Спр.НайтиПоНаименованию(НазваниеМоейГруппы, 0, 1);
    ТекРодитель = Спр.ТекущийЭлемент();
    ИспользоватьРодителя(ТекРодитель);
10 leonid_gun
 
30.09.19
15:16
Спр = СоздатьОбъект("Справочник." + Вид());
    Спр.НайтиПоНаименованию(НазваниеМоейГруппы, 0, 1);
    ТекРодитель = Спр.ТекущийЭлемент();
    ИспользоватьРодителя(ТекРодитель);

Так не работает. Все равно открывает справочник с корня папок ((
11 Kigo_Kigo
 
30.09.19
15:22
(10) В качестве параметра передавай родителя, при открытии ИспользоватьРодителя(Форма.Параметр)
12 Kigo_Kigo
 
30.09.19
15:23
А, тупанул немного В (10) написали
13 leonid_gun
 
30.09.19
18:24
(11) Не понял фишку. ((
Ведь Атрибут Параметр объекта «Форма» представляет собой значение, пере­данное данной форме при ее открытии программно с помощью методов Открытьформу, ОткрытьФормуМодально, ОткрытьПодбор. А я не открываю форму ни одним из указанных способов. Она уже открыта и произвожу выбор номенклатуры из справочника путем щелчка мышки по соответствующей ячейке в графе табличной части документа к которой привязан реквизит типа Справочник.
14 MWWRuza
 
гуру
30.09.19
18:54
(13)Она уже открыта и произвожу выбор номенклатуры из справочника путем щелчка мышки по соответствующей ячейке в графе табличной части документа к которой привязан реквизит типа Справочник.

Форма - это не та форма, из которой Вы справочник открываете, а ФормаСписка самого справочника.
15 Злопчинский
 
30.09.19
19:52
(5)
        Если СправочникПодбора.НайтиПоКоду("10350", 0) = 1 Тогда
           Если СправочникПодбора.Выбран()=1 Тогда //это условие лишнее, выкинь его. если найден по коду то уже выбран.
16 Злопчинский
 
30.09.19
19:53
По идее - (6) должен сработать норм.
Независимо от того, куда вы едете — это в гору и против ветра!