Имя: Пароль:
1C
1С v8
Конвертация данных
0 Aleksei_Pro
 
29.10.13
14:59
ВходящиеДанные = Новый Структура;
ВходящиеДанные.Вставить("Организация" ,Параметры.Организация);
ВходящиеДанные.Вставить("Дата" ,КонецДня(ДатаКон));
ВходящиеДанные.Вставить("Продукция" , ТаблицаНоменклатурыПродукции);
ВходящиеДанные.Вставить("Услуги" , ТаблицаНоменклатурыУслуги);
ВходящиеДанные.Вставить("Материалы" , ТаблицаНоменклатурыМатериалы);

ВыгрузитьПоПравилу(,, ВходящиеДанные,, "ОтчетПроизводстваЗаСмену");

Ребят подскажите. Я выгружаю все документы за период в 1 документ. ПередВыгрузкой написал алгорит , собрал все ТЧ в ТЗ и выгружаю по правилу. В документе указал , что загружать из входящих данных.
При выгружке пишет ошибку:


Начало выгрузки:   29.10.2013 14:57:08

Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(10482)}: Значение не является значением объектного типа (ИмяТипа)

Что не так может быть?
1 Aleksei_Pro
 
29.10.13
15:00
(0) В обработчике "ПередОбработкой" написал...
2 GenV
 
29.10.13
15:02
Попробовать:
ВыгрузитьПоПравилу("Док",, ВходящиеДанные,, "ОтчетПроизводстваЗаСмену");
3 Йохохо
 
29.10.13
15:05
может убрать ВыгрузитьПоПравилу и заменить галкой ПолучитьИзВходящихДанных?
4 Aleksei_Pro
 
29.10.13
15:07
(3) не понял , у меня стоит в ПКС галка "Получить из входящих данных" напротив каждого элемента.
5 Йохохо
 
29.10.13
15:07
а, в (0) уже "В документе указал , что загружать из входящих данных." В общем добавь аккуратности, ВыгрузитьПоПравилу или ПолучитьИзВходящихДанных
6 Йохохо
 
29.10.13
15:08
При выгрузить по правилу получать из входящих не надо, на входе Источник
7 GenV
 
29.10.13
15:12
(4) Ты передаешь на выгрузку пустое значение (Неопределено), свойство которого должны получаться из входящих данных. Насколько помню, КД не будет пустое значение выгружать.
ЗЫ Вообще сначала нужно посмотреть код по строке ошибки
8 Aleksei_Pro
 
29.10.13
15:13
(5) И (6) не согласен. Галка и выгрузить по правилу надо ставить.
9 Aleksei_Pro
 
29.10.13
15:14
Вот весь код:
Организация = Параметры.Организация;
ДатаНач = Параметры.ДатаНач;
ДатаКон = Параметры.ДатаКон;

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("НачДата",НачалоДня(ДатаНач));
Запрос.УстановитьПараметр("КонДата",КонецДня(ДатаКон));
Запрос.УстановитьПараметр("Организация",Организация);
Запрос.Текст = "ВЫБРАТЬ
|    СборкаЗапасовПродукция.Номенклатура,
|    СборкаЗапасовПродукция.Количество,
|    СУММА(СборкаЗапасовПродукция.Количество) КАК КоличествоМест,
|    СборкаЗапасовПродукция.ЕдиницаИзмерения,
|    СборкаЗапасовПродукция.Спецификация
|ИЗ
|    Документ.СборкаЗапасов.Продукция КАК СборкаЗапасовПродукция
|ГДЕ
|    СборкаЗапасовПродукция.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
|
|СГРУППИРОВАТЬ ПО
|    СборкаЗапасовПродукция.Номенклатура,
|    СборкаЗапасовПродукция.Количество,
|    СборкаЗапасовПродукция.ЕдиницаИзмерения,
|    СборкаЗапасовПродукция.Спецификация";
ТаблицаНоменклатурыПродукции = Запрос.Выполнить().Выгрузить();

Запрос.УстановитьПараметр("НачДата",НачалоДня(ДатаНач));
Запрос.УстановитьПараметр("КонДата",КонецДня(ДатаКон));
Запрос.УстановитьПараметр("Организация",Организация);
Запрос.Текст = "ВЫБРАТЬ
|    СборкаЗапасовПродукция.Номенклатура,
|    СборкаЗапасовПродукция.Количество,
|    СборкаЗапасовПродукция.Спецификация
|ИЗ
|    Документ.СборкаЗапасов.Запасы КАК СборкаЗапасовПродукция
|ГДЕ
|    СборкаЗапасовПродукция.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
|    И (СборкаЗапасовПродукция.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга)
|            ИЛИ СборкаЗапасовПродукция.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа))
|
|СГРУППИРОВАТЬ ПО
|    СборкаЗапасовПродукция.Номенклатура,
|    СборкаЗапасовПродукция.Количество,
|    СборкаЗапасовПродукция.Спецификация";

ТаблицаНоменклатурыУслуги = Запрос.Выполнить().Выгрузить();

Запрос.УстановитьПараметр("НачДата",НачалоДня(ДатаНач));
Запрос.УстановитьПараметр("КонДата",КонецДня(ДатаКон));
Запрос.УстановитьПараметр("Организация",Организация);
Запрос.Текст = "ВЫБРАТЬ
|    СборкаЗапасовПродукция.Номенклатура,
|    СборкаЗапасовПродукция.Количество,
|    СУММА(СборкаЗапасовПродукция.Количество) КАК КоличествоМест,
|    СборкаЗапасовПродукция.ЕдиницаИзмерения,
|    СборкаЗапасовПродукция.Спецификация
|ИЗ
|    Документ.СборкаЗапасов.Продукция КАК СборкаЗапасовПродукция
|ГДЕ
|    СборкаЗапасовПродукция.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
|    И СборкаЗапасовПродукция.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Запас)
|
|СГРУППИРОВАТЬ ПО
|    СборкаЗапасовПродукция.Номенклатура,
|    СборкаЗапасовПродукция.Количество,
|    СборкаЗапасовПродукция.ЕдиницаИзмерения,
|    СборкаЗапасовПродукция.Спецификация";
ТаблицаНоменклатурыМатериалы = Запрос.Выполнить().Выгрузить();


ВходящиеДанные = Новый Структура;
ВходящиеДанные.Вставить("Организация" ,Параметры.Организация);
ВходящиеДанные.Вставить("Дата" ,КонецДня(ДатаКон));
ВходящиеДанные.Вставить("Продукция" , ТаблицаНоменклатурыПродукции);
ВходящиеДанные.Вставить("Услуги" , ТаблицаНоменклатурыУслуги);
ВходящиеДанные.Вставить("Материалы" , ТаблицаНоменклатурыМатериалы);

ВыгрузитьПоПравилу(,, ВходящиеДанные,, "ОтчетПроизводстваЗаСмену");
10 GenV
 
29.10.13
15:18
7+ у тебя строка ошибки: Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(10482)
Нужно смотреть, что там за процедура )
11 Йохохо
 
29.10.13
15:23
а, ну можно и вот так ВыгрузитьПоПравилу(ВходящиеДанные...)
12 J_B
 
29.10.13
15:25
А в самом ПКО нету реквизитов, которые отсутствуют в структуре ВходящиеДанные?
Буквально пару дней назад столкнулся с аналогичной проблемой... но вот как решил не помню.
13 Aleksei_Pro
 
29.10.13
15:28
Есть. Дкмаете из за этоого?
14 Aleksei_Pro
 
29.10.13
15:30
Нет это не помогает!
15 GenV
 
29.10.13
15:31
(13) Если у тебя есть еще свойства ПКС, которые не указаны в ВходящиеДанные как будут их значения заполняться, если ты сам источник не передал?
16 Зойч
 
29.10.13
15:31
у тебя строка в справочник переходит где-то
17 Karamzin
 
29.10.13
15:43
(0) Отладчик тебе в помощь.
Я сейчас тоже плотно работаю с конвертацией. Постоянно приходится пользоваться отладчиком.
18 gorakh
 
29.10.13
17:06
Поставь "остановка по ошибке" и смотри стек вызовов.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн