|
Как обновить реквизиты объекта сразу при изменении данных в ТЧ на УФ? | ☑ | ||
|---|---|---|---|---|
|
0
Беата Смит
06.04.19
✎
16:29
|
Есть документ. У него есть табличная часть ТЧ1 и реквизит Реквизит1, есть УФ, на которой есть соответствующие им элементы Таблица1 и Поле1. Все поля таблицы на форме содержат списки значений. Поле1 содержит строку, составляемую программно из содержимого ячеек таблицы.
К каждой колонке в Таблице1 привязаны процедуры класса ОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка), выполняемые НА КЛИЕНТЕ, еще на таблице висят процедуры ПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование), ПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр) и ПослеУдаления(Элемент) тоже, соответственно, клиентские. И есть моя процедура ЗаписьСтрокТаблицыВПоле() Для Каждого Строчка из Объект.ТЧ1 Цикл Стр = Строчка.Колонка1 + Строчка.Колонка2 + ... + Строчка.КолонкаН; КонецЦикла; Объект.Реквизит1 = Стр; Короче, я вызываю ее в процедурах ОбработкаВыбора(), чтобы при любом изменении содержимого ячеек в Таблице1 значение Поле1 перезаписывалось. Но ничего в Поле1 не меняется. Да, я в курсе, что данные передаются по цепочке клиент-сервер-бд, и что когда я вызываю ЗаписьСтрокТаблицыВПоле() в конце процедуры ОбработкаВыбора(), данные в объекте все еще хранятся те, что были ДО того, как пользователь выбрал новые значения. Но я бьюсь уже чертову кучу времени не могу понять, как мне тогда быть? Как мне обновить реквизиты объекта сразу при изменении данных в тч на форме? |
|||
|
1
RomanYS
06.04.19
✎
16:57
|
(0)
1. Ваш код собирает данные только из последней строки ТЧ 2. выбор для подобных целей события ОбработкаВыбора() не очевиден (и вероятно не правилен) 3. включите отладчик |
|||
|
2
RomanYS
06.04.19
✎
17:00
|
ТаблицаФормы (FormTable)
ОбработкаВыбора (ChoiceProcessing) Синтаксис: ОбработкаВыбора(<ВыбранноеЗначение>, <СтандартнаяОбработка>) ...... Описание: Вызывается после выполнения выбора из другой формы. |
|||
|
3
Беата Смит
06.04.19
✎
17:10
|
(1) насчет пункта 1: я просто опечаталась, пока писала сюда, там Стр = Стр + .... вот эти все колонки.
2. А как тогда мне проверять выбор, сделанный в поле ТЧ? Мне нужно что-то типа обработки выбора, потому что там я не даю пользователю выбрать неверные данные. |
|||
|
4
RomanYS
06.04.19
✎
17:29
|
(3) >>Мне нужно что-то типа обработки выбора, потому что там я не даю пользователю выбрать неверные данные.
Это другая задача, с (0) не связанная. Судя по описанию в (2) ОбработкаВыбора не вызывается при выборе из списка, а только из другой(!) формы. У каждой колонки есть обработчик есть ПриИзменении, у таблицы формы есть обработчики завершения редактирования строки |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |