Конвертация реквизита в реквизит табличной части

Конвертация шапки документа в табличную часть

Ключевые слова: Конвертация данных

Столкнулся как то спроблемой конвертации реквизитов шапки одного документа в табличную часть

другого документа.

Если кто знает в УПП есть документ «Взаимозачет» который содержит табличную часть «СуммыДолга».

Вот в его ТЧ и надо было

сконвертировать документ из нетиповой конфигурации «Перезачет», в нем есть два реквизита

«КонтрагентС» и «КонтрагентНа» и реквизит «СуммаДолга».

Задача в том чтобы эти реквизиты шапки перейшли в ТЧ «СуммыДолга» документа «Взаимозачет».

Решение:

1. Создаем ПКО Перезачет->Взаимозачет.

2. Создаем ПКС конвертации простых типов (Дата и Номер документа):

                 ДатаДок -> Дата

                 НомерДок -> Номер

3. Создаем ПКГС только с заполненным Приемником «СуммыДолга» (табличная часть документа

Взаимозачет).

4. В обработчике ПередОбработкой ПКГС  заполняем встроенную переменную КоллекцияОбъектов (тип

ТаблицаЗначений) значениями с шапки:

                       
                  КоллекцияОбъектов = СоздатьОбъект(«ТаблицаЗначений»);

                  КоллекцияОбъектов.НоваяКолонка(«Контрагент»);

                  КоллекцияОбъектов.НоваяКолонка(«ДоговорКонтрагента»);

                  КоллекцияОбъектов.НоваяКолонка(«СуммаУвеличение»);

                  КоллекцияОбъектов.НоваяКолонка(«СуммаУменьшение»);

             
                  КоллекцияОбъектов.НоваяСтрока();

              КоллекцияОбъектов.Контрагент         = Источник.КонтрагентC;  

              КоллекцияОбъектов.ДоговорКонтрагента = Источник.КонтрагентC.Договор;

              КоллекцияОбъектов.СуммаУвеличение    = 0;

              КоллекцияОбъектов.СуммаУменьшение    = Источник.СуммаДолга;

              КоллекцияОбъектов.НоваяСтрока();

              КоллекцияОбъектов.Контрагент         = Источник.КонтрагентНа;  

              КоллекцияОбъектов.ДоговорКонтрагента =

Источник.КонтрагентНа.Договор;

              КоллекцияОбъектов.СуммаУвеличение    = Источник.СуммаДолга;

              КоллекцияОбъектов.СуммаУменьшение    = 0;    

   
5. Создаем четыре (в моем случае) ПКС табличной части с пустыми источниками:

                        -> Контрагент

                        -> ДоговорКонтрагента

                        -> СуммаУвеличение

                        -> СуммаУменьшение

6. Все правило конвертации готово!

Добрый день. Подскажите, пожалуйста, каким образом настроить правила конвертации так, чтобы 3 реквизита справочника «Контрагенты» конфигурации-источника были записаны в табличную часть справочника «Контрагенты» конфигурации-приемника в виде строк табличной части? Значения реквизитов табличной части имеет непримитивный вид.

в ПКО создать ПКГС имени ТЧ. В ПКГС ПередОбработкой создать и заполнить КоллекцияОбъектов как ТЗ

Перед выгрузкой формируешь ВходящиеДанные А для Таб части приемника ставишь «Получить из входящих данных»

+ Структура должна совпадать

Про этот способ я знаю, но вся проблема в том, что некоторые реквизиты табличной части имеют не примитивный, а ссылочный тип, в частности ссылаются на план видов характеристик конфигурации-приемника.

попробуй указывать ИмяПКО в зависимости от типа

Мой способ проще. Через Входящие данные, при наличии правил для объектов по ссылкам, проблем не будет.

Подскажите, пожалуйста, каким образом эти входящие данные формировать? Очень давно уже делал подобное, но уже ничего не помню.

В помощи по КД все доступно описано

Создаешь структуру под названием ВходящиеДанные. Элементы соответствует всем полям с пометкой «Получить из входящих данных». Если это табчасть, то элемент типа ТаблицаЗначений

Как создавать коллекциюОбъектов я знаю, я не могу понять, каким образом для значений колонок коллекцииОбъектов присваивать значения из плана видов характеристик конфигурации-приемника. Раньше это я для отдельных свойств ПКО делал через переменную «Выражение», как это можно сделать при создании коллекцииОбъектов описанными Вами способом?

в ПКС Свойство Выражение = «ПВХ.Свойства.» + ОбъектКоллекции.Свойство

При этом ПредставлениеСтр — реквизит шапки приемника, Строки  — таб. часть приемника с реквизитами «ВидВзаиморасчетов», «Сумма»

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Категории

  Иногда требуется передать параметр для строки табличной части в выгрузке конвертации.

  Например, такая задача может возникнуть если одна из конфигураций была изменена(добавлен реквизит в табличную часть). В моем случае это конфигурация-приемник. В табличную часть «Товары» документа «Отчет о розничных продажах», конфигурации «Управление торговлей» 10.3 добавлен реквизит «Консультант» типа «Справочник.ФизическиеЛица». В него надо передавать значение реквизита «Продавец» из табличной части «Товары», из конфигурации «Розница» 2.х.

  Задачу можно решить, например, обновлением метаданных конфигурации-приемника, но быстрее, в данном случае будет передать это значение через параметр.

  В табличной части «Товары» ПКО «Отчет о розничных продажах» создаем новый параметр:

  

 Далее прописываем в обработчик «ПослеЗагрузки» ПКО «Отчет о розничных продажах» следующий код:

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

Автоматизация хаоса

Контакты:

Телефон: +7 963 570 26 00

E-mail: al_zzz@mail.ru

Дизайн сайта:

Веб-дизайн и верстка: Зелёнкина Елена

8 963 578 05 35, lena_431@mail.ru

Довольно часто встречается задача выгрузить при помощи «Конвертация данных, редакция 2.1» контактной информации контрагента из «Управление торговлей», редакция 10.3» в «Бухгалтерия предприятия, редакция 3.0». Сложность заключается в том, что в УТ контактная информация хранится в регистре сведений, а в БП — в табличной части справочника «Контрагенты».

Предлагаю мое, достаточно простое, решение данной задачи.

1. В правило конвертации объектов (ПКО) «Контрагенты» добавляем конвертацию свойств (ПКС) табличной части «КонтактнаяИнформация», причем не указываем источник и ставим галку «получать из входящих данных». Добавляем все, необходимые реквизиты табличной части.

Контрагенты - Контактная иняормация

2. Открываем ПКО «Контрагенты» и добавляем ниже следующий код в обработчик «Перед выгрузкой».

Выгрузка контактной информации

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

Пока

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

Суть в том, что мы программно создаем табличную часть «Контактная информация» и подставляем ее для выгружаемого объекта в качестве входящих данных.

Следует обратить внимание, что инициализация параметра «ВходящиеДанные», и передача в него таблицы значений со всеми необходимыми колонками, обязательна для каждого объекта. В противном случае, будет возникать ошибка типа «Ошибка получения свойства подчиненного объекта из входящих данных».

  1. 13.03.2017, 21:57


    #1

    kolinmk вне форума


    Пришел за помощью


    Регистрация
    03.12.2010
    Сообщений
    25
    Сказал(а) спасибо
    2
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию КД 2 Реквизит документа в реквизит ТЧ

    Добрый вечер.
    Переношу данные из 77 в 8. У источника есть Реквизит, мне нужно подставить во все строки ТЧ приемника этот реквизит. Как это лучше сделать?


  2. 14.03.2017, 15:00


    #2

    avm3110 вне форума


    Гордость форума PRO


    Регистрация
    29.01.2010
    Сообщений
    1509
    Сказал(а) спасибо
    30
    Поблагодарили 261 раз(а) в 245 сообщениях

    По умолчанию Re: КД 2 Реквизит документа в реквизит ТЧ

    В процедуре «При загрузке» на стороне приемника.



