8.х Обработчик событий

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем AK79, 5 фев 2008.

  1. TopicStarter Overlay
    AK79
    Offline

    AK79

    Регистрация:
    23 дек 2007
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    В форме генерирую ТабличноеПоле НовТаб. Создаю колоку колво.
    Мне необходимо описать событие ПриИзменении для данной колонки Колво.
    Помогите, срочно нужно дописать форму!
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Дык а в чем сложность? Правой клавишей на оле ввода в этой колонке-свойства-ПриИзменении
  3. TopicStarter Overlay
    AK79
    Offline

    AK79

    Регистрация:
    23 дек 2007
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    Сложность в том что ТП я создаю динамически в нутри кода....
  4. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
  5. MetalMessia
    Offline

    MetalMessia

    Регистрация:
    27 дек 2007
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Код:
    Процедура Обработчик()
    
    КонецПроцедуры
    
    ////////////////////////////////////////////////////////////////////
    // Основная программа
    /////////////////////////////////////////////////////////////////////
    
    ЭлементыФормы.ТП.Колонки.Добавить("Количество");
    ЭлементыФормы.ТП.Колонки.Найти("Количество").РежимРедактирования =
    ЭлементыФормы.ТП.Колонки.Найти("Количество").ЭлементУправления.УстановитьДействие("ПриИзменении",
    Новый Действие("Обработчик"));
    
    
    
  6. TopicStarter Overlay
    AK79
    Offline

    AK79

    Регистрация:
    23 дек 2007
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    Не получилось ....
    {Документ.Заказ.Форма.ФормаДокумента(92)}: Обращение к процедуре объекта как к функции (УстановитьДействие)
    ЭлементыФормы.ТабличноеПоле1.Колонки.Найти("Колво").РежимРедактирования = ЭлементыФормы.ТабличноеПоле1.Колонки.Найти("Колво").ЭлементУправления.УстановитьДействие("ПриИзменении",Новый Действие("ПриИзмененииКолонкиТабличногоПоля"));
  7. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Странный пример привел MetalMessia - это процедура - и не может ничего вернуть, собственно, о чем и ошибка.

    напиши просто:
    Код:
    ЭлементыФормы.ТП.Колонки.Найти("Количество").ЭлементУправления.УстановитьДействие("ПриИзменении",
    Новый Действие("Обработчик"));
    
    
    
  8. TopicStarter Overlay
    AK79
    Offline

    AK79

    Регистрация:
    23 дек 2007
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    1С переварила, но обработчик не ловик событие.....
    Процедура ПриИзмененииКолонкиТабличногоПоля(Элемент)
    т=1;

    КонецПроцедуры
  9. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Покажи код.
    У меня вот такая строка:
    Код:
    ЭлементыФормы.Товары.Колонки.Номенклатура.ЭлементУправления.УстановитьДействие(
    "ПриИзменении", Новый Действие("МоеДействие"));
    
    
    заработала без проблем.
  10. TopicStarter Overlay
    AK79
    Offline

    AK79

    Регистрация:
    23 дек 2007
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    Код:
    Процедура СоздатьСтраницу(НазваниеСтраницы);
    ТекПанель = ЭлементыФормы.Панель1;
    СтрИмя = УдалитьЗапрешенныеСимволы(НазваниеСтраницы);
    
    Если ТекПанель.Страницы[0].Заголовок = ""  тогда
    ТекПанель.Страницы[0].Заголовок = НазваниеСтраницы;
    НовТаб = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"), СтрИмя,Истина,ТекПанель);
    НовТаб.Верх = 30;
    НовТаб.Лево = 6;
    НовТаб.Ширина = ТекПанель.Ширина - 14;
    НовТаб.Высота = ТекПанель.Высота - 56;
    НовТаб.УстановитьПривязку(ГраницаЭлементаУправления.Верх,        
    ТекПанель,        ГраницаЭлементаУправления.Верх);
    НовТаб.УстановитьПривязку(ГраницаЭлементаУправления.Низ,        
    ТекПанель,        ГраницаЭлементаУправления.Низ);
    НовТаб.УстановитьПривязку(ГраницаЭлементаУправления.Право,        
    ТекПанель,        ГраницаЭлементаУправления.Право);
    
    НовТаб.Колонки.Добавить("N");
    НовТаб.Колонки.Добавить("Номенклатура");
    НовТаб.Колонки.Добавить("Колво");
    НовТаб.Колонки.Добавить("Цена");
    НовТаб.Колонки.Добавить("Сумма");
    НовТаб.Подвал = Истина;
    НовТаб.ИзменятьНастройкуКолонок = Ложь; 
    НовТаб.ЧередованиеЦветовСтрок = Истина;
    
    ЭлементыФормы.БОНДЕЛИС.Колонки.Колво.ЭлементУправления.УстановитьДействие(
    "ПриИзменении",Новый Действие("ПриИзмененииКолонкиТабличногоПоля"));
    //НовТаб.Колонки.Найти("Колво").РежимРедактирования = 
    //                              НовТаб.Колонки.Найти("Колво").ЭлементУправления.УстановитьДействие(
    //                              "ПриИзменении",Новый Действие("ПриИзмененииКолонкиТабличногоПоля"));
    
    //НовоеДействие = Новый Действие(СтрИмя + "Колво" + "ПриИзменении");
    //ЭтаФорма.ЭлементыФормы[НовТаб].УстановитьДействие("ПриИзменении", НовоеДействие);
    //Элементыформы.Корейскиесалаты.Колонки[2].ЭлементУправления.УстановитьДействие(
    "ПриИзменении", НовоеДействие);
    Иначе
    ТекСтр = ТекПанель.Страницы.Добавить();
    ТекСтр.Заголовок = НазваниеСтраницы;
    ТекПанель.ТекущаяСтраница = ТекСтр;
    
    НовТаб = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"), СтрИмя,Истина,ТекПанель);
    НовТаб.Верх = 30;
    НовТаб.Лево = 6;
    НовТаб.Ширина = ТекПанель.Ширина - 14;
    НовТаб.Высота = ТекПанель.Высота - 56;
    НовТаб.УстановитьПривязку(ГраницаЭлементаУправления.Верх,        
    ТекПанель,        ГраницаЭлементаУправления.Верх);
    НовТаб.УстановитьПривязку(ГраницаЭлементаУправления.Низ,        
    ТекПанель,        ГраницаЭлементаУправления.Низ);
    НовТаб.УстановитьПривязку(ГраницаЭлементаУправления.Право,        
    ТекПанель,        ГраницаЭлементаУправления.Право);
    
    НовТаб.Колонки.Добавить("N");
    НовТаб.Колонки.Добавить("Номенклатура");
    НовТаб.Колонки.Добавить("Колво");
    НовТаб.Колонки.Добавить("Цена");
    НовТаб.Колонки.Добавить("Сумма");
    НовТаб.Подвал = Истина;
    НовТаб.ИзменятьНастройкуКолонок = Ложь;
    НовТаб.ЧередованиеЦветовСтрок = Истина;
    
    
    КонецЕсли;
    КонецПроцедуры   
    
    Процедура ПриИзмененииКолонкиТабличногоПоля(Элемент)
    т=1;
    КонецПроцедуры
    
    
    
    
    
  11. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Выстави тип поля, судя по всему из-за этого...

Поделиться этой страницей