8.х ОБМЕН Конвертация. Источник запрос, приемник документ с табличной частью

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем ЧКДзержинский, 24 мар 2016.

  1. TopicStarter Overlay
    ЧКДзержинский
    Offline

    ЧКДзержинский Опытный в 1С

    Регистрация:
    7 дек 2006
    Сообщения:
    487
    Симпатии:
    3
    Баллы:
    29
    Решено
    Последнее редактирование: 24 мар 2016
  2. TopicStarter Overlay
    ЧКДзержинский
    Offline

    ЧКДзержинский Опытный в 1С

    Регистрация:
    7 дек 2006
    Сообщения:
    487
    Симпатии:
    3
    Баллы:
    29
    Вроде и инете достаточно информации, но что-то подробно не нашел. Короче говоря, если кто-то так же будет копаться, то вот более-менее подробная инструкция:
    Создаем конвертацию в справочнике Конвертации и переходим к правилам (кнопка "Перейти к правилам")
    Создаем правило конвертации объектов (ПКО) (например "ПоступлениеТоваровУслуг") со следующими настройками:
    Объект-источник: Пусто
    Объект-Приемник: документ из базы-приемника
    ИмяПравила: ПоступлениеТоваровУслуг.

    Переходим на вкладку "Правила выгрузки данных" и создаем новое ПВД с настройками:
    Объект выборки: пусто
    Способ выборки: Произвольный алгоритм
    Правило конвертации: ПоступлениеТоваровУслуг.

    В обработчике ПередОбработкой нужный код, вот пример:

    Код:
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Услуги.Ссылка, Услуги.Ссылка.Номер КАК Номер, Услуги.Ссылка.Проведен, Услуги.Ссылка.ПометкаУдаления,
    |    Услуги.Ссылка.Дата КАК Дата, Услуги.Ссылка.Организация, Услуги.Ссылка.Контрагент, Услуги.Ссылка.ДоговорКонтрагента,
    |    Услуги.*, Бух.*
    |ИЗ
    |    Документ.ПоступлениеТоваров.Услуги КАК Услуги
    |    ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто() КАК Бух ПО Бух.Регистратор = Услуги.Ссылка
    |ГДЕ
    |    Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
    |ИТОГИ ПО
    |    Ссылка";
    Запрос.УстановитьПараметр("ДатаНачала"  , ДатаНачала);
    Запрос.УстановитьПараметр("ДатаОкончания"  , ДатаОкончания);
    Результат = Запрос.Выполнить();
    Если НЕ Результат.Пустой() Тогда
        ВыборкаПоДокументам = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
        Пока ВыборкаПоДокументам.Следующий() Цикл
            СтруктураДокумента = Новый Структура("Номер, Дата, Проведен, ПометкаУдаления, Организация, Контрагент, ДоговорКонтрагента,Услуги");
    
            СтруктураДокумента.Услуги = Новый ТаблицаЗначений;
            СтруктураДокумента.Услуги.Колонки.Добавить("Номенклатура");
            СтруктураДокумента.Услуги.Колонки.Добавить("Количество");
            СтруктураДокумента.Услуги.Колонки.Добавить("Цена");
            СтруктураДокумента.Услуги.Колонки.Добавить("Сумма");
            СтруктураДокумента.Услуги.Колонки.Добавить("СчетЗатрат");
            СтруктураДокумента.Услуги.Колонки.Добавить("Субконто1");
            СтруктураДокумента.Услуги.Колонки.Добавить("Субконто2");
            СтруктураДокумента.Услуги.Колонки.Добавить("Субконто3");
       
            Ссылка = ВыборкаПоДокументам.Ссылка;
            СтруктураДокумента.Номер = Ссылка.Номер;
            СтруктураДокумента.Дата = Ссылка.Дата;
            СтруктураДокумента.Проведен = Ссылка.Проведен;
            СтруктураДокумента.ПометкаУдаления = Ссылка.ПометкаУдаления;
            СтруктураДокумента.Организация = Ссылка.Организация;
            СтруктураДокумента.Контрагент = Ссылка.Контрагент;
            СтруктураДокумента.ДоговорКонтрагента = Ссылка.ДоговорКонтрагента;
       
            ВыборкаТабЧасти = ВыборкаПоДокументам.Выбрать();
            Пока ВыборкаТабЧасти.Следующий() = 1 Цикл
                НоваяСтрока              = СтруктураДокумента.Услуги.Добавить();
                ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаТабЧасти);   
                НоваяСтрока.Субконто1 = ВыборкаТабЧасти.СубконтоДт1;
                НоваяСтрока.Субконто2 = ВыборкаТабЧасти.СубконтоДт2;
                НоваяСтрока.Субконто3 = ВыборкаТабЧасти.СубконтоДт3;
            КонецЦикла;
       
            ВыгрузитьПоПравилу(СтруктураДокумента, , , , "ПоступлениеТоваровУслуг");
        КонецЦикла;
    КонецЕсли;
    В правилах конвертации свойств в колонке "Получить из входящих данных" НЕ ставить галочки.
    Последнее редактирование: 25 мар 2016

Поделиться этой страницей