Имя: Пароль:
1C
1С v8
Работа с расшифровкой отчета на УФ (2)
0 patapum
 
21.12.11
17:46
Кто может подсказать: я делаю свое действие расшифровки, но мне нужно узнать значения полей расшифровки. А я знаю только идентификатор, но не знаю как по нему данные получить, и данные расшифровки, имеет тип строка, значение e1cib/tempstorage/b774e7bb-54f1-4993-a39c-63b9ec16a4cc.
1 Vladal
 
21.12.11
19:06
2 patapum
 
21.12.11
19:15
(1) спасибо, по яндексу нашел. только теперь заморочка еще интереснее.
вот код. по расшифровке получаю родителей (группировки), среди них есть номенклатура. мне ее надо в документ воткнуть

&НаСервере
Функция ПолучитьДокументУстановкиЦен(ИдРасшифровки)

   МассивРодителей = ПолучитьИзВременногоХранилища(ДанныеРасшифровки).Элементы.Получить(ИдРасшифровки).ПолучитьРодителей();
   Номенклатура = Справочники.Номенклатура.ПустаяСсылка();
   Для каждого ПолеРодитель Из МассивРодителей Цикл
       ЗначениеПоля = ПолеРодитель.ПолучитьПоля().Получить(0);
       Если ЗначениеПоля.Поле = "Номенклатура" Тогда
           Номенклатура = ЗначениеПоля.Значение;
       КонецЕсли;
   КонецЦикла;
   ДокументУстановкаЦен = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();

   ДокументУстановкаЦен.Товары.Добавить().Номенклатура = Номенклатура;
   Возврат ДокументУстановкаЦен;                
   
КонецФункции

падает с ошибкой, причем если номенклатуру не присваивать, а просто тихо получить, то все норм. вот текст ошибки

{Форма.ФормаОтчета.Форма(44)}: Ошибка при вызове метода контекста (ПолучитьДокументУстановкиЦен)
           ДокументУстановкаЦен = ПолучитьДокументУстановкиЦен(Расшифровка);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: ret    Форма: Элемент    Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: {http://v8.1c.ru/8.1/data/enterprise/current-config}Ref    Форма: Элемент    Тип: {http://www.w3.org/2001/XMLSchema}anyType
3 patapum
 
21.12.11
20:15
Хроники безумия... Оказывается, падает не из за присвоения номенклатуры, а из за попытки передать обратно документ.
То есть падает даже такая функция:

&НаСервере
Функция ПолучитьДокументУстановкиЦен(ИдРасшифровки)

   ДокументУстановкаЦен = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
   Возврат ДокументУстановкаЦен;                
   
КонецФункции

Кто нибудь мне может сказать, что я крамольного делаю???
4 toypaul
 
гуру
21.12.11
20:36
объекты нельзя возвращать. только ссылки
5 patapum
 
21.12.11
21:02
(4) а как тогда сделать? мне надо создать новый документ, заполнить и открыть. на клиенте не могу создать, на сервере не могу получить форму...
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс