Имя: Пароль:
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) Я прочитал о ОбработкаПолученияФормы (ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка) и насколько я понял, то она заменит мне вызов основной формы для некоторого типа форм, а мне нужно чтобы только в форме ФормаСпискаДляПереглядуАсортименту, которая является типа формы списка и не является основной (там другая записана) при двойном клике мышки по записи в списке открывалась не основное форма элемента, а моя и только для данной формы списка.
Форма элемента, которую надо вызвать ФормаДляЗаданиеАсортимента.
Я бы был очень благодарен за пример, потому что сейчас сам не могу понять как это закодиты.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший