|
Ошибка преобразования данных XDTO: Текст: false | ☑ | ||
---|---|---|---|---|
0
XiPyPg2012
18.10.13
✎
17:14
|
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине: Ошибка преобразования данных XDTO: Текст: false Листинг: &НаСервере Функция ВыполнитьПроверкуСПоступлениемТоваров(ЭтотОбъект,ЗадатьВопрос) //ЗадатьВопрос = "Не задавать"; ЭтотОбъект = ЭтотОбъект.ПолучитьОбъект(); если ТипЗнч(этотОбъект.Распоряжение) = Тип("ДокументСсылка.ПоступлениеТоваровУслуг") тогда ТоварыПО = ЭтотОбъект.Товары.Выгрузить(); запрос = новый запрос; запрос.Текст = "ВЫБРАТЬ | ТоварыПО.Номенклатура, | ТоварыПО.Количество, | ТоварыПО.Характеристика |ПОМЕСТИТЬ ТоварыПО |ИЗ | &ТоварыПО КАК ТоварыПО |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТоварыПО.Номенклатура, | СУММА(ТоварыПО.Количество) КАК Количество, | ТоварыПО.Характеристика, | СУММА(ПоступлениеТоваровУслугТовары.Количество) КАК Количество1, | ЕСТЬNULL(ПоступлениеТоваровУслугТовары.Номенклатура, ЛОЖЬ) КАК Номенклатура1 |ИЗ | ТоварыПО КАК ТоварыПО | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары | ПО (ПоступлениеТоваровУслугТовары.Номенклатура = ТоварыПО.Номенклатура) | И (ПоступлениеТоваровУслугТовары.Характеристика = ТоварыПО.Характеристика) | |СГРУППИРОВАТЬ ПО | ТоварыПО.Номенклатура, | ТоварыПО.Характеристика, | ЕСТЬNULL(ПоступлениеТоваровУслугТовары.Номенклатура, ЛОЖЬ)"; //Запрос.УстановитьПараметр ("Ссылка",ЭтотОбъект.Ссылка); Запрос.УстановитьПараметр ("ТоварыПО",ТоварыПО); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока выборка.следующий() Цикл Если выборка.Номенклатура1 = ложь Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "В приходном ордере присутствует номенклатура " + выборка.номенклатура + " которая отсутствует в поступлении."; Сообщение.Сообщить(); ЗадатьВопрос = истина; иначеесли выборка.Количество > выборка.Количество1 тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "В приходном ордере у номенклатуры " + выборка.Количество + " а в поступление " + выборка.количество1; Сообщение.Сообщить(); ЗадатьВопрос = истина; КонецЕсли; КонецЦикла; КонецЕсли; Возврат ЗадатьВопрос; КонецФункции // ВыполнитьПроверкуСПоступлениемТоваров() &НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) //<< Горбенко В.В. 18.10.2013 ЗадатьВопрос = Ложь; задатьВопрос = ВыполнитьПроверкуСПоступлениемТоваров(Объект.Ссылка, ЗадатьВопрос); Если задатьВопрос = "Задать вопрос" Тогда Режим = РежимДиалогаВопрос.ДаНет; Текст = "Желаете все равно провести документ?"; Ответ = Вопрос(НСтр(Текст), Режим, 0); Если Ответ = КодВозвратаДиалога.Нет Тогда Отказ = истина; иначе Отказ = Ложь; КонецЕсли; КонецЕсли; //>> Горбенко В.В. КонецПроцедуры Как с этим бороться ? |
|||
1
H A D G E H O G s
18.10.13
✎
17:19
|
Перепиши
задатьВопрос = ВыполнитьПроверкуСПоступлениемТоваров(Объект.Ссылка, ЗадатьВопрос); на задатьВопрос = ВыполнитьПроверкуСПоступлениемТоваров(Объект.Ссылка); |
|||
2
H A D G E H O G s
18.10.13
✎
17:20
|
Горбенко В.В. , вы пишите странный код.
|
|||
3
XiPyPg2012
18.10.13
✎
17:20
|
(1) тоже самое, первоначально так и было
|
|||
4
XiPyPg2012
18.10.13
✎
17:21
|
и в чем же его странность?
|
|||
5
XiPyPg2012
18.10.13
✎
17:22
|
(2) первоначально проверка была в модуле документа, в связи с необходимостью сделать вопрос, пришлось перенести в модуль документа
|
|||
6
H A D G E H O G s
18.10.13
✎
17:24
|
Вот здесь кусочек копрокота
ЭтотОбъект = ЭтотОбъект.ПолучитьОбъект(); (5) Прекрасно. Великолепные УФ заставляют чесать тыкву и выгребать авгиевые конюшни. Как и предсказывалось. |
|||
7
XiPyPg2012
18.10.13
✎
17:29
|
хоть просто пытаешь передать параметр истина или ложь чтото типа -
Если задатьВопрос = истина Тогда Возврат Истина; иначе возврат ложь; КонецЕсли; таже ерунда, вобще не пойму что случилось |
|||
8
H A D G E H O G s
18.10.13
✎
17:35
|
(7) Давай я попробую. Даже интересно.
|
|||
9
mrDSide
18.10.13
✎
21:36
|
(2) +
|
|||
10
mrDSide
18.10.13
✎
21:37
|
смущает "ЭтотОбъект". это используется в модуле объекта. Если в форме - должно быть "Объект".
|
|||
11
mrDSide
18.10.13
✎
21:39
|
т.е. если у Вас все одном общем модуле (и директивы "&НаСервере" и "&НаКлиенте"), то работать точно не будет.
выносите в отдельные модули с вызовом сервера, чтоб код выполнялся на клиенте... как-то так. |
|||
12
XiPyPg2012
21.10.13
✎
08:27
|
у меня в модуле формы, и на УФ все запросы выполняются ток в процедурах и функциях на сервере...Так что в функция которая выполняется на сервере, передается ссылка на объект а там по ссылке он получается если есть такая необходимость, ну и соответственно потом возвращаешь что тебе нужно.
А щас что-то я глючу и не могу понять в чем косяк. |
|||
13
1Сергей
21.10.13
✎
08:37
|
попробуй
Функция ВыполнитьПроверкуСПоступлениемТоваров(парЭтотОбъект,ЗадатьВопрос) ЭтотОбъект = парЭтотОбъект.ПолучитьОбъект(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |