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

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

Метки: 

Конвертация - Из двух таблиц Источника в одну таблицу Приемника

Я
   55reg
 
18.07.18 - 16:37
Есть УТ 10.3 БП 3 
Нужно перенести Оплаты платежными картами и оплаты сертификатами (руками до меня разделили эти оплаты на 2 табличные части Оплаты - Типовая и Гашение под серт - добавленная). У таблиц Источника разные Типы колонок - Справочники.ВидыОплат и Справочники.Номенклатура, суммы - Число. В БП это все одна таблица - Оплаты Организации.  

Внимание вопрос - как слить в одну таблицу все это хозяйство ???
Делая по очереди - затирает, НеОчищать не помогает естественно...
//КоллекцияОбъектов = Источник.ПогашениеПодарочныхСертификатов.Выгрузить();

//Для Каждого СтрокаТЧ Из Источник.ОплатаПлатежнымиКартами Цикл
  //  НоваяСтрока = КоллекцияОбъектов.Добавить();

  // ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТЧ); // Где определять пкс объектов второй таблицы ??? 

//КонецЦикла;

Это помогает - но мне нужно описать правила конвертации свойств ! Так понял таблицы если их сливать должны быть с одинаковыми Типами ? А так выгружает строки без значений (красные подчеркивания в пустых строках)

Или это все не возможно ? Всем заранее спасибо за любую инфу...
 
  Рекламное место пустует
   hhhh
 
1 - 18.07.18 - 16:41
да, опиши правила конвертации свойств сначала
   xxTANATORxx
 
2 - 18.07.18 - 16:51
емнип два отдельных правила нужно
   hhhh
 
3 - 18.07.18 - 16:54
(2) нет, не нужно. просто одно правило, но в табчасти задается Приемник, а источник пусто.
   55reg
 
4 - 18.07.18 - 17:01
Если кто знает - можете пример кода скинуть ? Т е я в ПКГС первой таблицы описываю пкс для обеих таблиц или как ? Так то на словах все просто - а написать то как ?
   55reg
 
5 - 18.07.18 - 17:04
Например ПКС Под серт -> СуммаОплаты у меня вот такой вот еще ...
Если Строка(ОбъектКоллекции.ПодарочныйСертификат) = "Подарочный сертификат 300" Тогда
Значение = 300;
КонецЕсли;

Если Строка(ОбъектКоллекции.ПодарочныйСертификат) = "Подарочный сертификат 500" Тогда
Значение = 500;
КонецЕсли;

Если Строка(ОбъектКоллекции.ПодарочныйСертификат) = "Подарочный сертификат 1000" Тогда
Значение = 1000;
КонецЕсли;

Если Строка(ОбъектКоллекции.ПодарочныйСертификат) = "Подарочный сертификат 1500" Тогда
Значение = 1500;
КонецЕсли;
   55reg
 
6 - 18.07.18 - 18:35
Выгружает но пустые строки .... Как описать правила для второй таблицы ОплатыПлатежнымиКартами...
   hhhh
 
7 - 18.07.18 - 18:37
(6) наверно просто надо
ПКС -> СуммаОплаты

зачем ПодСерт ?
   55reg
 
8 - 19.07.18 - 06:32
Кажется понял )) Убрал в ТаблицеИсточника все типы, Прописал там для каждой колонки - 
Значение = ОбъектКоллекции.ВидОплаты;
Значение = ОбъектКоллекции.СуммаОплаты;
а в ПКГС первой таблицы что то типа такого (правда пока не получилось синтаксически оформить правильно запрос, Конвертация думает что это реквизиты шапки, а когда таблицы указываешь ругается на синтаксис, если что двумя запросами сделаю к обеим таб частям и солью в одну коллекцию попробую)
ТекущийДокумент = Источник.Ссылка;

Запрос = Новый Запрос;
    Запрос.Текст = 
"ВЫБРАТЬ
|    ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами.ВидОплаты,
|    ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами.Сумма
|ИЗ
|    Документ.ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами КАК ОтчетОРозничныхПродажахОплатаПлатежнымиКартами
|ГДЕ
|    ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка = &ТекущийДокумент
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
|    ОтчетОРозничныхПродажахПогашение.ПодарочныхСертификатов.ПодарочныйСертификат,
|    1
|ИЗ
|    Документ.ОтчетОРозничныхПродажах.ПогашениеПодарочныхСертификатов КАК ОтчетОРозничныхПродажахПогашениеПодарочныхСертификатов
|ГДЕ
|    ОтчетОРозничныхПродажахПогашениеПодарочныхСертификатов.Ссылка = &ТекущийДокумент";

Запрос.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);

Выборка = Запрос.Выполнить().Выбрать();

    
    КоллекцияОбъектов = Новый ТаблицаЗначений();
    КоллекцияОбъектов.Колонки.Добавить("ВидОплаты");
    КоллекцияОбъектов.Колонки.Добавить("Сумма");
    
    Пока Выборка.Следующий() Цикл
    
        СтрокаТаблицы = КоллекцияОбъектов.Добавить();
        
        СтрокаТаблицы.ВидОплаты = Выборка.ВидОплаты;
        СтрокаТаблицыЗП.Сумма = Выборка.Сумма;
    
    КонецЦикла;
   Optan
 
9 - 19.07.18 - 06:51
(0) В ПВД собери две ТЧ в 1 используя свои преобразования как, например, в (5).

В ПКО для составного реквизита ТЧ в событии "Перед выгрузкой" управляй переменной "ИмяПКО" в зависимости от типа значения. Либо сразу при заполнении ТЧ все преобразовывай единообразно.

У тебя для ТЧ=ПогашениеПодарочныхСертификатов в колонке Номенклатура в БП что будет стоять?
   55reg
 
10 - 19.07.18 - 07:03
Опять касяк какой то ! Такое ощущение что запрос ничего не выдает ! А как это проверить !? В консоли запросов все формируется


Ошибка в обработчике события ПередОбработкойВыгрузки группы свойств
    ПКО                    =  ОтчетОРозничныхПродажах  (Документ: Отчет о розничных продажах)
    ПКГС                   =  46  (--> Оплата)
    Объект                 =  Отчет о розничных продажах ЗВС00000110 от 18.07.2018 20:03:55  (Документ объект: Отчет о розничных продажах)
    Обработчик             =  ПередОбработкойВыгрузкиГруппыСвойств
    ОписаниеОшибки         =  Поле объекта не обнаружено (ВидОплаты)
    ПозицияМодуля          =  (28)
    КСообщенияОбОшибках    =  48
 
  Рекламное место пустует
   55reg
 
11 - 19.07.18 - 07:09
(9) В БП3 - ТипОплатыОрганизации (Это все работает но по отдельности) Да, описывал конечно как нужно конвертировать из УТ Тип Номенклатура в Тип Вид оплат для БП.

У меня все выгружало но затирало друг друга т е или серт или оплаты )

Как описать, без отдельного ПКС, в ПКГС ОДНОЙ таблицы для двух, как нужно конвертировать Номенклатуру в вид оплаты я незнаю в этом и проблема...

Увы про ПВД и дальше ничего не понял ... Видимо еще мало опыта.
ps
Неделя к концу мотивации все меньше и меньше этим заниматься - проще такую же табличную часть в БП добавить )))
   МимохожийОднако
 
12 - 19.07.18 - 07:19
Попробуй запросом получить одну таблицу из двух в источнике
   55reg
 
13 - 19.07.18 - 07:23
Лучшая работа в мире, лучшая работа в жизни!
Ярость (2014)

зы

Всем огромное спасибо за поддержку ! Под конец сам себя перемудрил. Да, в итоге запросом получил - и передал в Коллекцию (почти так как описывал выше только синтаксис нужно подправить и логику)
Чуть позже отпишу как точно нужно писать, вдруг кому то пригодиться !


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