Имя: Пароль:
1C
 
Как закрыть форму элемента справочника, имея ссылку на этот элемент
0 Feofan
 
16.09.09
09:11
Ситуация следующая. Есть справочник А и есть справочник Б, который вводится на основании А.
Открываем элемент справочника А, вводим на его основании элемент справочника Б, записываем и закрываем его. И при этом надо закрыть форму элемента справочника А. Что-то никак.
Пробовал так:

СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить("Ключ", СсылкаНаСправочникА);
ПолучитьФорму("Справочник.СправочникА.ФормаОбъекта",СтруктураПараметров).Закрыть();

Говорит что форма не открыта. Заигрывания с уникальностью в этом же методе тоже ни к чему не привели..
1 SuperMario
 
16.09.09
09:20
Справочник на основании %) Ты не путаешь с документами?
2 mikecool
 
16.09.09
09:22
(0) а третий параметр в ПолучитьФорму()?
(1) ты не поверишь, но и не только справочники можно вводить на основании
3 Feofan
 
16.09.09
09:29
(2) Владелец? Форма справочника Б никак же не является владельцем для формы справочника А
4 SuperMario
 
16.09.09
09:29
(2) вот шайтан попутал. согласен
5 mikecool
 
16.09.09
09:30
(3) ключ уникальности
6 Feofan
 
16.09.09
09:34
(5) Пробовал, что-то не выходит. При открытии формы справочника А присваивал ей ключ уникальности - ссылку на этот элемент. Потом писал при записи справочника Б:

ПолучитьФорму("Справочник.СправочникА.ФормаОбъекта",,,СсылкаНаСправочникА).Закрыть();

Не вышло. Или как-то по другому с уникальностью надо работать? Я там не совсем понял по СП.
7 Defender aka LINN
 
16.09.09
09:40
(0) А если пользователю не надо закрывать справочник А? А если ввод на основании делался из формы списка? А если программно на сервере?
8 mikecool
 
16.09.09
09:41
(7) если программно на сервере, то и форм никаких не будет...
от задачи все зависит
9 Feofan
 
16.09.09
09:42
(7) Пользователю надо закрывать справочник А.
Если из формы списка - я естественно проверю сначала Открыта()
Если на сервере то клиентские процедуры вообще отпадают
10 Defender aka LINN
 
16.09.09
09:46
(9) Ты объясни, на кой хрен тебе основание-то закрывать. Баловство это все.
11 hhhh
 
16.09.09
10:04
(9) через оповещение работай. Типа в форме Б

Оповестить("Какого хрена ты еще открыта? Закрывайся немедленно!");

А в форме А

ОбработкаОповещения(ИмяСобытия, Параметр, Источник)

Если ИмяСобытия = "Какого хрена ты еще открыта? Закрывайся немедленно!" Тогда
   Закрыть();
КонецЕсли;
12 Feofan
 
16.09.09
10:16
(11) Гениально:) Спасибо, работает.
Чисто из любопытства хотелось бы узнать как все же это сделать через ПолучитьФорму()
13 TitanLuchs
 
16.09.09
11:48
(0) ЭтаФорма.ВладелецФормы.Закрыть();

Проверял, правда, на документах, а не на справочниках, но это не должно менять сути.