v7: Переход в форму списка справочника из элемента справочника. #659990


#0 by 1C_noob_1C
Добрейшего дня. Пытаюсь реализовать переход в ФормуСписка справочника из формы элемента справочника, по аналогии "Перейти в журнал". Сама задача состоит в следующем: Справочник Номенклатура. При создании новой Номенклатуры, если номенклатура с таким артикулом есть, то при закрытии активизировать в ФормеСписка существующую Номенклатуру. Алгоритм моих действий таков: При вводе артикула, если такой существует, то сообщать пользователю... и при закрытии формы выполняется глобальная процедура, которая открывает ФормуСписка справочника и передает ей как параметр Номенклатуру, которую надо активизировать. В итоге открывается вторая форма списка Номенклатуры, в которой активизируется нужная номенклатура. Что я делаю не так или мне чего-то не хватает? З.Ы. Набрел на ПриПовторномОткрытии, но пока не пробовал.
#1 by Rie
Ты внимательно посмотрел, какие параметры у ОткрытьФорму? А то у тебя в нечто странное написано...
#2 by 1C_noob_1C
Да. Открыть форму списка справочника. ОткрытьФорму(<ОписательОбъекта>,<КонтекстФормы>) <ОписательОбъекта> - строковое выражение. ''Справочник.ХХХХХ.YYYYY'' <КонтекстФормы> - имя переменной, куда можно задать значение любого типа для передачи в открываемую форму. Данное значение будет доступно в открытой форме как атрибут Форма.Параметр. Единственно в коде "глОткрытьНоменклатуруВФормеСписка" без параметра "СписокДействий" (не все копировал).
#3 by Rie
Если уж тебе именно так хочется - в форме списка справочника в ПриОткрытии получи передаваемый элемент. И АктивизироватьОбъект.
#4 by Rie
Ты передал значение в форму. И что дальше?
#5 by 1C_noob_1C
Это я и делаю. Но открывается еще одна ФормаСписка. Не получается сделать, чтоб Номенклатура активизировалась в уже открытом последняя процедура ПриОткрытии
#6 by Ёпрст
Комменти всё, оставь только ЭТО
#7 by 1C_noob_1C
ПроверкаАртикула выполняется в модуле формы самого справочника, при изменении реквизита "Артикул" на форме. ОткрытьФорму("Справочник.Номенклатура",Конт); {Справочник.Номенклатура.Форма.Модуль}: Открытие окна в данном режиме недоступно! Конт.АктивизироватьОбъект(Тов.ТекущийЭлемент); {Справочник.Номенклатура.Форма.Модуль}: Значение не представляет агрегатный объект (АктивизироватьОбъект)
#8 by Rie
Используй "фиктивное закрытие".
#9 by Rie
+
#10 by 1C_noob_1C
Как я понимаю это слегка не то, что мне надо. Этот метод активизирует элементы внутри одной формы. Или я что-то не понял...
#11 by Rie
"Фиктивное закрытие" позволит обойти запрет, о котором ты говоришь в .
#12 by 1C_noob_1C
Понял.
#13 by Ёпрст
#14 by 1C_noob_1C
Спасибо, работает. Оказалось все проще...
#15 by 1C_noob_1C
+ чем я думал)
#16 by 1C_noob_1C
Разрешите еще попутный вопрос. Возможно ли сделать данный метод универсальным для всех форм списков: ДляВыбора, ДляПодбора, ФормаСписка?
#17 by 1C_noob_1C
+ или ограничить только для ФормыСписка
#18 by 1C_noob_1C
Извиняюсь за второй вопрос в одной теме (наглость). Спасибо большое за помощь.
#19 by Ёпрст
Можно.. даже штатно. Но проще - через Класс.Перехватчик - хоть во всех формах сразу и что угодно
#20 by 1C_noob_1C
Понял. Буду копать дальше.
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С