В управляемой форме я, в принципе, понимаю как, например цены последние, что тут надо поменять, что бы в обычной форме работало?

```1c
    Процедура ПереченьНоменклатурыНоменклатураПриИзменении(Элемент)
    // Получить текущую строку табличной части.
    СтрокаТабличнойЧасти = Элементы.ПереченьНоменклатуры.ТекущиеДанные;
    //Установим цену.
    СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.РозничнаяЦена(ДокументОбъект.Дата, СтрокаТабличнойЧасти.Номенклатура);
    КонецПроцедуры

    Функция РозничнаяЦена(АктуальнаяДата, ЭлементНоменклатуры) Экспорт
    // Создать вспомогательный объект "Отбор".
    Отбор = Новый Структура("Номенклатура", ЭлементНоменклатуры);
    // Получить актуальные значения ресурсов регистра.
    ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата, Отбор);
    Возврат ЗначенияРесурсов.Цена;
    КонецФункции
```
---
потому что это не имена процедур такие магические и они срабатывают.
Срабатывают только процедуры, которые назначены как процедуры соответствующих обработчиков.
Закладка свойств "События". Находите нужное событие для элемента формы и назначаете нужную процедуру.
У табличного поля обычных форм нет обработчика ПриИзменении.
Попробуйте использовать обработчик ПередОкончаниемРедактирования

```1c
    Процедура ПереченьНоменклатурыПередОкончаниемРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования, Отказ)
    ТекДанные = Элемент.ТекущиеДанные;
    ТекДанныеЦена = РаботаСоСправочниками.РозничнаяЦена(ДокументОбъект.Дата, ТекДанные.Номенклатура);
    КонецПроцедуры
```
---
да примерно тоже самое, только текущую строку чуть по другому получить

 лкТекущиеДанные = ЭлементыФормы.ТаблицаРезультата.ТекущаяСтрока;
---
Процедура ПереченьНоменклатурыНоменклатураПриИзменении(Элемент) а в этой строке ничего менять не надо? Просто указал "ЭлементыФормы" и ничего не поменялось
---
Вот так не работает?

```1c
    СтрокаТабличнойЧасти = ЭлементыФормы.ПереченьНоменклатуры.ТекущиеДанные;
    //Установим цену.
    СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.РозничнаяЦена(ЭтотОбъект.Дата, СтрокаТабличнойЧасти.Номенклатура);
```
---
Так тоже не работает, посоветуйте пожалуйста, хоть где можно что то прочитать про обычные формы, ничего толкого в поисковике не нахожу, уже 3 час вожусь в этим(
---
Про отладчик что нибудь слышал? Что конкретно не получается? что не работает? может у тебя цены в регистре нет?
давай уже конкретику!
---
Слышал, ставлю точку останова на обеих строчках процедуры, ни на одной она не срабатывает. Цены в регистрах есть, с управляемыми формами этот код спокойно работает. Не могу понять толькол почему действие процедуры не запускается
---
потому что это не имена процедур такие магические и они срабатывают.
Срабатывают только процедуры, которые назначены как процедуры соответствующих обработчиков.
Закладка свойств "События". Находите нужное событие для элемента формы и назначаете нужную процедуру.
У табличного поля обычных форм нет обработчика ПриИзменении.
Попробуйте использовать обработчик ПередОкончаниемРедактирования

```1c
    Процедура ПереченьНоменклатурыПередОкончаниемРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования, Отказ)
    ТекДанные = Элемент.ТекущиеДанные;
    ТекДанныеЦена = РаботаСоСправочниками.РозничнаяЦена(ДокументОбъект.Дата, ТекДанные.Номенклатура);
    КонецПроцедуры
```
---
У табличного поля обычных форм нет обработчика ПриИзменении
У табличного поля нет, но есть у ячейки ТП
---
так выше код для табличного поля.
Да и если это табличное поле таблицы значений, в которой колонки создаются программно...
---
Дак там не очевидно что за код, параметр то один, да и имя как бы подразумевает - ПереченьНоменклатурыНоменклатураПриИзменении. Очень похоже что именно для ячейки.
А какая разница как создается таблица?
---
А какая разница как создается таблица?
Добавить на форму табличное поле с привязкой к новой таблице значений.
Найти на этом поле ячейку и назначьте ей событие.
---
Найти на этом поле ячейку и назначьте ей событие.
Если новая ТЗ то и колонок в таб. поле нет. Но это решается через ДобавитьОбработчик при связывании
---
еще вот такой вариант есть

```1c
    ТабличноеПоле.Колонки.ИмяКолонки.ЭлементУправления.УстановитьДействие("ПриИзменении", Новый Действие("ПриИзменении"))
```
---
есть и даже отрабатывает.
Но вот пример, когда события не срабатывают.
---
КоличествоПриИзменении отрабатывает, а Кол-ка1 и 2 не отрабатывают, т.к. у ТП был вызван СоздатьКолонки(). И вроде как имена колонок остались тами же... Могу предположить что обработчики назначаются указателям на объекты
---
так в том то и дело, что неоднозначная ситуация.
Т.е. добавили программно колонку в ТЗ (а это довольно частая ситуация) и все... обработчики назначенные на форме не работают.
---
Метод СоздатьКолонки() по сути удаляет уже существующие колонки, и добавляет новые. соответственно они хоть и называются одинаково, но они уже другие - у них другие указатели. Т.е. Новый Структура = Новый Структура - это ложь.
А если в существующую коллекцию добавить новую колонку - все обработчики ЭУ сохранятся.
---
Так у обычных форм же нет событий, что бы к ним прцедуру привязать
---
события есть. куда им деться.
---
Цены в регистрах есть, с управляемыми формами этот код спокойно работает. Не могу понять толькол почему действие процедуры не запускается
а процедура-обработчик связана с событием элемента управления? что то мне подсказывает что нет
Ну или не подключен предмет отладки
---
Так не же у обычных форм событий, есть какой нибудь аналог?
---
твою ж дивизию!... как это нет событий?!!
---
а все, все,нашел
---
как сделать так чтобы декорация автоматический вставлялось во всех формах