Имя: Пароль:
1C
1С v8
Подскажите как открыть не главную форму элемента справочника формы списка
,
0 RusProgKarps
 
17.11.16
19:48
Доброго времени суток. Возникла необходимость открыть собственноручно спроектированную форму элемента справочника через двойной клик по записи в форме списка этого же справочника. форма, которую надо вызвать не есть основная, так еще надо как-то запретить ее открываться при двойном клике. А то так как я сейчас сделал открывается и моя и та, которая указана основно.
Вот как я открываю форму элемента из формы списка по двойному клику

&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    Если Элементы.Список.ТекущаяСтрока.ЭтоГруппа=Ложь Тогда
        ПараметрыСсылка= Новый Структура("Ключ",Элементы.Список.ТекущаяСтрока.Ссылка);
        ОткрытиеФорми(ПараметрыСсылка);
        
    КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура ОткрытиеФорми(ПараметрыФорм)
    Форма=Справочники.Номенклатура.ПолучитьФорму("ФормаДляЗаданиеАсортимента",ПараметрыФорм);
    Форма.Открыть();
КонецПроцедуры

Таким способом открывается, но пустая, поля соответствующие незаполненные.
Версия 1С 8.2 редакция 1.2.
Пожалуйста помогите, а то уже второй день парюсь.
1 marvak
 
17.11.16
20:07
(0)
копай в сторону обработчика в менеджере справочника
ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)
2 mistеr
 
17.11.16
20:33
(0) Чтобы не открывалась основная

СтандартнаяОбработка = Ложь;
3 chigsrOck
 
17.11.16
22:01
основной реквизит соответствующего типа в самодельной форме прописан?
4 RusProgKarps
 
18.11.16
12:11
(3)
Под основным реквизитов, который реквизит имеется в виду?
При создании собственноручной формы я выбирал тип формы форма элемента и перетащил туда код и наименование записи в справочнике, при том сделал эти два поля доступны для редактирования, я еще и три поля вытащил, которые и имеет редактировать пользователь с помощью этой формы.
Изюминка заключается в том, что когда проверить передан параметр Ключ, то он почему-то пустой (выводил в Сообщить, а также в процедуре ПриСозданииНаСервере пробовал передать в Объект формы объект записи Объект = Параметры.Ключ.ПолучитьОбъект ();
но оно выбрасывает ошибку, что значение не задано).

Еще попробовал таким вариантом открыть:

&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    Если Элементы.Список.ТекущаяСтрока.ЭтоГруппа=Ложь Тогда
        //ПараметрыСсылка= Новый Структура("Ключ",Элементы.Список.ТекущаяСтрока.Ссылка);
        ОткрытиеФорми(Элементы.Список.ТекущаяСтрока);
        //Форма=Справочники.Номенклатура.ПолучитьФорму("ФормаДляЗаданиеАсортимента",ПараметрыСсылка);
        //Форма.ОткрытьМодально();
        //ОткрытьФорму(Справочники.Номенклатура.ПолучитьФорму("ФормаЭлементаДляЗаданиеАсортимента",ПараметрыСсылка));
    КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура ОткрытиеФорми(СсылкаЕл)
    Форма=СсылкаЕл.ПолучитьФорму("ФормаДляЗаданиеАсортимента");
    Форма.Открыть();
    
    //Форма=Справочники.Номенклатура.ПолучитьФорму("ФормаДляЗаданиеАсортимента",ПараметрыФорм);
    //Форма.Открыть();
КонецПроцедуры

Пошло, хотя ранше открывало совсем другую форму.
5 RusProgKarps
 
18.11.16
13:27
(2) Я прочитал о ОбработкаПолученияФормы (ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка) и насколько я понял, то она заменит мне вызов основной формы для некоторого типа форм, а мне нужно чтобы только в форме ФормаСпискаДляПереглядуАсортименту, которая является типа формы списка и не является основной (там другая записана) при двойном клике мышки по записи в списке открывалась не основное форма элемента, а моя и только для данной формы списка.
Форма элемента, которую надо вызвать ФормаДляЗаданиеАсортимента.
Я бы был очень благодарен за пример, потому что сейчас сам не могу понять как это закодиты.