Имя: Пароль:
1C
1С v8
КД как выгрузить ТЧ документа в ТЗ
,
0 1c_nub
 
17.11.17
15:39
Добрый день.
Есть задача из УТ 11 выгрузить документ поступления в БП
В УТ товары и услуги в одной ТЧ, а в БП две разные.

Я в ПВД документа ПередВыгрузкой я прописал:
Сообщить(Объект.Ссылка);
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
    |    ПоступлениеТоваровУслугТовары.Сумма КАК Сумма,
    |    ПоступлениеТоваровУслугТовары.СтавкаНДС КАК СтавкаНДС,
    |    ПоступлениеТоваровУслугТовары.СуммаНДС КАК СуммаНДС,
    |    ПоступлениеТоваровУслугТовары.СуммаСНДС КАК СуммаСНДС,
    |    ПоступлениеТоваровУслугТовары.Количество КАК Количество
    |ИЗ
    |    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
    |ГДЕ
    |    ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка
    |    И ПоступлениеТоваровУслугТовары.Номенклатура.ВидНоменклатуры = &ВидНоменклатуры";
    Запрос.УстановитьПараметр("Ссылка",Объект.Ссылка);  
    Запрос.УстановитьПараметр("ВидНоменклатуры",Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Товар"));
    Результат = Запрос.Выполнить().Выгрузить();
    Сообщить("Колич товаров: "+Результат.Количество());
    Результат.Свернуть(,"Сумма,СуммаНДС,СуммаСНДС,Количество");
    ИсходящиеДанные  = Новый Структура("Товары", Результат);

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
    |    ПоступлениеТоваровУслугТовары.Сумма КАК Сумма,
    |    ПоступлениеТоваровУслугТовары.СтавкаНДС КАК СтавкаНДС,
    |    ПоступлениеТоваровУслугТовары.СуммаНДС КАК СуммаНДС,
    |    ПоступлениеТоваровУслугТовары.СуммаСНДС КАК СуммаСНДС,
    |    ПоступлениеТоваровУслугТовары.Количество КАК Количество
    |ИЗ
    |    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
    |ГДЕ
    |    ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка
    |    И ПоступлениеТоваровУслугТовары.Номенклатура.ВидНоменклатуры = &ВидНоменклатуры";
    Запрос.УстановитьПараметр("Ссылка",Объект.Ссылка);  
    Запрос.УстановитьПараметр("ВидНоменклатуры",Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Услуга"));
    Результат = Запрос.Выполнить().Выгрузить();
    Сообщить("Колич Услуг: "+Результат.Количество());
    Результат.Свернуть(,"Сумма,СуммаНДС,СуммаСНДС,Количество");
    ИсходящиеДанные.Вставить("Услуги",Результат);

Но что-то в файле выгрузки ничего нет ни товаров ни услуг.
1 MaxS
 
17.11.17
15:41
Нужно хотя бы в отладчике глянуть дошла ли таблица до ПКО.
2 john90
 
17.11.17
15:42
шутишь???
ТЗ = ТЧ.Выгрузить();
правильно сделать - это написать правила конвертации табличных частей.
3 Ёпрст
 
17.11.17
15:43
(0) а что по-твоему должно происходить при этом ?
4 Ёпрст
 
17.11.17
15:43
ты всего лишь заполнил структуру ИсходящиеДанные. И всё..
5 Ёпрст
 
17.11.17
15:45
ну и..есть же типовые правила ут-бп.
6 1c_nub
 
17.11.17
15:47
(5) Типовые? Вы из поищите, я не нашел. В последних версиях сделано через универсальный. Я не нашел самих правил нигде
(4) А эту структуру как выгрузить теперь?
7 1c_nub
 
17.11.17
15:48
из = их*
8 john90
 
17.11.17
15:48
(6) регистрсведений.правилаобмена
9 1c_nub
 
17.11.17
15:49
(1) Все дошло. В коде есть "Сообщить" оно отрабатывает
10 1c_nub
 
17.11.17
15:52
Нужно ли Способ выборки ставить на Произвольный алгоритм?
Я вроде как хочу, чтобы все реквизиты документа заполнялись по правилам, а ТЧ выгрузить в две ТЗ и потом уже при загрузке их отрабатывать
11 john90
 
17.11.17
15:53
(10) смотри типовые правила, нет
12 Ёпрст
 
17.11.17
15:54
(6) ну, в ПКО соответствующем ставить галку - получить из входящих данных
13 1c_nub
 
17.11.17
15:56
(12) Это есть. На ПКОГС на табличной части "Товары" галку установил.
14 john90
 
17.11.17
15:59
(13) последний раз говорю, не изобретай велосипед! тебе не нужно делать так как ты это делаешь, необходимо посмотреть типовые правила. напиши ПКО, там создай правила для ТЧ 1. ТоварыУслуги -> Товары и 2. ТоварыУслуги -> Услуги.
15 Ёпрст
 
17.11.17
16:00
и вот это, тоже зач о т
Результат.Свернуть(,"Сумма,СуммаНДС,СуммаСНДС,Количество");
16 Ёпрст
 
17.11.17
16:02
+15 тебе нужны только числовые колонки ?
17 Ёпрст
 
17.11.17
16:03
если че, после свернуть останутся только Сумма,СуммаНДС,СуммаСНДС,Количество
18 1c_nub
 
17.11.17
16:05
(17) так и надо. Просто не писал, но задача свернуть еще все товары и отдельно услуги в одну строку.
19 1c_nub
 
17.11.17
16:07
(14) Вот где мне их найти? Нет макетов правил в конфе. Сейчас универсальный формат как-то их генерирует, я нигде не нашел эти правила.
В РС искал, там только код и нет правил макетов.
20 Ёпрст
 
17.11.17
16:09
Ладно, забей на пфд.

открой ПКО твоего документа и в
ПКГС в Перед обработкой напиши заполнение
КоллекцииОбъектов. усё.
21 Ёпрст
 
17.11.17
16:10
*забей на ПВД
22 john90
 
17.11.17
16:13
(19) не там ищешь! смотри в планах обмена, например в торговле план обмена -
ОбменУправлениеТорговлейБухгалтерияПредприятия
23 john90
 
17.11.17
16:14
а вот если откроешь регистрсведений.правилаобмена в режиме предприятия, то там есть даже кнопка, выгрузить в файл. все разжевывать нужно.
24 1c_nub
 
17.11.17
16:31
(23) Благодарю, действительно там правила нашел. А я тупил, искал в конфигураторе, а нужно было в режиме предприятия
25 1c_nub
 
17.11.17
19:40
Посмотрел как в типовых.
Перенес свой код в ПКО документа в ПередВугрузкойОбъекта
Вылетает с одибкой:
"значение не является объектного типа Вставить 1с 8.3"
ЧЯДНТ?
26 mikecool
 
17.11.17
21:12
(25) указал для строки пко