Имя: Пароль:
1C
1С v8
конвертация из запроса во входящие данные табличной части документа, что не так?
0 Azmarika
 
04.07.16
09:58
Добрый день! Подскажите, пожалуйста что я делаю ни так? Буду очень благодарна. Ситуация следующая есть две базы УТ10 и БУХ8.2 между ними настроен обмен. В УТ номенклатура ведется по сериям,а в бух надо выгрузить, без серий(как бы объединенную. И вот при выполнении обмена выдается ошибка, ПКО                    =  ПоступлениеТоваровУслуг  (Документ: Поступление товаров и услуг)
    ПКС                    =  2  (--> Номенклатура)
    Объект                 =  Поступление товаров и услуг ГК000000112 от 01.07.2016 16:45:53  (Документ объект: Поступление товаров и услуг)
    СвойствоПриемника      =  Номенклатура  (СправочникСсылка.Номенклатура)
    ОписаниеОшибки         =  Поле объекта не обнаружено (Номенклатура)
    ПозицияМодуля          =  Обработка.ОбменДаннымиXML.МодульОбъекта(8335)
    КодСообщения           =  67
1 Azmarika
 
04.07.16
09:59
Вот ПВД перед выгрузкой
Запрос= Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
|    ПоступлениеТоваровУслугТовары.Ссылка,
|    ПоступлениеТоваровУслугТовары.Номенклатура как Номенклатура,
|    ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения,
|    СУММА(ПоступлениеТоваровУслугТовары.Количество) КАК Количество,
|    ПоступлениеТоваровУслугТовары.КоличествоМест,
|    ПоступлениеТоваровУслугТовары.Коэффициент,
|    СУММА(ПоступлениеТоваровУслугТовары.Сумма) КАК Сумма,
|    ПоступлениеТоваровУслугТовары.Цена,
|    ПоступлениеТоваровУслугТовары.СтавкаНДС,
|    СУММА(ПоступлениеТоваровУслугТовары.СуммаНДС) КАК СуммаНДС
|ИЗ
|    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
|ГДЕ
|    ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
|    ПоступлениеТоваровУслугТовары.Ссылка,
|    ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения,
|    ПоступлениеТоваровУслугТовары.КоличествоМест,
|    ПоступлениеТоваровУслугТовары.Коэффициент,
|    ПоступлениеТоваровУслугТовары.Номенклатура,
|    ПоступлениеТоваровУслугТовары.Цена,
|    ПоступлениеТоваровУслугТовары.СтавкаНДС";

Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
Выгрузка=Запрос.Выполнить().Выгрузить();

ВходящиеДанные = Новый Структура("Товары");
ВходящиеДанные.Товары= Новый ТаблицаЗначений;
ВходящиеДанные.Товары.Колонки.Добавить("Номенклатура");
ВходящиеДанные.Товары.Колонки.Добавить("ЕдиницаИзмерения");
ВходящиеДанные.Товары.Колонки.Добавить("Количество");
ВходящиеДанные.Товары.Колонки.Добавить("КоличествоМест");
ВходящиеДанные.Товары.Колонки.Добавить("Коэффициент");
ВходящиеДанные.Товары.Колонки.Добавить("Сумма");
ВходящиеДанные.Товары.Колонки.Добавить("Цена");
ВходящиеДанные.Товары.Колонки.Добавить("СтавкаНДС");
ВходящиеДанные.Товары.Колонки.Добавить("СуммаНДС");

Для каждого ТекСтрока Из Выгрузка Цикл
НовСтрока               = ВходящиеДанные.Товары.Добавить();
НовСтрока.Номенклатура          = ТекСтрока.Номенклатура;
НовСтрока.ЕдиницаИзмерения          = ТекСтрока.ЕдиницаИзмерения;
НовСтрока.Количество          = ТекСтрока.Количество;
НовСтрока.КоличествоМест          = ТекСтрока.КоличествоМест;
НовСтрока.Коэффициент          = ТекСтрока.Коэффициент;
НовСтрока.Сумма          = ТекСтрока.Сумма;
НовСтрока.Цена          = ТекСтрока.Цена;
НовСтрока.СтавкаНДС          = ТекСтрока.СтавкаНДС;
НовСтрока.СуммаНДС          = ТекСтрока.СуммаНДС;

КонецЦикла;
ВыгрузитьПоПравилу(Объект, ,ВходящиеДанные, ,"ПоступлениеТоваровУслуг");
2 Cyberhawk
 
04.07.16
10:01
Правильно писать "не так".
По теме: попробуй в ВыгрузитьПоПравилу вот так:
ВыгрузитьПоПравилу(Объект, , ВходящиеДанные, ВходящиеДанные, "ПоступлениеТоваровУслуг");
3 Azmarika
 
04.07.16
10:08
Спасибо за ответ. Поменяла, но ошибка не изменилась. А в ПКС Номенклатуры, кроме как поставить галочку "Получить значение из входящих данных" может ещё что надо?
4 Pro-tone
 
04.07.16
10:20
(0)

ВыгрузитьПоПравилу(Источник,
                                   Приемник,
                                   ВходящиеДанные,
                                   ИсходящиеДанные,
                                   ИмяПКО,
                                   УзелСсылки,
                                   ТолькоПолучитьУзелСсылки,
                                   ПКО,
                                   ЭтоПравилоСГлобальнойВыгрузкойОбъектов,
                                   ВыборкаДляВыгрузкиДанных)

у тебя при выгрузке формируются исходящие данные, а не входящие, это первое

второе, у тебя идет конвертация табчасти "Товары", а в понятиях КД - это структура с набором полей
5 Cyberhawk
 
04.07.16
10:21
(3) Галочку надо ставить у ПКГС, а у ПКС внутри ПКГС - снять
6 Pro-tone
 
04.07.16
10:23
общая структура конвертации документа выглядит так
Структура (Ревизит1,Реквизит2, Табчасть1, Табчасть2,..), где табчасть - это таблица значений с именем таким же как у дока-приемника (Товары,Цены,Расшифровка платежа и т.п.)
7 Pro-tone
 
04.07.16
10:25
если ты передаешь в исходящие данные ТЗ, то выгружаешь все равно остальные поля, но зачем это нужно вообще в данном случае заморачиваться с ними? просто выгружаешь нужный док в нужный док, а серии, в твоем случае просто не переносишь, поставь в ПКО серий перед выгрузкой Отказ=Истина и все
8 Azmarika
 
04.07.16
10:32
7, тогда у меня будет в таб.части количество строк одной и той же номенклатуры только без серий
9 Azmarika
 
04.07.16
10:33
А мне надо чтобы количество суммировалось по сериям
10 Azmarika
 
04.07.16
10:34
Поставила галочку в ПКГС, и выгрузился документ один в один - не из запроса
11 Pro-tone
 
04.07.16
10:42
(10) тип выборки - произвольный алгоритм должен быть
12 Azmarika
 
04.07.16
11:30
А в алгоритме что указывать?
13 Azmarika
 
04.07.16
12:54
Может есть ещё какие идеи, пробовала по-всякому и стандартный алгоритм и произвольный, когда у ПКГС ставишь галочку "Входящие данные", то выгружает документ один в один, если ставишь напротив номенклатуры, то номенклатуру не находит ((((
14 Cyberhawk
 
04.07.16
13:43
Обойди ПКГС "Товары" и просто сверни эту коллекцию, и не надо других ПКО / ПВД / входящих галочек
15 Azmarika
 
04.07.16
14:18
Вот спасибо! А свертку надо делать в ПВД после выгрузки?
16 Azmarika
 
04.07.16
14:33
14!!! Большое спасибо, Святой Вы человек! ))) Все получилось.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший