|
И опять конвертация данных | ☑ | ||
---|---|---|---|---|
0
4uvak
23.10.12
✎
08:55
|
Здравствуйте подскажите пожалуйста, в стандартных правилах изменяю ПВД на документ "РеализацияТоваровИУслуг" убираю в объект выборки, ставлю произвольный алгоритм в способе выборке, пишу код на выборку для записи в один документ из многих. Далее пытаюсь выгрузить данные по данному правилу но обработка выдает ошибку.
Ошибка при вызове метода контекста (НайтиПоТипу): Несоответствие типов (параметр номер '1') Проверяя в конфигураторе что не понравилось, обнаружил что проблема как раз в том что не указал в ПВД объект выборки. Кто сталкивался подскажите как с этим боролись |
|||
1
vmv
23.10.12
✎
08:57
|
я бросил курить
|
|||
2
Нуф-Нуф
23.10.12
✎
08:57
|
(1) красава
|
|||
3
4uvak
23.10.12
✎
08:57
|
(1)я тоже, не помогло
|
|||
4
Redkiy
23.10.12
✎
08:59
|
Что передаешь в ПКО?
Давай кусок кода. |
|||
5
4uvak
23.10.12
✎
09:02
|
Запрос = Новый Запрос;
Запрос.текст = "ВЫБРАТЬ | РеализацияТоваровУслугТовары.АкцизВидОперацииРеализации, | РеализацияТоваровУслугТовары.ЕдиницаИзмерения, | РеализацияТоваровУслугТовары.Количество, | РеализацияТоваровУслугТовары.Коэффициент, | РеализацияТоваровУслугТовары.НДСВидОперацииРеализации, | РеализацияТоваровУслугТовары.Номенклатура, | РеализацияТоваровУслугТовары.СтавкаАкциза, | РеализацияТоваровУслугТовары.СтавкаНДС, | РеализацияТоваровУслугТовары.Сумма, | РеализацияТоваровУслугТовары.СуммаАкциза, | РеализацияТоваровУслугТовары.СуммаНДС, | РеализацияТоваровУслугТовары.Цена |ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары |ГДЕ | РеализацияТоваровУслугТовары.Ссылка.НаличиеДокументов = ЛОЖЬ"; Выборка = запрос.Выполнить().Выбрать(); ТаблицаДанные = Новый ТаблицаЗначений; ТаблицаДанные.Колонки.Добавить("Организация", Новый ОписаниеТипов("СправочникСсылка.Организации")); ТаблицаДанные.Колонки.Добавить("ВидОперации", Новый ОписаниеТипов("ПеречислениеСсылка.ВидыОперацийРеализацияТоваров")); ТаблицаДанные.Колонки.Добавить("БанковскийСчетОрганизации", Новый ОписаниеТипов("СправочникСсылка.БанковскиеСчета")); ТаблицаДанные.Колонки.Добавить("ВалютаДокумента", Новый ОписаниеТипов("СправочникСсылка.Валюты")); ТаблицаДанные.Колонки.Добавить("Склад", Новый ОписаниеТипов("СправочникСсылка.Склады")); ТаблицаДанные.Колонки.Добавить("СуммаДокумента", Новый ОписаниеТипов("Число")); ТаблицаДанные.Колонки.Добавить("Товары", Новый ОписаниеТипов("ТаблицаЗначений")); Товары = Новый ТаблицаЗначений(); Товары.Колонки.Добавить("АкцизВидОперацииРеализации", Новый ОписаниеТипов("СправочникСсылка.ВидыОперацийОблагаемыхАкцизом")); Товары.Колонки.Добавить("ЕдиницаИзмерения", Новый ОписаниеТипов("СправочникСсылка.КлассификаторЕдиницИзмерения")); Товары.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число")); Товары.Колонки.Добавить("Коэффициент", Новый ОписаниеТипов("Число")); Товары.Колонки.Добавить("НДСВидОперацииРеализации", Новый ОписаниеТипов("СправочникСсылка.ВидыРеализации")); Товары.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура")); Товары.Колонки.Добавить("СтавкаАкциза", Новый ОписаниеТипов("СправочникСсылка.СтавкиАкциза")); Товары.Колонки.Добавить("СтавкаНДС", Новый ОписаниеТипов("СправочникСсылка.СтавкиНДС")); Товары.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число")); Товары.Колонки.Добавить("СуммаАкциза", Новый ОписаниеТипов("Число")); Товары.Колонки.Добавить("СуммаНДС", Новый ОписаниеТипов("Число")); Товары.Колонки.Добавить("Цена", Новый ОписаниеТипов("Число")); Пока Выборка.Следующий() Цикл СтрокаТоваров = Товары.Добавить(); СтрокаТоваров.АкцизВидОперацииРеализации = Выборка.АкцизВидОперацииРеализации; СтрокаТоваров.ЕдиницаИзмерения = Выборка.ЕдиницаИзмерения; СтрокаТоваров.Количество = Выборка.Количество; СтрокаТоваров.Коэффициент = Выборка.Коэффициент; СтрокаТоваров.НДСВидОперацииРеализации = Выборка.НДСВидОперацииРеализации; СтрокаТоваров.Номенклатура = Выборка.Номенклатура; СтрокаТоваров.СтавкаАкциза = Выборка.СтавкаАкциза; СтрокаТоваров.СтавкаНДС = Выборка.СтавкаНДС; СтрокаТоваров.Сумма = Выборка.Сумма; СтрокаТоваров.СуммаАкциза = Выборка.СуммаАкциза; СтрокаТоваров.СуммаНДС = Выборка.СуммаНДС; СтрокаТоваров.Цена = Выборка.Цена; КонецЦикла; Организация = Справочники.Организации.НайтиПоКоду("000000001"); НоваяСтрокаДанные = ТаблицаДанные.Добавить(); НоваяСтрокаДанные.Организация = Организация; НоваяСтрокаДанные.СуммаДокумента = Товары.Итог("Сумма"); НоваяСтрокаДанные.ВидОперации = Перечисления.ВидыОперацийРеализацияТоваров.ПродажаКомиссия; НоваяСтрокаДанные.БанковскийСчетОрганизации = Организация.ОсновнойБанковскийСчет; НоваяСтрокаДанные.ВалютаДокумента = Справочники.Валюты.НайтиПоКоду("398"); НоваяСтрокаДанные.Товары = Товары; //ВыгрузитьПоПравилу(ИсходящиеДанные,, ,,"ПКО"); ВыборкаДанных = ТаблицаДанные; |
|||
6
4uvak
23.10.12
✎
09:06
|
(4)Проблема заключается не в коде, а в стандартной обработке ОбменДаннымиXML там в процедуре
ВыполнитьВыгрузкуИзмененныхДанныхДляУзлаОбмена Есть такой кусочек кода Для Каждого СтрокаПравилаВыгрузки Из ВременныйМассивПравилВыгрузкиДанных Цикл МетаданныеПВД = Метаданные.НайтиПоТипу(СтрокаПравилаВыгрузки.ОбъектВыборки); МассивВыгружаемыхМетаданных.Добавить(МетаданныеПВД); КонецЦикла; Вот тут то и возникает ошибка при поиске Типа объекта выборки. |
|||
7
Redkiy
23.10.12
✎
09:10
|
Судя но коду, ты пытаешься создать один док из всех по условию НаличиеДокументов = ЛОЖЬ.
|
|||
8
4uvak
23.10.12
✎
09:10
|
(7)Так и есть
|
|||
9
vmv
23.10.12
✎
09:11
|
Процедура СоздатьКолонкиТаблицы()
ТаблицаДанные = Новый ТаблицаЗначений; ТаблицаДанные.Колонки.Добавить("Организация", Новый ОписаниеТипов("СправочникСсылка.Организации")); ТаблицаДанные.Колонки.Добавить("ВидОперации", Новый ОписаниеТипов("ПеречислениеСсылка.ВидыОперацийРеализацияТоваров")); ТаблицаДанные.Колонки.Добавить("БанковскийСчетОрганизации", Новый ОписаниеТипов("СправочникСсылка.БанковскиеСчета")); ТаблицаДанные.Колонки.Добавить("ВалютаДокумента", Новый ОписаниеТипов("СправочникСсылка.Валюты")); ТаблицаДанные.Колонки.Добавить("Склад", Новый ОписаниеТипов("СправочникСсылка.Склады")); ТаблицаДанные.Колонки.Добавить("СуммаДокумента", Новый ОписаниеТипов("Число")); ТаблицаДанные.Колонки.Добавить("Товары", Новый ОписаниеТипов("ТаблицаЗначений")); Товары = Новый ТаблицаЗначений(); Товары.Колонки.Добавить("АкцизВидОперацииРеализации", Новый ОписаниеТипов("СправочникСсылка.ВидыОперацийОблагаемыхАкцизом")); Товары.Колонки.Добавить("ЕдиницаИзмерения", Новый ОписаниеТипов("СправочникСсылка.КлассификаторЕдиницИзмерения")); Товары.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число")); Товары.Колонки.Добавить("Коэффициент", Новый ОписаниеТипов("Число")); Товары.Колонки.Добавить("НДСВидОперацииРеализации", Новый ОписаниеТипов("СправочникСсылка.ВидыРеализации")); Товары.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура")); Товары.Колонки.Добавить("СтавкаАкциза", Новый ОписаниеТипов("СправочникСсылка.СтавкиАкциза")); Товары.Колонки.Добавить("СтавкаНДС", Новый ОписаниеТипов("СправочникСсылка.СтавкиНДС")); Товары.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число")); Товары.Колонки.Добавить("СуммаАкциза", Новый ОписаниеТипов("Число")); Товары.Колонки.Добавить("СуммаНДС", Новый ОписаниеТипов("Число")); Товары.Колонки.Добавить("Цена", Новый ОписаниеТипов("Число")); КанецПродураков так зуми для начала, ато код поход на кучу навоза |
|||
10
vmv
23.10.12
✎
09:12
|
(6) поставь условие проверки на вшивость
СтрокаПравилаВыгрузки.ОбъектВыборки |
|||
11
4uvak
23.10.12
✎
09:14
|
(10)Знать бы где Массив уже приходит в процедуру
|
|||
12
4uvak
23.10.12
✎
09:18
|
(10)Да к тому же, менять стандартный код обработки не хочется, может кто знает как можно ее обмануть?
|
|||
13
Redkiy
23.10.12
✎
11:14
|
Создай новое ПКО РеализацияТоваровИУслуг_.
Начинай с малого - переноси реквизиты постепенно, сначала перенеси только дату, получится - добавляй следующие. Т.к. ссылку не передаешь в ПКО отключи поиск по GUID, поиск по реквизиту Дата. А вообще от твоего кода глаза режет... |
|||
14
4uvak
23.10.12
✎
11:35
|
(13)Понимаешь если в правилах выгрузки данных, я выбираю объект выборки "РеализацияТоваровУслуг", то выгрузка проходит, но количество документов остается прежним и поля заполнены лишь те которые указал, если объект выборки из правил выгрузки данных удаляю то ругается на ошибку. А что с кодом?
|
|||
15
Redkiy
23.10.12
✎
11:47
|
(14) Ты между строк читаешь? Тебе предложен способ быстро (за пару минут) локализовать ошибку!
по коду: запрос надо бы свернуть, или у тебя номенклатура не повторяется? Товары = запрос.Выполнить().Выгрузить(); // ТАКОЕ ПРОХОДИЛИ? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |