|
Запись и использование Хранилища значений и временного хранилища | ☑ | ||
---|---|---|---|---|
0
alekosansey
05.06.17
✎
12:12
|
Добрый день. Подскажите в чем может быть дело. Записываю Таблицу значений в ячейку таблицы типа Хранилище Значений .
ТЗ = ПолучитьИзВременногоХранилища(Адрес); ТЗЗалоговоеИмущество[НомерСтроки].СписокКорректировок = Новый ХранилищеЗначения(ТЗ,Новый СжатиеДанных(9)); Затем в последствие хочу использовать это значение в другой форме получаю адрес и передаю его в форму ДокументОбъект = РеквизитФормыВЗначение("Объект"); ТЗЗалоговоеИмущество = ДокументОбъект.ЗалоговоеИмущество; УникальныйИдентификатор1 = Новый УникальныйИдентификатор; Адрес = ПоместитьВоВременноеХранилище(ТЗЗалоговоеИмущество[НомерСтроки].СписокКорректировок,УникальныйИдентификатор1); ЗначениеВРеквизитФормы(ДокументОбъект,"Объект"); возврат Адрес; Вопрос такой при получении с хранилища он ничего не получает. Пишет тип неопределено в чем может быть проблема?? |
|||
1
alekosansey
05.06.17
✎
12:14
|
ТЗЗалоговоеИмущество[НомерСтроки].СписокКорректировок возвращает неопределено
|
|||
2
alekosansey
05.06.17
✎
12:40
|
up
|
|||
3
lodger
05.06.17
✎
12:55
|
есть мнение, что где-то тут:
ДокументОбъект = РеквизитФормыВЗначение("Объект"); ТЗЗалоговоеИмущество = ДокументОбъект.ЗалоговоеИмущество; УникальныйИдентификатор1 = Новый УникальныйИдентификатор; Адрес = ПоместитьВоВременноеХранилище(ТЗЗалоговоеИмущество[НомерСтроки].СписокКорректировок СписокКорректировок оказывается пустым. а если без этих танцев с РеквизитФормыВЗначение, сразу передать ЗалоговоеИмущество[НомерСтроки].СписокКорректировок ? |
|||
4
aleks_default
05.06.17
✎
12:57
|
В курсе что НомерСтроки и Идентификатор строки - это разные сущности?
|
|||
5
alekosansey
05.06.17
✎
13:16
|
Таб[0].ВесФрукта а в чем отличие ТЗЗалоговоеИмущество[0].СписокКорректировок?
|
|||
6
alekosansey
05.06.17
✎
13:18
|
(3) Без реквизитаформывзначение получаю не всю таблицу так как тип хранилищеЗначений не виден на клиенте.
|
|||
7
alekosansey
05.06.17
✎
13:19
|
верх
|
|||
8
cw014
05.06.17
✎
13:39
|
(6) А на сервере это сделать - религия не позволяет?
|
|||
9
alekosansey
05.06.17
✎
13:43
|
Это на сервере и делается
|
|||
10
alekosansey
05.06.17
✎
13:44
|
&НаСервере
Функция ЗаписатьДанныеКорректировкиНаСервере(СтруктураДанных) ДокументОбъект = РеквизитФормыВЗначение("Объект"); ТЗЗалоговоеИмущество = ДокументОбъект.ЗалоговоеИмущество; НомерСтроки = СтруктураДанных.НомерСтроки; Адрес = СтруктураДанных.Адрес; Если ЗначениеЗаполнено(Адрес) Тогда ТЗ = ПолучитьИзВременногоХранилища(Адрес); ТЗЗалоговоеИмущество[НомерСтроки].СписокКорректировок = Новый ХранилищеЗначения(ТЗ,Новый СжатиеДанных(9)); Иначе ТЗЗалоговоеИмущество[НомерСтроки].СписокКорректировок = Новый ХранилищеЗначения(Неопределено); КонецЕсли; ЗначениеВРеквизитФормы(ДокументОбъект,"Объект"); КонецФункции |
|||
11
alekosansey
05.06.17
✎
13:44
|
&НаСервере
Функция ПолучитьАдресВременногоХранилищаСпискаКорректировокНаСервере(НомерСтроки) ДокументОбъект = РеквизитФормыВЗначение("Объект"); ТЗЗалоговоеИмущество = ДокументОбъект.ЗалоговоеИмущество; УникальныйИдентификатор1 = Новый УникальныйИдентификатор; Адрес = ПоместитьВоВременноеХранилище(ТЗЗалоговоеИмущество[НомерСтроки].СписокКорректировок.Получить(),УникальныйИдентификатор1); ЗначениеВРеквизитФормы(ДокументОбъект,"Объект"); возврат Адрес; КонецФункции |
|||
12
cw014
05.06.17
✎
14:05
|
(6) Без реквизитаформывзначение получаю не всю таблицу так как тип хранилищеЗначений не виден на клиенте.
А зачем ты на клиенте это делаешь? |
|||
13
cw014
05.06.17
✎
14:05
|
(6) Не преобразовывай в объект то
|
|||
14
alekosansey
05.06.17
✎
14:14
|
&НаСервере
Функция ПолучитьАдресВременногоХранилищаСпискаКорректировокНаСервере(НомерСтроки) //ДокументОбъект = РеквизитФормыВЗначение("Объект"); ТЗЗалоговоеИмущество = Объект.ЗалоговоеИмущество; //Документ УникальныйИдентификатор1 = Новый УникальныйИдентификатор; Адрес = ПоместитьВоВременноеХранилище(ТЗЗалоговоеИмущество[НомерСтроки].СписокКорректировок.Получить(),УникальныйИдентификатор1); //ЗначениеВРеквизитФормы(ДокументОбъект,"Объект"); возврат Адрес; КонецФункции Если так то необнаружено Поле "Список корректировок" |
|||
15
h-sp
05.06.17
✎
14:48
|
всё-таки с НомерСтроки не до конца понятно. Что за НомерСтроки?
|
|||
16
cw014
05.06.17
✎
14:54
|
Давай разберемся по порядку. У тебя документ. У документа табличная часть. В табличной части есть колонка "СписокКорректировок", так?
|
|||
17
alekosansey
07.06.17
✎
08:48
|
верх
|
|||
18
alekosansey
07.06.17
✎
08:50
|
(16) Да верно. "СписокКорректировок" - тип хранилищеЗначений. Туда я помещаю из вспомогательной формы таблицу
|
|||
19
cw014
07.06.17
✎
08:52
|
(18) Если в контексте формы все делаешь, используй ПоместитьВоВременноеХранилище(ТЗЗалоговоеИмущество[НомерСтроки].СписокКорректировок.Получить(),ЭтаФорма);
|
|||
20
alekosansey
07.06.17
✎
09:23
|
Прикол в том что запись ТЗЗалоговоеИмущество[НомерСтроки].СписокКорректировок.Получить() дает уже неопределено.
|
|||
21
cw014
07.06.17
✎
10:11
|
(20) Значит не та строка
|
|||
22
alekosansey
07.06.17
✎
11:49
|
верх
|
|||
23
alekosansey
07.06.17
✎
11:49
|
Там одна строка больше нет
|
|||
24
alekosansey
07.06.17
✎
11:52
|
v8: Хранилище значения - это тема сильно похожая, там обошлись просто временным хранилищем. А мне все таки записать в таблицу. Дело в том что при записи он показывает что записал а уже в другом методе он уже не видит там значения
|
|||
25
lodger
07.06.17
✎
12:15
|
значит плохо записал. чтобы не ванговать, показывайте место где происходит запись и где(сервер\клиент).
|
|||
26
alekosansey
07.06.17
✎
12:21
|
//Alx 01.06.17 Передаем параметры для открытия формы "ФормаКорректировок" и после закрытия передаем для записи значений
//ЗалоговоеИмущество - имущество что выбрано для корректировки //НомерСтроки - Номер строки Таблицы "ЗалоговоеИмущество" что выбрано было //АдресВременногоХранилища - Временное хранилище где хранится таблица предыдущих корректировок &НаКлиенте Процедура ЗалоговоеИмуществоТекстКорректировокНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтрокаТЗ = Элементы.ЗалоговоеИмущество.ТекущиеДанные; АдресВременногоХранилища = ПолучитьАдресВременногоХранилищаСпискаКорректировокНаСервере(СтрокаТЗ.НомерСтроки-1); ПараметрыОткрытия = Новый Структура("ЗалоговоеИмущество,НомерСтроки,АдресВременногоХранилища",СтрокаТЗ.ЗалоговоеИмущество,СтрокаТЗ.НомерСтроки-1,АдресВременногоХранилища); форма = ПолучитьФорму("Документ.КорректировкаЗалоговогоИмущества.Форма.ФормаКорректировок",ПараметрыОткрытия,ЭтаФорма); ПараметрыВозврата = Форма.ОткрытьМодально(); Если ПараметрыВозврата <> Неопределено Тогда ЗаписатьДанныеКорректировкиНаСервере(ПараметрыВозврата); КонецЕсли; КонецПроцедуры //Alx 02.06.17 Записываем во временное хранилище данных СписокКорректировок &НаСервере Функция ПолучитьАдресВременногоХранилищаСпискаКорректировокНаСервере(НомерСтроки) ДокументОбъект = РеквизитФормыВЗначение("Объект"); ТЗЗалоговоеИмущество = ДокументОбъект.ЗалоговоеИмущество; УникальныйИдентификатор1 = Новый УникальныйИдентификатор; Адрес = ПоместитьВоВременноеХранилище(ТЗЗалоговоеИмущество[НомерСтроки].СписокКорректировок.Получить(),УникальныйИдентификатор1); возврат Адрес; КонецФункции //Alx 02.06.17 Запись или удаление Таблицы Корректировки в ячейки колонки "СписокКорректировок" Таблицы "ЗалоговоеИмущество" // также установки удаление значения реквизита "ТекстКорректировок" &НаСервере Функция ЗаписатьДанныеКорректировкиНаСервере(СтруктураДанных) ДокументОбъект = РеквизитФормыВЗначение("Объект"); ТЗЗалоговоеИмущество = ДокументОбъект.ЗалоговоеИмущество; НомерСтроки = СтруктураДанных.НомерСтроки; Адрес = СтруктураДанных.Адрес; Если ЗначениеЗаполнено(Адрес) Тогда ТЗ = ПолучитьИзВременногоХранилища(Адрес); ТЗЗалоговоеИмущество[НомерСтроки].СписокКорректировок = Новый ХранилищеЗначения(ТЗ,Новый СжатиеДанных(9)); Иначе ТЗЗалоговоеИмущество[НомерСтроки].СписокКорректировок = Новый ХранилищеЗначения(Неопределено); КонецЕсли; ЗначениеВРеквизитФормы(ДокументОбъект,"Объект"); КонецФункции |
|||
27
lodger
07.06.17
✎
15:03
|
как то тут все не так.
делайте заново. а) никаких модальных вызовов в УФ. б) внимательно читать что написано в СП про ПоместитьВоВременноеХранилище и адрес во втором параметре. в) так и не показали где подготавливаются и как передаются данные к помещению в .СписокКорректировок |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |