|
Передача данных с &сервера на &клиент. Не могу понять в чем дело. Помогите разобраться. |
☑ |
0
pokrishkin
22.02.22
✎
06:22
|
Помещаю таблицу во временное хранилище по уникальному идентификатору,
но при попытке выбрать строки из этой же таблицы по этому же инентификатору - ошибка доступа к файлу, весь мозг себе съел
проверял не меняется ли тип значения у УИ - нет, но система считает, что это не адрес временного хранилища.
&НаКлиенте
Процедура ПолучитьСтруктуруБД(Команда)
УИ = ЭтаФорма.УникальныйИдентификатор;
КоличествоЗаписейВТаблице = ПолучитьСтруктуруБДНаСервере(УИ);
Для НомерСтроки = 0 По КоличествоЗаписейВТаблице-1 Цикл
СтруктураСтроки = ПолучитьСтруктуруИзТаблицыНаСервере(УИ, НомерСтроки);
Сообщить(СтруктураСтроки.Получить());
Для Каждого Элемент Из СтруктураСтроки Цикл
УправлениеУведомлениями(Строка(Элемент.Значение), Строка(Элемент.Ключ));
КонецЦикла;
КонецЦикла;
КонецПроцедуры
&НаСервере
Функция ПолучитьСтруктуруБДНаСервере(УИ)
СтруктураБДНаСервере = ПолучитьСтруктуруХраненияБазыДанных(,Истина);
ПоместитьВоВременноеХранилище(СтруктураБДНаСервере,УИ);
Возврат СтруктураБДНаСервере.Количество();
КонецФункции
&НаСервере
Функция ПолучитьСтруктуруИзТаблицыНаСервере(УИ, НомерСтроки = 0)
СтруктураСтроки = Новый Структура;
ТаблицаЗначений = ПолучитьИзВременногоХранилища(УИ);
СтрокаТаблицыЗначений = ТаблицаЗначений.Получить(НомерСтроки);
Для каждого Колонка Из СтрокаТаблицыЗначений.Владелец().Колонки Цикл
СтруктураСтроки.Вставить(Колонка.Имя, СтрокаТаблицыЗначений[Колонка.Имя]);
КонецЦикла;
Возврат СтруктураСтроки;
КонецФункции
Описание ошибки:
{ВнешняяОбработка.ЗагрузкаДанных.Форма.Форма.Форма(213)}: Ошибка при вызове метода контекста (ПолучитьИзВременногоХранилища)
ТаблицаЗначений = ПолучитьИзВременногоХранилища(УИ);
по причине:
Ошибка получения значения из временного хранилища
по причине:
Неправильный путь к файлу '3f913e55-2bde-43aa-8a92-12905ac03d84'
Ошибка получения значения из временного хранилища
по причине:
Неправильный путь к файлу '3f913e55-2bde-43aa-8a92-12905ac03d84'
|
|
1
hhhh
22.02.22
✎
06:37
|
(0) так у вас передача с сервера на сервер. Почему вы пишете передача на клиент?
|
|
2
pokrishkin
22.02.22
✎
07:03
|
(1) потому что в итоге выборка уходит на клиент, и вообще вопрос в том, почему путь к файлу оказывается не верным, если он в обеих процедурах один?
|
|
3
PuhUfa
22.02.22
✎
07:11
|
(0) потому что УникальныйИдентификатор не является адресом во временном хранилище
|
|
4
Жан Пердежон
22.02.22
✎
07:14
|
Адрес = ПоместитьВоВременноеХранилище(СтруктураБДНаСервере,УИ);
---
ПолучитьИзВременногоХранилища(Адрес);
|
|
5
OldCondom
22.02.22
✎
07:14
|
То есть все остально не смущает?
|
|
6
Жан Пердежон
22.02.22
✎
07:16
|
(3) опередил
и да, в (0) лютый говнокод, начинай от именования переменных и функций, и кончая контекстными вызовами в цикле
|
|
7
pokrishkin
22.02.22
✎
07:37
|
(6) Докулупаваться до наименований переменных и функций - дело последнее,
про контекстные выховы - согласен, но нужно чтобы оно хоть как то заработало
(4) Спасибо, упустил момент
|
|
8
MyNick
22.02.22
✎
09:39
|
(7) это как раз таки первое дело.
Задавая вопрос - привести код в порядок для уважения к помогающим.
А пока будешь приводить в порядок код, с большой вероятностью сам решишь свою проблему.
Это так работает.
|
|
9
valerivp
22.02.22
✎
10:21
|
(0) ПоместитьВоВременноеХранилище возвращает адрес, по которому надо получать
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший