Имя: Пароль:
1C
1C 7.7
v7: Как сделать выбор подчиненного справочника в таблице значений
0 malev35
 
22.08.12
21:32
Как сделать выбор подчиненного справочника в таблице значений?
тз - тз на форме, РеквКонтрагент,РеквДоговор рекв-ты на форме
//*******************************************
Процедура ПриОткрытии()
   тз.новаяКолонка ("Контрагент");
   тз.новаяколонка ("договор");
КонецПроцедуры // ПриОткрытии

Процедура Сформировать()
   тз.новаяСтрока();
   тз.Контрагент=РеквКонтрагент;
   тз.договор=РеквДоговор;
КонецПроцедуры

//======================================================================
Процедура ОбрВыбораЗначТЗ()
   
ЗначЯч=тз.ПолучитьЗначение(тз.ТекущаяСтрока(),тз.ТекущаяКолонка());;
Если тз.ТекущаяКолонка()="Контрагент" Тогда
ВвестиЗначение(ЗначЯч,"контрагент","Справочник.Контрагенты");
Иначе
ЗначЯч.ИспользоватьВладельца(ЗначЯч.Владелец);
//ЗначЯч.Выбрать("","ФормаСписка"); //не работает
ВвестиЗначение(ЗначЯч,"Договор","Справочник.Договоры");
КонецЕсли;
КонецПроцедуры // ОбрВыбораЗначТЗ()
1 malev35
 
22.08.12
21:42
ОбрВыбораЗначТЗ() соответственно процедура повешенная на тз, отвечает за обработку выбора ячеек в таблице значений.
2 Злопчинский
 
22.08.12
21:51
СпрД = СО("Справочник.Договоры")
СпрД.ИспользоватьВладельца(текущеезначениевладельца);
СпрД.Выбрать(...);
.
???
3 viktor_vv
 
22.08.12
21:52
ОткрытьПодбор();
4 viktor_vv
 
22.08.12
21:52
И в чем вопрос ? Как для каждой колонки свой обработчик организовать или что ?
5 Злопчинский
 
22.08.12
21:53
(4) как владельца установить
6 viktor_vv
 
22.08.12
21:55
До конца не уверен

ОткрытьПодбор(<Объект>,<ИмяФормы>,<КонтекстФормы>,<ФлагМножВыбора>,<ТекЗнач>)
КонтекстФормы.Владелец = ЗначЯч.Владелец ;
7 viktor_vv
 
22.08.12
21:57
(6)+ Скорее

КонтекстФормы.ИспользоватьВладельца(Владелец);
8 malev35
 
22.08.12
21:58
(3) не работает не устанавливается владелец
(2) проверяю...
9 Злопчинский
 
22.08.12
22:00
(8) ну? НУ?
10 Злопчинский
 
22.08.12
22:00
в принципеЮ и (3) должен работать...
11 malev35
 
22.08.12
22:04
(8) минутку дочка мел кушает
12 malev35
 
22.08.12
22:07
(2) экселент! работает
13 viktor_vv
 
22.08.12
22:08
(8) (6)+(7) работает, только если обработчик нужен для разных колонок, то еще нужна будет переменная модуля куда писать колонку откуда выбираешь для ОбработкиПодбора().
14 malev35
 
22.08.12
22:12
Жаль что без создание объекта не обойтись
(13) не совсем понял как владельца установить в Вашем случае, тз.ТекущаяКолонка() вроде как нормально обрабатывает выбор
15 malev35
 
22.08.12
22:15
и да, если требуется изменение в коде самого справочника, то не подходит
16 Злопчинский
 
22.08.12
22:16
(14) если создание объекта мешает - тогда копай ОткрытьПодбор - должно работать.
.
но что-то мне подсказывает что Спр.Выбрать в твеоем случае будет лучше - так как вряд ли тебе надо множество объектов - и можно сразу обработать выбор из справочника, а открытьподбор - требует для обработки выбора - отдельной предопределенной процедуры - а вней может быть недоступен контекст той процедуры из которой открываешь подбор
17 viktor_vv
 
22.08.12
22:17
(14)
Процедура Сформировать()
   Перем Конт ;

   ОткрытьПодбор("Справочник.ПрайсПоСкладам",,Конт,0);
   Конт.ИспользоватьВладельца(фасТовар,0);

КонецПроцедуры
18 malev35
 
22.08.12
22:23
так не работает открывается справочник контрагентов
Процедура ОбрВыбораЗначТЗ()
   Перем Конт;
   СпрД = СоздатьОбъект("Справочник.Договоры");
   
   
   ЗначЯч=тз.ПолучитьЗначение(тз.ТекущаяСтрока(),тз.ТекущаяКолонка());;
   Если тз.ТекущаяКолонка()="Контрагент" Тогда
       ВвестиЗначение(ЗначЯч,"контрагент","Справочник.Контрагенты");
   Иначе
       //СпрД.ИспользоватьВладельца(ЗначЯч.Владелец);
       //СпрД.Выбрать("","ФормаСписка");
       
        ОткрытьПодбор("Справочник.Договоры",,Конт,0);
        Конт.ИспользоватьВладельца(ЗначЯч.Владелец,0);
   КонецЕсли;
КонецПроцедуры
19 viktor_vv
 
22.08.12
22:25
(18) Ну не знаю, в (17) рабочий код. В ЗначЯч есть что-то ?
20 Злопчинский
 
22.08.12
22:27
(18) обозначь конкретную ФОРМУ ДЛЯ ПОДБОРА при вызове
возможно что при открытии подбора подчиненного справочника - если не определен владелец - в форме спр.договора принудительно открывается для выбора владельца
21 viktor_vv
 
22.08.12
22:29
(20) Не, с пустым владельцем ругается на неверное значение, но открывает форму подчиненного справочника. Но форму таки лучше определить явно.
22 malev35
 
23.08.12
22:57
ммм, а ФормаСписка есть у всех справочников, если ее указать для подбора то работает.
23 malev35
 
23.08.12
23:15
просто для примера указан справочник.договоры в оригинале может быть любой
Ошибка? Это не ошибка, это системная функция.