Имя: Пароль:
1C
1С v8
УФ. Появилась ли возможность устанавливать действие из общего модуля?
0 pessok
 
03.03.15
15:28
Коллеги, привет. Помнится, раньше устанавливать действие из общего модуля было нельзя. Что-нибудт поменялось на этом фронте с выходом УФ?

Собственно - в справочник договоров хочу добавить набор записей регистров:

&НаСервере
Процедура СоздатьТаблицуРегистра(Форма, ИмяТаблицы, ПредставлениеИмениТаблицы, ИмяРегистра, ОтборНабора, ИсключаемыеКолонки = Неопределено)
        
    //добавляем реквизиты формы
    ДобавляемыеРеквизиты = Новый Массив;
    Реквизит = Новый РеквизитФормы(ИмяТаблицы, Новый ОписаниеТипов("РегистрСведенийНаборЗаписей."+ИмяРегистра));
    ДобавляемыеРеквизиты.Добавить(Реквизит);            
    Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
        
    НаборДанных = Форма.РеквизитФормыВЗначение(ИмяТаблицы);
    
    Для Каждого ЭлементОтбора Из ОтборНабора Цикл
    
        НаборДанных.Отбор[ЭлементОтбора.Ключ].Установить(ЭлементОтбора.Значение);
        
    КонецЦикла;
    
    НаборДанных.Прочитать();
    
    Форма.ЗначениеВРеквизитФормы(НаборДанных, ИмяТаблицы);
    
    //добавляем таблицу на форму
    НоваяТаблицаФормы = Форма.Элементы.Добавить(ИмяТаблицы, Тип("ТаблицаФормы"), Форма);
    НоваяТаблицаФормы.ПутьКДанным = ИмяТаблицы;
    НоваяТаблицаФормы.Заголовок = ПредставлениеИмениТаблицы;
    НоваяТаблицаФормы.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Верх;    
    //колонки таблицы получим из метаданных
    МетаданныеРегистра = Метаданные.РегистрыСведений[ИмяРегистра];
    //добавляем колонки
    Для Каждого Измерение Из МетаданныеРегистра.Измерения Цикл
        
        Если ЗначениеЗаполнено(ИсключаемыеКолонки) Тогда
            Если ИсключаемыеКолонки.Найти(Измерение.Имя) <> Неопределено Тогда
                Продолжить;
            КонецЕсли;
        КонецЕсли;
        
        ИмяКолонки = Измерение.Имя;
        ТипКолонки = Измерение.Тип;
        НоваяКолонкаТаблицы = Форма.Элементы.Добавить(ИмяТаблицы+ИмяКолонки, Тип("ПолеФормы"), НоваяТаблицаФормы);
        НоваяКолонкаТаблицы.ПутьКДанным = ИмяТаблицы+"."+ИмяКолонки;
        НоваяКолонкаТаблицы.Вид = ВидПоляФормы.ПолеВвода;
        
    КонецЦикла;
    
    НоваяТаблицаФормы.АвтоВводНовойСтроки = Ложь;
    
    НоваяТаблицаФормы.УстановитьДействие("ПриИзменении", "ПриИзмененииТаблицыРегистра");
    
КонецПроцедуры

&НаКлиенте
Процедура ПриИзмененииТаблицыРегистра(Элемент) Экспорт
    Сообщить("Я работаю!");    
КонецПроцедуры


Обработчик ПриИзменении не срабатывает. Если поместить в форму справочника, то, есессно, все работает.

Может уже кто-то придумал какие-то костыли? :)
1 pessok
 
03.03.15
15:46
ап, чтоли, мало ли :)
2 Адский плющ
 
03.03.15
15:53
Нету такой возможности. Типовые вызывают в событиях формы МодификацияКонфигурацииПереопределяемый (не везде, правда), а вот затычку для событий поленились сделать.
3 mikecool
 
03.03.15
15:56
во всяких показатьвопрос вроде можно
4 pessok
 
03.03.15
15:57
(2) грустьтоска
(3) а по-подробней?