����������
���������������� �� 1�:����������� 7.7 � 8.0

� ����� �����!

� ����� ��� � ����� �������!

�������� «����» ���������� �� ������ �� ��������� ��������� � �������
��������� ������ ��������� 1�.

������������� ���������� 3,4,5,6,7,8,9,10,11 ������!

������� ������:

  • ��������� ����� �������� — 40’000-80’0000 ������ «�� ����»
  • �������
  • ����������
  • ����������� �������
  • ��������� ������� � ���������� ������
  • �������
  • ���������� ��������� ������������ �� ���� ��������
  • ������������� �����������
  • ���� �. �����������
  • �������� ����������� ����������������� �����
  • � ����������� �� ������� ����� ������ � ����� ��� � �������� (�� �����
    1-2 �������� � ����)

����������:

  • ���� ���������������� 1� 7.7 ��� 8.0 �� 2-� ���.
  • ������ ���������� ��������. �������� �������������� ������ ���� �
    ����������� �����.
  • ���������� ������� ������������ «1�:����������» � «1�:������������»
  • ������ ��������
  • ���������� � ����������������� ��� ����������������� �����

E-mail: job@pb.ru
�������: 105-51-59
www.pb.ru


����������� ����� ��������� � ��������� �����

���������� ��� �� ���������� ����������� ���������� ����� ������ ��������� � ��������� ����� ������� ���������.

���� ��� �����, � ��� ���� �������� «�����������» ������� �������� ��������� ����� «����������». ��� � ��� �� � ���� ����

��������������� �������� �� ��������� ������������ «���������», � ��� ���� ��� ��������� «�����������» � «������������» � �������� «����������».
������ � ��� ����� ��� ��������� ����� �������� � �� «����������» ��������� «�����������».

�������:

1. ������� ��� ���������->�����������.

2. ������� ��� ����������� ������� ����� (���� � ����� ���������):

                 ������� -> ����

                 �������� -> �����

3. ������� ���� ������ � ����������� ���������� «����������» (��������� ����� ��������� �����������).

4. � ����������� ��������������� ����  ��������� ���������� ���������� ����������������� (��� ���������������) ���������� � �����:

                       

                  ����������������� = �������������(«���������������»);

                  �����������������.������������(«����������»);

                  �����������������.������������(«������������������»);

                  �����������������.������������(«���������������»);

                  �����������������.������������(«���������������»);

             

                  �����������������.�����������();

              �����������������.����������         = ��������.����������C;  

              �����������������.������������������ = ��������.����������C.�������;

              �����������������.���������������    = 0;

              �����������������.���������������    = ��������.����������;

              �����������������.�����������();

              �����������������.����������         = ��������.������������;  

              �����������������.������������������ = ��������.������������.�������;

              �����������������.���������������    = ��������.����������;

              �����������������.���������������    = 0;    

   
5. ������� ������ (� ���� ������) ��� ��������� ����� � ������� �����������:

                        -> ����������

                        -> ������������������

                        -> ���������������

                        -> ���������������

6. ����������� � ���� ��� � ����������� �������������� ��������� ��� (��� ������� ����):

                        �������� = ���������������.����������;    

                        �������� = ���������������.������������������;

                        �������� = ���������������.���������������;

                        �������� = ���������������.���������������;

7. ��� ������� ����������� ������! 


�����������
���� �������� — www.mista.ru

��������� ����� —
www.forum.mista.ru
�����
������ —
www.kb.mista.ru

� ���������,
��������� �������� (���������)
stasmit@mail.ru


Понравилась статья? Поделить с друзьями:
  • Лента на ленинградском шоссе часы работы сегодня
  • Конкурс для веселой компании взрослых с подвохом
  • Лента на ярославском шоссе тарасовка часы работы
  • Конкурсы в сауне для компании смешные корпоратив
  • Лента савелкинский проезд зеленоград часы работы