|
v7: Переход в форму списка справочника из элемента справочника. | ☑ | ||
---|---|---|---|---|
0
1C_noob_1C
08.04.13
✎
14:57
|
Добрейшего дня.
Платформа: 7.70.025 ТиС: 7.70.941 Пытаюсь реализовать переход в ФормуСписка справочника из формы элемента справочника, по аналогии "Перейти в журнал". Сама задача состоит в следующем: Справочник Номенклатура. При создании новой Номенклатуры, если номенклатура с таким артикулом есть, то при закрытии активизировать в ФормеСписка существующую Номенклатуру. Алгоритм моих действий таков: При вводе артикула, если такой существует, то сообщать пользователю... и при закрытии формы выполняется глобальная процедура, которая открывает ФормуСписка справочника и передает ей как параметр Номенклатуру, которую надо активизировать.
В итоге открывается вторая форма списка Номенклатуры, в которой активизируется нужная номенклатура. Что я делаю не так или мне чего-то не хватает? З.Ы. Набрел на ПриПовторномОткрытии(), но пока не пробовал. |
|||
1
Rie
08.04.13
✎
14:59
|
(0) Ты внимательно посмотрел, какие параметры у ОткрытьФорму?
А то у тебя в (0) нечто странное написано... |
|||
2
1C_noob_1C
08.04.13
✎
15:03
|
(1) Да.
Открыть форму списка справочника. ОткрытьФорму(<ОписательОбъекта>,<КонтекстФормы>) <ОписательОбъекта> - строковое выражение. ''Справочник.ХХХХХ.YYYYY'' <КонтекстФормы> - имя переменной, куда можно задать значение любого типа для передачи в открываемую форму. Данное значение будет доступно в открытой форме как атрибут Форма.Параметр. Единственно в коде "глОткрытьНоменклатуруВФормеСписка" без параметра "СписокДействий" (не все копировал). |
|||
3
Rie
08.04.13
✎
15:03
|
Если уж тебе именно так хочется - в форме списка справочника в ПриОткрытии получи передаваемый элемент. И АктивизироватьОбъект.
|
|||
4
Rie
08.04.13
✎
15:04
|
(2) Ты передал значение в форму. И что дальше?
|
|||
5
1C_noob_1C
08.04.13
✎
15:06
|
(3) Это я и делаю.
Но открывается еще одна ФормаСписка. Не получается сделать, чтоб Номенклатура активизировалась в уже открытом (4) последняя процедура ПриОткрытии() |
|||
6
Ёпрст
08.04.13
✎
15:07
|
(0)
Комменти всё, оставь только ЭТО Процедура ПроверкаАртикула() Тов=СоздатьОбъект("Справочник.Номенклатура"); Если Тов.НайтиПоРеквизиту("Артикул",Артикул,1)=1 Тогда Предупреждение("Товар с введенным артикулом уже существует!"); Конт=""; ОткрытьФорму("Справочник.Номенклатура",Конт); Конт.АктивизироватьОбъект(Тов.ТекущийЭлемент()); КонецЕсли; КонецПроцедуры |
|||
7
1C_noob_1C
08.04.13
✎
15:13
|
(6) ПроверкаАртикула() выполняется в модуле формы самого справочника, при изменении реквизита "Артикул" на форме.
ОткрытьФорму("Справочник.Номенклатура",Конт); {Справочник.Номенклатура.Форма.Модуль(16)}: Открытие окна в данном режиме недоступно! Конт.АктивизироватьОбъект(Тов.ТекущийЭлемент()); {Справочник.Номенклатура.Форма.Модуль(17)}: Значение не представляет агрегатный объект (АктивизироватьОбъект) |
|||
8
Rie
08.04.13
✎
15:14
|
(7) Используй "фиктивное закрытие".
|
|||
9
Rie
08.04.13
✎
15:17
|
||||
10
1C_noob_1C
08.04.13
✎
15:27
|
(7)(8) Как я понимаю это слегка не то, что мне надо. Этот метод активизирует элементы внутри одной формы. Или я что-то не понял...
|
|||
11
Rie
08.04.13
✎
15:29
|
(10) "Фиктивное закрытие" позволит обойти запрет, о котором ты говоришь в (7).
|
|||
12
1C_noob_1C
08.04.13
✎
15:30
|
(11) Понял.
|
|||
13
Ёпрст
08.04.13
✎
15:31
|
(10)
Перем Вася; Процедура ПроверкаАртикула() Тов=СоздатьОбъект("Справочник.Номенклатура"); Если Тов.НайтиПоРеквизиту("Артикул",Артикул,1)=1 Тогда Предупреждение("Товар с введенным артикулом уже с уществует!"); Вася = Тов.ТекущийЭлемент(); Форма.Закрыть(0); КонецЕсли; КонецПроцедуры Процедура ПриЗакрытии() Если ПустоеЗначение(Вася)=0 Тогда Конт=""; ОткрытьФорму("Справочник.Номенклатура",Конт); Конт.АктивизироватьОбъект(Вася); СтатусВозврата(0); Вася=""; КонецЕсли; КонецПроцедуры |
|||
14
1C_noob_1C
08.04.13
✎
15:46
|
(7) (8) (13)
Спасибо, работает. Оказалось все проще... |
|||
15
1C_noob_1C
08.04.13
✎
15:46
|
+(14) чем я думал)
|
|||
16
1C_noob_1C
08.04.13
✎
15:49
|
Разрешите еще попутный вопрос.
Возможно ли сделать данный метод универсальным для всех форм списков: ДляВыбора, ДляПодбора, ФормаСписка? |
|||
17
1C_noob_1C
08.04.13
✎
15:53
|
+(16) или ограничить только для ФормыСписка
|
|||
18
1C_noob_1C
08.04.13
✎
16:03
|
Извиняюсь за второй вопрос в одной теме (наглость).
Спасибо большое за помощь. |
|||
19
Ёпрст
08.04.13
✎
16:07
|
Можно.. даже штатно.
Но проще - через Класс.Перехватчик - хоть во всех формах сразу и что угодно |
|||
20
1C_noob_1C
08.04.13
✎
16:10
|
(19) Понял. Буду копать дальше.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |