Вход | Регистрация


1С:Предприятие ::

Метки: 

КД как выгрузить ТЧ документа в ТЗ

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

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

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

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

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



Список тем форума
Рекламное место пустует  
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует