Имя: Пароль:
1C
1С v8
ДеревоЗначений как реквизит формы или как реквизит объекта?
0 zelenprog
 
23.06.23
09:17
Здравствуйте!

Для пакетного изменения контрагентов делаем обработку.
Она читает из базы по некоторому условию список контрагентов, отображает их в дереве на форме.
Затем пользователь выбирает (отмечает) контрагента (одного или несколько). И нажимает кнопку, которая меняет у выбранных контрагентов нужную информацию (записывает эту информацию по выбранным контрагентам в базу).
Затем на форме информация в списке (в дереве) контрагентов должна также обновиться.

Подскажите, где лучше разместить ДеревоЗначенийКонтрагентов?
Как реквизит формы или как реквизит объекта обработки?
В чем разница этих двух вариантов с точки зрения дальнейшей обработки этого дерева значений?

Объясните пожалуйста.
1 НафНаф
 
23.06.23
09:31
(0) Реквизиты объекта доступны как в модуле самого объекта, так и формах объекта. Реквизиты формы только в форме. В другие места их надо передавать. Логично?
2 zelenprog
 
23.06.23
09:38
(1) Ага, это я понял.
А если в обработке будет только одна форма?
Тогда получается что нету никакой разницы сделать ли дерево реквизитом формы или реквизитом объекта. Правильно я понимаю?
3 Donkey_hot
 
23.06.23
09:40
(0) Если планируется только интерактивный режим, то большой разницы нет. Если же планируете реализовать програмнный интерфейс (например, для запуска в фоновом режиме по расписанию) то логичнее создать реквизит объедка
4 zelenprog
 
23.06.23
09:56
(3) Понял, спасибо.
5 zelenprog
 
23.06.23
10:07
А подскажите плиз еще вот в этой теме, про частичное обновление (пере-заполнение) элемента-таблицы формы, отображающей реквизит ДеревоЗначений:
6 zelenprog
 
23.06.23
10:07
7 zelenprog
 
23.06.23
10:18
(1), (3)
А какие методы надо использовать для реквизита объекта обработки в процедуре &НаСервере вместо методов "РеквизитФормыВЗначение" и "ЗначениеВРеквизитФормы"?
8 Donkey_hot
 
23.06.23
10:44
(7) Как раз чтобы перейти к работе с объекту (его реквизитам и экспортным методам модуля), вам и необходимо преобразовать данные формы в реальный тип ОбработкаОбъект (РеквизитФормыВЗначение). Обратное преобразование нужно, если объект был модифицирован (к примеру, была перезаполнена ваша пресловутая таблица контрагентов).
9 zelenprog
 
23.06.23
10:51
(8) В общем это я понимаю.

Но у меня более конкретный вопрос - как обращаться к реквизитам объекта-обработки из процедур &НаСервере?

Когда у меня в обработке был реквизит формы "ДЗКонтрагенты", то метод "лДЗ = РеквизитФормыВЗначение("ДЗКонтрагенты")" работал.
А когда я вместо реквизита формы "ДЗКонтрагенты" сделал реквизит объекта "ДЗКонтрагенты", то этот метод перестал работать. Выдает ошибку:
"Недопустимое значение параметра (параметр номер '1')".
10 zelenprog
 
23.06.23
11:40
Такой вопрос.
В окне обработки в реквизитах добавлен реквизит "ДЗКонтрагенты", тип значения - "ДеревоЗначений", в окне "Свойства" есть возможность изменения его свойств.
Почему в окне формы этот реквизит отображается с типом "(ДеревоЗначений)" и его свойства недоступны?
11 zelenprog
 
23.06.23
12:07
(8)
Получается, что к самому реквизиту обработки "ДЗКонтрагенты" с типом "ДеревоЗначений" вообще ниоткуда нельзя обратиться и работать с ним?

Только либо через "прослойку" РеквизитФормыВЗначение, либо через обращение к "представлению" ДанныеФормыДерево.

Верно я понимаю?
12 Donkey_hot
 
23.06.23
12:46
(11) Из модуля объекта можно обратиться. Но чтобы дергать методы модуля объекта, необходим, собственно, объект. Это абсолютно стандартная практика.
13 zelenprog
 
23.06.23
14:34
(12) Ну при открытии обработки Объект всегда создается.
Правильно?