Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как обновить реквизиты объекта сразу при изменении данных в ТЧ на УФ?

Как обновить реквизиты объекта сразу при изменении данных в ТЧ на УФ?
Я
   Беата Смит
 
06.04.19 - 16:29
Есть документ. У него есть табличная часть ТЧ1 и реквизит Реквизит1, есть УФ, на которой есть соответствующие им элементы Таблица1 и Поле1. Все поля таблицы на форме содержат списки значений. Поле1 содержит строку, составляемую программно из содержимого ячеек таблицы.
К каждой колонке в Таблице1 привязаны процедуры класса ОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка), выполняемые НА КЛИЕНТЕ, еще на таблице висят процедуры ПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование), ПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр) и ПослеУдаления(Элемент)
тоже, соответственно, клиентские.
И есть моя процедура ЗаписьСтрокТаблицыВПоле()

Для Каждого Строчка из Объект.ТЧ1 Цикл
   Стр = Строчка.Колонка1 + Строчка.Колонка2 + ... + Строчка.КолонкаН;
КонецЦикла;
Объект.Реквизит1 = Стр;

Короче, я вызываю ее в процедурах ОбработкаВыбора(), чтобы при любом изменении содержимого ячеек в Таблице1 значение Поле1 перезаписывалось. Но ничего в Поле1 не меняется. Да, я в курсе, что данные передаются по цепочке клиент-сервер-бд, и что когда я вызываю ЗаписьСтрокТаблицыВПоле() в конце процедуры ОбработкаВыбора(), данные в объекте все еще хранятся те, что были ДО того, как пользователь выбрал новые значения. Но я бьюсь уже чертову кучу времени не могу понять, как мне тогда быть? Как мне обновить реквизиты объекта сразу при изменении данных в тч на форме?
 
 
   RomanYS
 
1 - 06.04.19 - 16:57
(0)
1. Ваш код собирает данные только из последней строки ТЧ
2. выбор для подобных целей события ОбработкаВыбора() не очевиден (и вероятно не правилен)
3. включите отладчик
   RomanYS
 
2 - 06.04.19 - 17:00
ТаблицаФормы (FormTable)
ОбработкаВыбора (ChoiceProcessing)
Синтаксис:

ОбработкаВыбора(<ВыбранноеЗначение>, <СтандартнаяОбработка>)
......
Описание:

Вызывается после выполнения выбора из другой формы.
   Беата Смит
 
3 - 06.04.19 - 17:10
(1) насчет пункта 1: я просто опечаталась, пока писала сюда, там Стр = Стр + .... вот эти все колонки.
2. А как тогда мне проверять выбор, сделанный в поле ТЧ? Мне нужно что-то типа обработки выбора, потому что там я не даю пользователю выбрать неверные данные.
   RomanYS
 
4 - 06.04.19 - 17:29
(3) >>Мне нужно что-то типа обработки выбора, потому что там я не даю пользователю выбрать неверные данные.
Это другая задача, с (0) не связанная.

Судя по описанию в (2) ОбработкаВыбора не вызывается при выборе из списка, а только из другой(!) формы.

У каждой колонки есть обработчик есть ПриИзменении, у таблицы формы есть обработчики завершения редактирования строки

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует