|
Конвертация данных произвольным запросом | ☑ | ||
---|---|---|---|---|
0
Ayrym
10.07.18
✎
10:17
|
Конвертация данных 2.1. Выгружаю данные произвольным запросом: необходимо из сложного запроса выбрать данные и в приемнике создать документ с таб.частью. Запрос в норме, все данные проверила, но при выгрузке не записываются ссылочные данные из запроса. Уже через отладчик по выгрузке смотрела, ВыборкаДанных в норме, но при записи xml файла ссылочные данные не пишутся в файл, в ПКС нужно включить какую-то настройку, но уже устала искать, подскажите кто знает, в чем может быть проблема
|
|||
1
segn
10.07.18
✎
10:37
|
В ПВД стандартная обработка отключена?
|
|||
2
Ayrym
10.07.18
✎
10:43
|
(1) в ПВД нет такой настройки, может это версия КД с глюком? есть только настрйоки: Отключить правило, Выбирать данные для выгрузки одним запросом, Не выгружать объекты созданные в приемнике.
В ПВД у меня объект выборки пустой, способ выборки - произвольный алгоритм, Правило конвертации - то которое зодавала под выгрузку, в обработчике перед обработкой собственно мой запрос с загрузкой в ВыборкаДанных |
|||
3
hhhh
10.07.18
✎
10:46
|
(2) типовые правила откройте и посмотрите как там сделано. Зачем заморачиваться и пытаться что-то изобрести?
|
|||
4
d4rkmesa
10.07.18
✎
10:49
|
(0) Там пустой узел ссылки или вообще нет? Может правила отключены, может, нет для них подходящих ПКО.
|
|||
5
azt-yur
10.07.18
✎
10:53
|
(2) чему приравниваете ВыборкаДанных? покажите код.
И вот на это внимание обращали: Важно: Если для выборки данных ПВД используется произвольный алгоритм и в обработчике ПВД "Перед обработкой" инициируется параметр ВыборкаДанных, то для ПКО следует установить признак "Не запоминать выгруженные объекты". |
|||
6
Вафель
10.07.18
✎
10:54
|
может проще делать ВыгрузитьПоПравилу(...)
|
|||
7
Ayrym
10.07.18
✎
10:55
|
(5) Этот признак стоит, в том то и дело
|
|||
8
Ayrym
10.07.18
✎
10:56
|
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Дата",Новый ОписаниеТипов("Дата")); ТЗ.Колонки.Добавить("ВидОперации", Новый ОписаниеТипов("ПеречислениеСсылка.ВидыОперацийОприходованиеТоваров")); ТЗ.Колонки.Добавить("Организация", Новый ОписаниеТипов("СправочникСсылка.Организации")); ТЗ.Колонки.Добавить("Ответственный", Новый ОписаниеТипов("СправочникСсылка.Пользователи")); ТЗ.Колонки.Добавить("ОтражатьВБухгалтерскомУчете"); ТЗ.Колонки.Добавить("ОтражатьВУправленческомУчете"); ТЗ.Колонки.Добавить("Подразделение"); ТЗ.Колонки.Добавить("Склад", Новый ОписаниеТипов("СправочникСсылка.Склады")); ТЗ.Колонки.Добавить("СуммаДокумента"); ТЗ.Колонки.Добавить("Товары"); НоваяСтрока = ТЗ.Добавить(); НоваяСтрока.Дата = КонецДня(Параметры.Дата); НоваяСтрока.ВидОперации = Перечисления.ВидыОперацийОприходованиеТоваров.ТоварыПродукция; НоваяСтрока.Организация = Справочники.Организации.НайтиПоКоду("000000001"); НоваяСтрока.Ответственный = Справочники.Пользователи.НайтиПоНаименованию("Автообмен"); НоваяСтрока.ОтражатьВБухгалтерскомУчете = Ложь; НоваяСтрока.ОтражатьВУправленческомУчете = Истина; НоваяСтрока.Подразделение = Справочники.Подразделения.НайтиПоКоду("000000001"); НоваяСтрока.Склад = Параметры.Склад; НоваяСтрока.СуммаДокумента = 1; НоваяСтрока.Товары = Новый ТаблицаЗначений; НоваяСтрока.Товары.Колонки.Добавить("ЕдиницаИзмерения",Новый ОписаниеТипов("СправочникСсылка.ЕдиницыИзмерения")); НоваяСтрока.Товары.Колонки.Добавить("Качество", Новый ОписаниеТипов("СправочникСсылка.Качество")); НоваяСтрока.Товары.Колонки.Добавить("Коэффициент"); НоваяСтрока.Товары.Колонки.Добавить("Номенклатура"); НоваяСтрока.Товары.Колонки.Добавить("Количество"); НоваяСтрока.Товары.Колонки.Добавить("Цена"); НоваяСтрока.Товары.Колонки.Добавить("СтавкаНДСВРознице", Новый ОписаниеТипов("ПеречислениеСсылка.СтавкиНДС")); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВложенныйЗапрос.ЕдиницаИзмерения.Ссылка КАК ЕдиницаИзмерения, | ВложенныйЗапрос.Качество.Ссылка КАК Качество, | ВложенныйЗапрос.Коэффициент, | ВложенныйЗапрос.Номенклатура.Ссылка КАК Номенклатура, | ВложенныйЗапрос.Количество, | ВложенныйЗапрос.Цена, | ВложенныйЗапрос.СтавкаНДСВРознице.Ссылка КАК СтавкаНДСВРознице |ИЗ | (ВЫБРАТЬ | ВложенныйЗапрос.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | ВложенныйЗапрос.Качество КАК Качество, | ВложенныйЗапрос.Коэффициент КАК Коэффициент, | ВложенныйЗапрос.Номенклатура КАК Номенклатура, | СУММА(ВложенныйЗапрос.Количество) КАК Количество, | ВложенныйЗапрос.Цена КАК Цена, | ВложенныйЗапрос.СтавкаНДСВРознице КАК СтавкаНДСВРознице | ИЗ | (ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения, | ТоварыНаСкладахОстатки.Качество КАК Качество, | 1 КАК Коэффициент, | ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, | ТоварыНаСкладахОстатки.КоличествоОстаток КАК Количество, | 1 КАК Цена, | ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20) КАК СтавкаНДСВРознице | ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаКон, Склад = &Склад) КАК ТоварыНаСкладахОстатки | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | ТоварыВРезервеНаСкладахОстатки.Номенклатура.ЕдиницаХраненияОстатков, | ЗНАЧЕНИЕ(Справочник.Качество.Новый), | 1, | ТоварыВРезервеНаСкладахОстатки.Номенклатура, | -ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, | 1, | ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20) | ИЗ | РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&ДатаКон, Склад = &Склад) КАК ТоварыВРезервеНаСкладахОстатки | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | ТоварыКПередачеСоСкладовОстатки.Номенклатура.ЕдиницаХраненияОстатков, | ТоварыКПередачеСоСкладовОстатки.Качество, | 1, | ТоварыКПередачеСоСкладовОстатки.Номенклатура, | -ТоварыКПередачеСоСкладовОстатки.КоличествоОстаток, | 1, | ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20) | ИЗ | РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(&ДатаКон, Склад = &Склад) КАК ТоварыКПередачеСоСкладовОстатки) КАК ВложенныйЗапрос | | СГРУППИРОВАТЬ ПО | ВложенныйЗапрос.Качество, | ВложенныйЗапрос.Номенклатура, | ВложенныйЗапрос.ЕдиницаИзмерения, | ВложенныйЗапрос.Коэффициент, | ВложенныйЗапрос.Цена, | ВложенныйЗапрос.СтавкаНДСВРознице) КАК ВложенныйЗапрос"; Запрос.УстановитьПараметр("ДатаКон", КонецДня(параметры.Дата)); Запрос.УстановитьПараметр("Склад", Параметры.Склад); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл НоваяСтрокаТЧ = НоваяСтрока.Товары.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрокаТЧ, Выборка); КонецЦикла; ВыборкаДанных = ТЗ; |
|||
9
rozer76
10.07.18
✎
10:56
|
В ПКО перед выгрузкой
КлючВыгружаемыхДанных = Источник.Ссылка; |
|||
10
rozer76
10.07.18
✎
10:58
|
+ (9) и в вашем запросе ссылку в выборку
|
|||
11
Ayrym
10.07.18
✎
11:01
|
(9) Вставила, но теперь ругается на параметр Дата
Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1582)}: Ошибка в обработчике события ПередВыгрузкойОбъекта ПКО = ОприходованиеТоваров (:) Объект = 01.07.2018 00:00:00 (Дата) Обработчик = ПередВыгрузкойОбъекта ОписаниеОшибки = Значение не является значением объектного типа (Ссылка) ПозицияМодуля = (1) КодСообщения = 41 |
|||
12
Ayrym
10.07.18
✎
11:02
|
(10) Так там и так ссылки пишутся, или куда вписать эту ссылку, я не совсем поняла
|
|||
13
azt-yur
10.07.18
✎
11:05
|
(8) Из СП: ВыборкаДанных - Запрос, Результат запроса, Выборка из результата запроса или произвольная коллекция выгружаемых объектов.
Вы присваиваете ВыборкаДанных к таблице значений, не уверен, что конвертация ее может воспринимать. На сколько понял из кода вам надо за раз выгрузить один документ. Вместо таблицы значений сделайте структуру и используйте ВыгрузитьПоПравилу(<ИмяСтруктуры>, , , , <ИмяПравила>) вместо присваивания ВыборкаДанных = ТЗ; |
|||
14
rozer76
10.07.18
✎
11:05
|
(13) + 1
|
|||
15
rozer76
10.07.18
✎
11:08
|
(12) не, это для того чтобы поиск дока был по гуиду... сорри неверно прочел посыл ваш про "ри выгрузке не записываются ссылочные данные" (
|
|||
16
rozer76
10.07.18
✎
11:09
|
+ (15) смотри в (6) и (13) там истина )
|
|||
17
segn
10.07.18
✎
11:09
|
(11) В выборке нет поля "Ссылка"
|
|||
18
Ayrym
10.07.18
✎
11:11
|
(13) Конвертация ее воспринимает нормально, так как выгрузка есть (смотрела в отладчике в самой обработке Универсальный обмен данными xml) но при открытии файла выгрузки нет ссылочных данных, только те, что имеют тип Булево, число и Дату
|
|||
19
azt-yur
10.07.18
✎
11:14
|
(18) Т.е. документ сам выгружается? Под ссылочными данными понимаете реквизиты документа Организация, Склад, Номенклатура и т.д.?
Проверьте галочку в самом ПКО "Не выгружать объекты свойств источника по ссылкам" |
|||
20
segn
10.07.18
✎
11:14
|
И в ВыборкаДанных можно передавать и результат запроса. Здесь ТЗ не нужна.
|
|||
21
Ayrym
10.07.18
✎
11:18
|
(20) Не помогает, признак этот не влияет на запись ссылок в xml
|
|||
22
Ayrym
10.07.18
✎
11:19
|
(20) Можно, но я запросом получаю данные для табличной части ,поэтому мне нужна ВыборкаДанных, где одна колонка - это отдельная ТЗ
|
|||
23
segn
10.07.18
✎
11:21
|
У вас в ТЗ, как и в выборке нет поля "Ссылка"
|
|||
24
Ayrym
10.07.18
✎
11:21
|
попробую сейчас ВыгрузитьПоПравилу, хотя вчера этот способ тоже уже юзала, но может глаз замылился, кто знает
|
|||
25
Ayrym
10.07.18
✎
11:21
|
(23) ссылка на что? я не совсем понимаю какого поля не хватает
|
|||
26
segn
10.07.18
✎
11:23
|
В ТЗ добавьте колонку Ссылка, и заполняйте из выборки ссылочным типом данных (правда ее и в выборке нет - надо добавить).
|
|||
27
Ayrym
10.07.18
✎
11:23
|
Пример делала по аналогу видео с Ютьюба (Конвертация данных 2.1. Урок 31. Перенос данных через произвольную коллекцию) с конвертацией разбираюсь впервые....вот и застряла с этим
|
|||
28
segn
10.07.18
✎
11:25
|
Выполните уже п.26
|
|||
29
Ayrym
10.07.18
✎
11:25
|
(28) ок, сейчас попробую
|
|||
30
rozer76
10.07.18
✎
11:31
|
(28) да она вроде читала (10)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |