Имя: Пароль:
1C
1C 7.7
v7: Обновить форму или отловить открытие элемента
, , ,
0 ЛюбопытнаяЯ
 
13.01.17
09:42
На обычной форме справочника есть ТЗ. Если добавлять/редактировать элемент справочника, то как обновить ТЗ на форме? Хотела передать параметр при открытии элемента, но не могу отловить открытие. Справочник редактируется в диалоге. Поэтому методы "ПриРедактированииСтроки","ПриВводеСтроки"... не подходят. Нужно отловить либо открытие элемента, либо как-то по другому обновить форму справочника
1 Злопчинский
 
13.01.17
09:48
Когда тз обновить надо?
При смене фокуса на эу происходит перерисовка формы
Повесь текст на форму с вызоаом функции для этого текста - при перерисовк функция отработает и ва ней можешь даже юзеру сиськи зачеркнуто фигу показать на жкране ;-)

А так штаная процедура ПриОткрытии
2 Ёпрст
 
13.01.17
09:49
Либо повесть событие на обновление формы (это затратно по ресурсам)
Либо передавать параметр в открываемую форму элемента и оттуда пинать ТЗ через контекст открытой формы, если она не закрыта.
3 ЛюбопытнаяЯ
 
13.01.17
09:50
(2) Так я и хочу параметр передать в открываемую форму. Не могу действие отловить
4 Ёпрст
 
13.01.17
09:54
(3) У тебя ТЗ в форме списка справочника ? При открытии элемента, его меняешь, записываешь, хочешь, чтоб на форме списка ТЗ обновилась, так ?
5 Это_mike
 
13.01.17
09:54
(3) уточни, что _нужно_ сделать.
Т.е. типа "на форме элемента справочника есть ТЗ. там данные подчиненых элементов..."
6 ЛюбопытнаяЯ
 
13.01.17
09:55
(4) Да, все верно
7 Злопчинский
 
13.01.17
09:56
... сиськи зачеркнуто фига потому что непонятно
Где тз?
Нет формы справочника
Есть
Форма списка справочника
Форма элемента справочника
Форма группы справочника

Тебе тз на форме списка надо обновить? После обработки элемента?
8 Злопчинский
 
13.01.17
09:58
В форму элемента через глобпеременную или через параметры передавай контекст формы списка справочника

При закрытии формы элемента
Контексттипатойформыспискасправочника.форма.обновить()
9 ЛюбопытнаяЯ
 
13.01.17
10:00
(8) Через глобальную - попробую.
10 Ёпрст
 
13.01.17
10:10
(6) в форме списка
//======================================================================
Процедура ПриВводеСтроки()
    Сообщить("ПриВводеСтроки");
    Сообщить(ЭтоГруппа());
    ОткрытьФорму("Элемент."+Вид(),"Вася");
    СтатусВозврата(0);
КонецПроцедуры
//======================================================================
Процедура ПриВыбореСтроки()
    Сообщить("ПриВыбореСтроки");
    Сообщить(ЭтоГруппа());
    ОткрытьФорму(ТекущийЭлемент(),"Вася");    
КонецПроцедуры
РедактироватьВДиалоге(0,0);
Форма.ОбработкаВыбораСтроки(1);


в форме элемента:
Процедура ПриОткрытии()
  Сообщить(Форма.параметр);
КонецПроцедуры
11 Ёпрст
 
13.01.17
10:11
Единственный затык - создание группы справочника.
12 Ёпрст
 
13.01.17
10:11
Хотя это тоже можно объехать, надо только вспомнить как
13 ЛюбопытнаяЯ
 
13.01.17
10:12
(10) Интересный вариант. Да и группа справочника не очень нужна. Одна папка есть- постоянная
14 ЛюбопытнаяЯ
 
13.01.17
10:13
(8,10) - Спасибо! Обе идеи нравятся
15 Ёпрст
 
13.01.17
10:30
(14) ну если не нужна, заместо васи передавай контекст формы, в форме элемента при закрытии проверяй на ТипЗначения Форма.Параметр, если это групповой контекст и ТипЗначения = 100 (типа форму списка еще не закрыли), то либо пинай форму, либо через контекст открытой формы устанавливай новые значения атрибутов
16 Ёпрст
 
13.01.17
10:32
Единственное, нужно еще условие воткнуть на Форма.РежимВыбора(), если форма открыта для режима выбора, то ничего не делать, т.е не открывать форму элемента в ПриВыбореСтроки.
Иначе, в документе не выберешь ничего из справочника этого
Программист всегда исправляет последнюю ошибку.