Имя: Пароль:
1C
1C 7.7
v7: Как узнать из какой формы происходит создание элемента справочника?
,
0 Endorphine
 
09.08.11
15:43
В конфигурации один справочник имеет две формы списка. В каждой форме задействованы разные реквизиты справочника. При редактировании строки передается параметр в форму элемента справочника и по этому параметру отображаются слои в форме элемента, и всё замечательно. Вопрос, как при создании нового элемента понять в какой форме списка он создавался?
1 skunk
 
09.08.11
15:47
(0)ну если передача контекста не нравиться ... то никак
2 Endorphine
 
09.08.11
15:53
skunk, а с передачей контекста как?
3 Cthulhu
 
09.08.11
16:00
(2): а при открытии формы нового элемента справочника передавать в неё параметр - религия не позволяет?..
4 ДенисЧ
 
09.08.11
16:01
(2) хотя бы конт.Форма.Заголовок()
5 Cthulhu
 
09.08.11
16:05
(4): ой, ну не надо - пусть в том же месте управляет тем как форма выглядит, не надо "снаружи".
6 Endorphine
 
09.08.11
16:12
(3): При создании нового элемента в форме списка появляется окно формы элемента... Если форма элемента открыта, передавать что-то уже поздно, а до нажатия кнопки "Новая строка" рано..
7 Endorphine
 
09.08.11
16:13
(4)Если можно пример
8 FN
 
09.08.11
16:29
Formex.dll + АктивныйКонтекст() + ПолныйТипОбъекта()
9 Ёпрст
 
09.08.11
16:35
(6) чем не устраивает передача параметра в форму нового элемента справочника ?
10 KishMish
 
09.08.11
16:39
можно сделать так
глобальная переменная

Перем глЧеЗаФорма Экспорт;

в формах списка текст на форме с функцией
в функции
глЧеЗаФорма = "Форма1";
ну или "Цемент"

При открытии формы элемента определяется значение гл переменной
и по ней определяется последняя активная форма списка
11 ret-Phoenix
 
09.08.11
16:42
1C++
<code>
лФормаРасш = СоздатьОбъект("РасширениеФормы");
лФормаРасш.УстановитьФорму(Конт.Форма);
лПолныйТип = сокрЛП(лФормаРасш.ПолныйТипОбъекта());
</code>
12 Ёпрст
 
09.08.11
16:43
(11) расширение формы к 1с++ не имеет никакого отношения, если че.
13 ret-Phoenix
 
09.08.11
16:51
(12) смотря какая версия 1С++
14 Ёпрст
 
09.08.11
16:53
(13) не важно, это всё равно метод формекса, даже если он и был когда-то сто лет назад встроен в 1срр
15 Shaman100M
 
09.08.11
17:16
//установить для справочника "Редактировать" - "обоими способами".

Процедура ПриОткрытии()
   РедактироватьВДиалоге(0,0);
КонецПроцедуры

Процедура ПриВводеСтроки()
   СтатусВозврата(0);
   ОткрытьФорму("Злемент.ЭтотСправочник",ЗдесьПередатьКОнтекстФормыДляОпределенияФормыСпискаИАктивизацииЭлементаПослеЗаписи);
КонецПроцедуры
16 Ёпрст
 
09.08.11
17:17
(15) автора этот вариант не устраивает..
:)
17 Shaman100M
 
09.08.11
17:24
(16) ну, тогда из формы нового элемента пытаться открывать формы списка и смотреть по их отклику из ПриПовторномОткрытии(). Однако, могут быть открыты  обе формы списка, плюс, в меню интерфейса м.б. не прописано название фомы списка, тогда, попадем "не туда".
Много действий, в общем.
18 Endorphine
 
10.08.11
07:40
(15) Огромное спасибо!
19 Irbis
 
10.08.11
07:43
Странно, что вообще элементы одного справочника должны создаваться разными способами. Если уж пользователь добрался до создания элемента, какая разница как он это сделал?
20 Endorphine
 
10.08.11
07:54
Справочник содержит два типа типа элементов у которых 75% реквизитов совпадают.. По какой то причине решили не создавать два отдельных справочника, а поместить всё в одном.
21 Irbis
 
10.08.11
08:00
(20) Пож..пились значится, может переделать по уму было бы проще?
P.S. Что-то побрюзжать сегодня захотелось.
22 Endorphine
 
10.08.11
08:07
(21)Может и проще.. Хотя это спорный вопрос.. но уже поздно, уже сделано так =)
23 ЧеловекДуши
 
10.08.11
08:19
Зачем тебе это?
24 Endorphine
 
10.08.11
08:30
(23) Я просто реализовал на 1с готовое решение на access.. По какой причине кто-то когда-то на accesse сделал именно так я не знаю, да я для меня это не важно..
25 Torquader
 
11.08.11
14:01
Если новый элемент создаётся не в диалоге, а в форме списка, то все обработки создания будут выполняться в форме списка - причём именно той, в которой он создаётся.
Если открывается своя форма, то никак (при создании нового элемента система открывает форму сама и передать параметр нет возможности).
26 Ёпрст
 
11.08.11
14:03
(25)
>>>Если открывается своя форма, то никак

какая наивность, см (15)
Ошибка? Это не ошибка, это системная функция.