Имя: Пароль:
1C
1C 7.7
v7: 1cpp табличное поле
0 d1ngo
 
14.12.19
13:16
Всем привет.

Подскажите пожалуйста, возник вопрос по поводу процедур используемых в обработках. На форме обработки есть 2 кнопки(в которые выводится табличное поле), насколько я понял чтобы это все работало нужно для каждой из этих кнопок заводить отдельные процедуры например:
Для первой кнопки:
ТаблПоле_ПриРедактированииЗначения()
ТаблПоле_Выбор()

Для второй кнопки:
ТаблПоле2_ПриРедактированииЗначения()
ТаблПоле2_Выбор()

Но в этих процедурах один и тот же код, можно ли это все как-то совместить в один? Чтобы было навроде      ?(1=1,ТаблПоле_,ТаблПоле2)ПриРедактированииЗначения()    ну или что-то в таком роде. Чтобы код не дублировался лишний раз.
1 AAA
 
14.12.19
13:22
Вызывай из каждого обработчика процедуру с общим функционалом, в нее аргументом передавай табличное поле
2 d1ngo
 
14.12.19
13:45
Можешь на примере показать пробовал сделать вот так, не срабатывает.

Процедура ПриАктивизацииКолонки(ТП)
    ТП.ТекущаяКолонка.ЦветФона=7921852;
    ТекКолонка=ТП.ТекущаяКолонка;
КонецПроцедуры

Процедура ПриОткрытии()
    _Форма=СоздатьОбъект("Форма");
    _Форма.УстановитьФорму(Форма);
КонецПроцедуры

Процедура ФормаПриСоздании(_Форма)

    ТаблЗн=СоздатьОбъект("ТаблицаЗначений");
    ТП=_Форма.СоздатьЭлементУправления("ТабличноеПоле",Форма.ТаблПоле);
    
    ТП.РежимВыделенияСтроки =2;
    ТП.СтильЗаголовков =1;

    Док = СоздатьОбъект("Документ.Товары");
    Док.НайтиПоНомеру("3");
    Док = Док.ТекущийДокумент();
    
    тз = СоздатьОбъект("ТаблицаЗначений");
    Док.ВыгрузитьТабличнуюЧасть(тз);
    
    Для сч=1 По тз.КоличествоКолонок() Цикл
        ИмяКолонки = тз.ПолучитьПараметрыКолонки(сч);        
        ТП.Колонки.Добавить(ИмяКолонки).Данные=ИмяКолонки;
        ТП.Колонки.Получить(сч-1).Заголовок =ИмяКолонки;
    КонецЦикла;
    
    ТП.ПоставщикДанных=СоздатьОбъект("ПоставщикДанныхТЗ");
    ТП.ПоставщикДанных.УстТаблицуЗначений(ТЗ);
    ТП.ОбновитьСтроки();
КонецПроцедуры
3 AAA
 
14.12.19
14:08
// -----------------------------------------------------------------
Процедура ТаблРасходныеВыбор(ТП, ТекСтрока, ТекКолонка, ТипРегиона)

    НоменклатураВыбор(ТП, ТекСтрока, ТекКолонка, ТипРегиона, ТабНомРасходные);
    
КонецПроцедуры //ТаблРасходныеВыбор()

НоменклатураВыбор - это общий обработчик для нескольких табличных полей
Дополнительно я передаю Таблицу значений - источник данных ТабНомРасходные
4 d1ngo
 
14.12.19
14:15
спасибо