|
Конвертация данных | ☑ | ||
---|---|---|---|---|
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) ни фига. Конвертация твою структуру обходить циклом пытается и ищет у Структура.Номер ТЧ Товары
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |