Как в УФ заполнить значение реквизита таб части с типом хранилище значения?

1. paxan 20.02.21 12:03 Сейчас в теме
Здравствуйте. Есть таб. часть справочника, один из реквизитов "ДанныеСпискаОбъкта" которого имеет тип ХранилищеЗначений. В этом реквизите будет храниться список значений (плохо это или хорошо это не обсуждается).
Т.к. хранилище значений не может быть просто так показано в уф. поэтому добавил в колонки реквизитов уф дополнительную колонку ДанныеСписка (в которой собственно и редактируется этот список), теперь стоит задача как этот отредактированный список перенести в реквизит (уже родной) самой таб. части "ДанныеСпискаОбъкта". Может кто делал что-то подобное?
Проблема еще в том, что в контексте формы даже самом название реквизита ДанныеСпискаОбъкта для строки таб. части не видно.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SlavaKron 20.02.21 12:09 Сейчас в теме
(1)
отредактированный список перенести в реквизит (уже родной) самой таб. части "ДанныеСпискаОбъкта"

В событии формы ПередЗаписьюНаСервере заполняйте ХЗ в переменной ТекущийОбъект.
3. paxan 20.02.21 12:26 Сейчас в теме
(2)Спасибо, вот как раз это сейчас и пробую)
4. paxan 20.02.21 12:40 Сейчас в теме
(2)Есть один нюанс только, после записи на сервере очищаются эти искусственно добавленные реквизиты на форму реквизиты (с типом список значений). Их приходится восстанавливать в процедуре ПослеЗаписиНаСервере.
Предполагал что по идее должно срабатывать после записи на форме событие ПриЧтенииНаСервере, раз объект как-то перечитывается, но не срабатывает.
5. SlavaKron 20.02.21 12:48 Сейчас в теме
(4)
на сервере очищаются эти искусственно добавленные реквизиты на форму
В таблице формы очищаются? Не должны. Обходите таблицу формы и построчно сохраняете ДанныеСписка в ДанныеСпискаОбъкта. Как-то так:
Для Каждого СтрокаТаблицы Из Объект.ТабличнаяЧасть Цикл
	СтрокаТЧ = ТекущийОбъект.ТабличнаяЧасть[СтрокаТаблицы.НомерСтроки - 1];
	СтрокаТЧ.ДанныеСпискаОбъкта = Новый ХранилищеЗначения(СтрокаТаблицы.ДанныеСписка);
КонецЦикла;
6. paxan 20.02.21 12:53 Сейчас в теме
(5)Очищается, очищается. сто процентов. Приходиться в после записи на сервере восстанавливать их получая через ссылку текущего объекта записанные в бд данные списка. Главное сейчас все работает, спасибо!
7. SlavaKron 20.02.21 13:06 Сейчас в теме
(6)
Приходиться в после записи на сервере восстанавливать их получая через ссылку текущего объекта записанные в бд данные списка.
Проще тогда вызвать метод Прочитать() в ПослеЗаписиНаСервере, который в свою очередь вызовет ПриЧтенииНаСервере.
8. user633533_encantado 12 20.02.21 13:07 Сейчас в теме
(6) Ну так и должно быть. Реквизит формы нигде не хранится после закрытия формы. При создании на сервере его нужно заполнять из реквизитов объекта.
9. SlavaKron 20.02.21 13:08 Сейчас в теме
(8) Как ни странно, виртуальная колонка очищается и без закрытия формы, после записи объекта.
10. paxan 20.02.21 13:08 Сейчас в теме
(8)да дело не в при закрытии, понятно что нигде не хранится. Очищается даже без закрытия, просто при записи.
11. user633533_encantado 12 20.02.21 13:09 Сейчас в теме
(10) Не должен если не происходит повторное считывание объекта после записи в форме.
12. SlavaKron 20.02.21 13:24 Сейчас в теме
Впрочем, это логично. После записи повторного считывания объекта из БД не происходит, но данные формы перечитываются из прикладного объекта.
13. user633533_encantado 12 20.02.21 13:37 Сейчас в теме
(12) Не уверен. Типовые документы повторно не перечитываются, когда на форме их пишешь. Хотя там дофига реквизитов формы.
14. paxan 20.02.21 14:26 Сейчас в теме
(13) Фиг знает, вроде костылей великих нет, все прозрачно, но это проиходит. Будет время внимательнее гляну что происходит.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот