|
Проблема сохранения Таблицы значений в ХранилищеЗначений | ☑ | ||
---|---|---|---|---|
0
Aston86
01.12.12
✎
19:01
|
Доброго всем времени суток.
Подскажите кто знает как нормально сохранить таблицузначений в реквизит объекта типа хранилище значений. Вот код. &НаСервере Процедура ЗаписатьТаблицуЭтажаВРеквизит() СериализуемыйОбъект = Новый ТаблицаЗначений; СериализуемыйОбъект = ЭтаФорма.ТЗРасшифровкаЭтажа.Выгрузить(); ДокОбъект = РеквизитФормыВЗначение("Объект",); ДокОбъект.РасшифровкаЭтажей = Новый ХранилищеЗначения(СериализуемыйОбъект); ДокОбъект.Записать(РежимЗаписиДокумента.Запись); КонецПроцедуры &НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) Если ЕстьРеквизитОбъектаКлиент("ТЗРасшифровкаЭтажа", Элементы) Тогда ЗаписатьТаблицуЭтажаВРеквизит(); КонецЕсли; КонецПроцедуры А проблема в следующем. Если в процедуре ЗаписатьТаблицуЭтажаВРеквизит() убрать строку ДокОбъект.Записать(РежимЗаписиДокумента.Запись);, то При записи на сервере В объекте, в реквезите РасшифровкаЭтажей уже ничего нет тое = Неопределено. Или я чего то не знаю или после окончания процедуры происходит обновление данных как то, а если эту строку оставить, то он сохраняет один документ с заполненным реквизитом и тут же точно такой же с незаполненным. Только не советуйте писать При записи Отказ = Истина. Сохраняет документ и документ остается открытым. Кагда пытаешься выйти, он пишет - Документ был изменен - сохранить изменения - ну дальше по сценарию :) Подскажите кто знает как бороться с этой бедой :) |
|||
1
H A D G E H O G s
01.12.12
✎
19:14
|
ПередЗаписьюНаСервере()
ТекущийОбъект.РасшифровкаЭтажей = Новый ХранилищеЗначения(СериализуемыйОбъект); |
|||
2
H A D G E H O G s
01.12.12
✎
19:15
|
Но не всегда суко, работает!
v8: Не записывается ХранилищеЗначений НабораЗаписей в УФ |
|||
3
Нуф-Нуф
01.12.12
✎
19:53
|
может дело в том что набор - это не объектный тип?
|
|||
4
kosts
01.12.12
✎
20:40
|
(0)
СериализуемыйОбъект = Новый ТаблицаЗначений; - лишнее Не понадобятся ли потом данные по расшифровке этажей в отчетах и запросах? |
|||
5
Aston86
02.12.12
✎
00:42
|
Я знаю что лишнее но я уже с примера из инэта писал всё равно какая то лажа я незнаю как записать динамичискую ТЗ в хранилище значений в управляемом приложении. Хотя это решало бы много задач (.
|
|||
6
kosts
02.12.12
✎
13:26
|
(5) Попробуй ЗначениеВСтрокуВнутр()
|
|||
7
oleg_km
02.12.12
✎
21:46
|
По-моему в 8.2 стало глючить
|
|||
8
Aston86
03.12.12
✎
00:59
|
kosts ЗначениеВСтрокуВнутр()
Эта функция насколько я понял и смотрел сохраняет уникальный идентификатор объекта, а если объект временный то до фени всё это. Да глючит на сколько я понял именно в управляемом приложении. Пришлось с типовой код сдерать и переделывать под мои нужды, но если честно код большой и переписывать много, вроде задача на словах не сложная а в коде переписывать много. Глюк в 8.2 происходит как я понял по причине того что происходит какое то действие которое очишает хранилище до записи, а что это за действие хз. |
|||
9
H A D G E H O G s
03.12.12
✎
01:01
|
(8) В
ПередЗаписьюНаСервере() записываешь? |
|||
10
kosts
03.12.12
✎
06:52
|
(8) Если очищается ХЗ, то попробуй записать в строку неограниченной длины.
И все же попробуй писать как есть в табличную часть документа, зачем эти преобразования туды-сюды... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |