![]() |
|
Ошибка передачи данных между клиентом и сервером. | ☑ | ||
---|---|---|---|---|
0
Новый1сник2
23.10.23
✎
11:13
|
Добрый день!
есть задача заполнить аналоги номенклатуры из другой номенклатуры. выдает ошибку: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: Текст: 857222d0-d963-11eb-baab-d45d64515876 |
|||
1
Новый1сник2
23.10.23
✎
11:14
|
&НаСервере
Процедура мАналогиНоменклатурыНоменклатураЗаполнитьНаСерверре(Номенклатура) Номенклатура = Номенклатура.ПолучитьОбъект(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | НоменклатурамАналогиНоменклатуры.Номенклатура КАК Номенклатура |ИЗ | Справочник.Номенклатура.мАналогиНоменклатуры КАК НоменклатурамАналогиНоменклатуры |ГДЕ | НоменклатурамАналогиНоменклатуры.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка", Номенклатура.Ссылка); Массив1 = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Номенклатура"); Массив2 = Объект.мАналогиНоменклатуры.Выгрузить().ВыгрузитьКолонку("Номенклатура"); //Массив текущей номенклатуры Для каждого Элемент Из Массив1 Цикл Если Массив2.Найти(Элемент) = Неопределено Тогда Массив2.Добавить(Элемент); КонецЕсли; КонецЦикла; Массив2.Добавить(Объект.Ссылка); Для Каждого ТекСтрока из Массив2 Цикл Если ТекСтрока.Ссылка <> Объект.Ссылка и ТекСтрока.Ссылка <> Номенклатура.Ссылка ТОгда НовСтрока = Объект.мАналогиНоменклатуры.Добавить(); НовСтрока.Номенклатура = ТекСтрока.Ссылка; КонецЕсли; КонецЦикла; КонецПроцедуры &НаКлиенте Процедура мЗаполнитьАналоги(Команда) ТекСтрока = Элементы.мАналогиНоменклатуры.ТекущиеДанные; мАналогиНоменклатурыНоменклатураЗаполнитьНаСерверре(ТекСтрока.Номенклатура); КонецПроцедуры |
|||
2
Новый1сник2
23.10.23
✎
11:15
|
сначала на таблицу значений ругалось, переделал на массивы,
ошибка осталась, не могу понять что передается на клиент |
|||
3
Donkey_hot
23.10.23
✎
11:22
|
(1) Загадочный код. Допустим даже все отработало: ну набили Вы табличную часть объекта какими-то аналогами, все равно ведь не записываете. Что касается ошибки, попробуйте выбрать другое имя переменной для результата вызова Номенклатура.ПолучитьОбъект(). Либо передавайте параметр по значению.
|
|||
4
Fedor-1971
23.10.23
✎
11:24
|
(2) точно, точно на ТЗ ругалось? Переменная "Элемент" так-то может перекрыть элемент формы
и, это, Номенклатура = Номенклатура.ПолучитьОбъект() - зачем тебе Объект номенклатуры, если используешь только ссылку? |
|||
5
Новый1сник2
23.10.23
✎
11:25
|
(3) благодарю, ошибка как раз в названии переменной была
|
|||
6
Donkey_hot
23.10.23
✎
11:26
|
(4) Да нет, здесь же видно, что параметру Номенклатура присваивается значение СправочникОбъект, а вернуть его на клиент несколько затруднительно.
|
|||
7
Fedor-1971
23.10.23
✎
11:32
|
(6) Не должно, на клиент от объекта поедет ссылка
А поломанный Элемент - точно не приедет на клиента |
|||
9
Новый1сник2
23.10.23
✎
11:39
|
(7) Элемент тоже переименовал на всякий случай
|
|||
10
Donkey_hot
23.10.23
✎
11:55
|
(7) Да нет, объект и поедет. Не бывает таких неявных преобразований. Что присвоили, то и поедет.
|
|||
11
Fedor-1971
23.10.23
✎
12:47
|
(10) Уже перепроверил, едет объект целиком
|
|||
12
Рэйв
23.10.23
✎
12:52
|
Номенклатура = Номенклатура.ПолучитьОбъект();
а потом Запрос.УстановитьПараметр("Ссылка", Номенклатура.Ссылка); Это конечно вершина мыслительного процесса:-)) |
|||
13
Новый1сник2
23.10.23
✎
13:22
|
(12) 👍
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |