Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 18:42

1С 8.2 При изменении ячейки табличного поля обновить данные в регистре сведений

Автор drugoi_mir, 30 мар 2012, 12:24

0 Пользователей и 1 гость просматривают эту тему.

drugoi_mir

Вообщем имеется такакая задача.Есть ТЗ в которой хранится информация о выбранных документах(количество выводимых реквизитов для них  можно изменять) и для выбранных документов выводятся значения категорий и свойств.Заранее мы не знаем сколько свойств и категорий  есть у этих документов.Колонки создаются программно.Есть ТП в ЭлементеФормы, данные в которое подставляются из ТЗ. Соответственно в ЭлементахФормы.ТП колонки тоже создаются программно,причем заранее сколько их создатся,мы не знаем.

Выбор значений в ТП для категорий с свойств уже реализован.


Нужно,  чтобы при измении значений в ТП категорий и свойств(При редактировании соответствующей ячейки) данные изменялись соответственно в регистре сведений.

Вопрос: В какой процедуре получить информацию о том какая конкретно ячейка ТП меняется?(т.е. чтобы точно знать что вот такая то ячейка изменилась и ее значение стало вот таким).Как записать данные потом уже в регистр сведений вроде разобрался.

cska-fanat-kz

Изменение конкретной КОЛОНКИ - событие ПриИзменении.
А узнать значение конкретной ячейке в колонке - через ТекущиеДанные.

ЭлементыФормы.ТП.ТекущиеДанные


Тока это плохой подход...
Лучше дать пользователю поизменять все что он хочет, а потом все сразу по кнопке например "Выполнить" записать в регистр...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

drugoi_mir

Цитата: cska-fanat-kz от 30 мар 2012, 13:13
Изменение конкретной КОЛОНКИ - событие ПриИзменении.
А узнать значение конкретной ячейке в колонке - через ТекущиеДанные.

ЭлементыФормы.ТП.ТекущиеДанные


Тока это плохой подход...
Лучше дать пользователю поизменять все что он хочет, а потом все сразу по кнопке например "Выполнить" записать в регистр...


Изначально я так же предлагал сделать,но такой вариант почему-то не устроил. В текущих данных будут содержаться значения строки которую мы редактируем в данный момент.(Событие:ПриОкончанииРедактирования (Это событие ТП)). Еще раз: я добавляю колонки программно в ТП,точное их количество я изначально не знаю,все зависит от того сколько свойств и категорий будет у выбранного количества документов.

Недостаток ТекущихДанных для  меня сводится к следующему:В них указывается значения для конкретной колонки данной строки.А мне нужно анализировать кроме этого еще и ее имя,чтобы определить свойство это или категория,сравнивая со СпискомСвойств и СпискомКатегорий.Для того чтобы знать в какой регистр записывать(Свойств или Категорий) и какое это свойство\категория конкретно.

drugoi_mir

Т.е. процедуру ПриИзменении для Колонки я не знаю как вызвать(При добавлении колонки программно),я не знаю вначале как она будет называться, к примеру и вообще есть ли предопределенные процедуры для таких колонок.

cska-fanat-kz

Может плохо убедил? Все лишь надо сказать что будет работать достаточно медленно ;)

Колонки добавляются программно. Ничего не мешает программно добавлять и обработчик события ПриИзменении.

У события есть параметр Элемент - из него можно узнать имя колонки
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

cska-fanat-kz

ТаблицаФормы (FormTable)
УстановитьДействие (SetAction)
Синтаксис:

УстановитьДействие(<ИмяСобытия>, <Действие>)
Параметры:

<ИмяСобытия> (обязательный)

Тип: Строка.
Имя события, для которого устанавливается новое действие.
<Действие> (обязательный)

Тип: Строка.
Указывается имя обработчика.
Описание:

Устанавливает обработчик события.

Доступность:

Сервер.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

drugoi_mir

Все спасибо,разобрался.В итоге сделал через:

событие табличного поля ПриОкончанииРедактирования().
ТекущаяСтрока = ЭлементыФормы.ТабличнаяЧасть1.ТекущаяСтрока;
ТекущаяКолонка = ЭлементыФормы.ТабличнаяЧасть1.ТекущаяКолонка;

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск