Имя: Пароль:
1C
1С v8
Конвертация данных
0 SergeyDon
 
17.02.14
15:42
Уважаемые специалисты, подскажите как правильно настроить Правило Выгрузки Данных для документа с табличной частью, если источником является результат запроса.
Есть, условно, документ, где в реквизитах шапки Дата и Номер
Табличная часть состоит из реквизитов Номенклатура, Кол, Сумма

Мой результат возвращает таблицу, где
Дата и Номер повторяется с каждой строкой табличной части.
При выгрузке выдает ошибку.

Пробовал запихнуть в Структуру
Структура = Новый Структура;
Структура.Вставить("Номер",Выборка.Номер);
Структура.Вставить("Дата",Выборка.Дата);
Структура.Вставить(Товары);
Тоже не проходит.
1 SergeyDon
 
17.02.14
15:45
Сорри,
вот так на самом деле было реализовано
    Результ = Запрос.Выполнить();
    Выборка = Результ.Выбрать();
    Выборка.Следующий();
    ТЗ = Результ.Выгрузить();


Структура = Новый Структура;
Структура.Вставить("Номер",Выборка.Номер);
Структура.Вставить("Дата",Выборка.Дата);
Структура.Вставить("Товары",ТЗ);
2 Defender aka LINN
 
17.02.14
15:45
(0) Обходи результат сам и вызывай ВыгрузитьПоПравилу(Структура), как вариант.
3 SUA
 
17.02.14
15:46
Есть обработчик ПередВыгрузкой например
4 Господин ПЖ
 
17.02.14
15:46
ну а дальше?

ошибку какую? - телепаты в отпуске
5 dk
 
17.02.14
15:47
погляди готовые примеры
наверно у тебя названия колонок в запросе не совпадают с названиями реквизитов документа
6 Vovan1975
 
17.02.14
15:47
телепатизм намбер уан: проверяй все названия полей в запросе
7 SergeyDon
 
17.02.14
15:48
Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(7999)}: Поле объекта не обнаружено (Товары)
8 dk
 
17.02.14
15:49
(7) есть табличная честь Товары в документе?
9 Vovan1975
 
17.02.14
15:50
телепатизм намбер ту: а флажок "получить из входящих данных" у тебя везде включен?
10 SergeyDon
 
17.02.14
15:50
Да
Я это делаю в обработчике Перед Обработкой
11 SergeyDon
 
17.02.14
15:58
До тех пор пока я не изменил запрос все работало.
Раньше он был вида:
ВЫБРАТЬ
    МойДок.Номер,
    МойДок.Дата,
    МойДок.Товары.(
        Ссылка,
        Номенклатура,
        Кол,
        Сумма
    )
ИЗ
    Документ.МойДок КАК МойДок
ГДЕ
    МойДок.Проведен = Истина
    И МойДок.Дата МЕЖДУ &Дата1 И &Дата2


и возвращал только одну строку, где Товары - таблица
12 SergeyDon
 
17.02.14
15:59
А поскольку мне необходимо было вносить преобразования через временные таблицы, на выходе получил сплошную таблицу
13 SergeyDon
 
17.02.14
16:02
"Обходи результат сам и вызывай ВыгрузитьПоПравилу(Структура)"  наверное вариант
14 SergeyDon
 
17.02.14
16:03
Названия колонок совпадают. 10 раз проверял
15 Alamo-10
 
17.02.14
16:13
(0) Я чо-то не нашел, где у тебя объявлена переменная ВыборкаДанных в обработчике ПередОбработкой. Собственно она является источником данных
16 SergeyDon
 
17.02.14
16:26
в ПВД способ выгрузки указан Произвольный алгоритм и там же запрос.
ВыборкаДанных = Запрос.Выполнить().Выгрузить();

В ПКО источник вообще никакой не указан.

Это все не я писал. Разбираюсь...
Но ведь работало!!!
Видимо придется вернуть старый текст в ПВД
17 SergeyDon
 
17.02.14
16:28
Как я говорил текст запроса выполнялся в обработчике
Перед обработкой
18 Alamo-10
 
17.02.14
16:36
Ну если ВыборкаДанных формируется и всё так, как в (16), то остается только имена полей проверить и типы данных.

В ПКО есть ПКГС "Товары"?
В ВыборкеДанных есть колонка "Товары" с типом ТаблицаЗначений или какой-нибудь другой коллекцией?
19 МойКодУныл
 
17.02.14
16:37
(16) Работает? не трожь!
В ПВД все правильно написано - запросом сформирована нужная выборка объектов к выгрузке.
Далее в дело вступают ПКО. Выполняются для кажого объекта из выборки. Может тебе нужно просто их дописать? Например коллекцию создать запросом для выгрузки тч?
В чем были изначальная задача? Зачем полез в правила?
20 Alamo-10
 
17.02.14
16:37
Если ты менял запрос, то просто обойди его и заполни колонку Товары так, как нужно тебе, и всё будет работать
21 SergeyDon
 
17.02.14
16:47
(Alamo-10) В ВыборкуДанных пробовал подставить Структуру вида
Структура = Новый Структура;
Структура.Вставить("Номер",Выборка.Номер);
Структура.Вставить("Дата",Выборка.Дата);
Структура.Вставить("Товары",ТЗ);
Хотел обмануть программу, но она реквизит Товары понимает как реквизит, а не как Табличную Часть. В этом загвоздка.
Ну да ладно. Всем спасибо.
Думаю быстрее всего будет переписать запрос без временных таблиц...
22 Alamo-10
 
17.02.14
16:50
(21) А что такое "Товары" в твоей структуре? Твоя структура должна содержать ровно такие поля, которые есть в ПКГС Товары, т.е. Номенклатура, Количество и т.д. А уже саму эту структуру нужно вставлять в качестве одной из колонок ВыборкиДанных.

Только, естественно, в этой структуре не должно быть ни Даты, ни Номера, т.к. это реквизиты Документа, а не табличной части
23 SergeyDon
 
17.02.14
17:03
ОК. Спасибо!
24 Йохохо
 
17.02.14
17:17
(23) ни фига. Конвертация твою структуру обходить циклом пытается и ищет у Структура.Номер ТЧ Товары