8.х ОБМЕН Вопрос по конвертации

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем Алексей1989, 7 май 2013.

  1. TopicStarter Overlay
    Алексей1989
    Offline

    Алексей1989 Опытный в 1С

    Регистрация:
    15 июл 2011
    Сообщения:
    613
    Симпатии:
    0
    Баллы:
    26
    Добрый день. Подскажите, пжл, как можно решить следующую задачу. Есть документ-источник с табличной частью и документ-приемник. В зависимости от того, сколько строк в табличной части документа-источника должно создаваться соответствующее количество документов-приемника. Т.е. если в табличной части документа-источника 2 строки, то в результате конвертации должно будет создаться 2 документа-приемника.
  2. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    для документа-приемника делаете ПКО без источника. далее в зависимости от того, как выгружаются документы-источники.
    1. только через ПВД
    в этом случае в обработчике ПередВыгрузкой ПВД формируете структуру, повторяющую документ-приемник для каждой строки источника и вызываете ВыгрузитьПоПравилу(Структура,,,,"ПравилоКонвертации")
    либо в ПКО заполнение полей делаете из расчета, что в качестве источника придет строка документа (нужно программно заполнять реквизиты, которые берутся из шапки источника) и вместо структуры передаете строку документа. После всего этого выставляете отказ.
    2. Нужна выгрузка по ссылке
    2.1 через алгоритм. делаете алгоритм, который будет действовать по принципу п.1 и вызывайте его в обработчике ПередВыгрузкой в ПКС, содержащих документ-источник
    2.2 делаете ПКО источник-приемник, в котором в обработчике ПКО ПередВыгрузкой выполните действия из п.1, после чего установить отказ
  3. TopicStarter Overlay
    Алексей1989
    Offline

    Алексей1989 Опытный в 1С

    Регистрация:
    15 июл 2011
    Сообщения:
    613
    Симпатии:
    0
    Баллы:
    26
    Что-то не получается у меня. Как я делаю:

    1. Создал новое ПКО ПКО_доработка, в котором не указывал источника, а указал только приемника.
    2. Добавил ПКС для номера и даты, у всех выставил галочку "Получить из входящих данных".
    3. В правилах выгрузки данных создал правило выгрузки данных "ПКО_доработка", в событии "Перед выгрузкой" которого добавил следующий код:
    Код:
    Для Каждого Строка Из Объект.РасшифровкаПлатежа Цикл
    ВходящиеДанные = Новый Структура;
    ВходящиеДанные.Вставить("Номер",Объект.Номер);
    ВходящиеДанные.Вставить("Дата",Объект.Дата);
    ВыгрузитьПоПравилу(,,ВходящиеДанные,,"ПКО_доработка");
    КонецЦикла;

    При попытки выгрузить данные из конфигурации-источника вылетает следующая ошибка:


    Ошибка получения свойства объекта из входящих данных
    ПКО = ПКО_доработка :))
    ПКС = 1 (--> Номер)
    Объект = Приходный кассовый ордер 20120109001 от 09.01.2012 12:00:00 (Приходный кассовый ордер)
    СвойствоПриемника = Номер (Строка)
    ОписаниеОшибки = Получение элемента по индексу для значения не определено
    ПозицияМодуля = ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8270)
    КодСообщения = 68

    Ошибка при выгрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1682)}: Ошибка получения свойства объекта из входящих данных
    ПКО = ПКО_доработка :))
    ПКС = 1 (--> Номер)
    Объект = Приходный кассовый ордер 20120109001 от 09.01.2012 12:00:00 (Приходный кассовый ордер)
    СвойствоПриемника = Номер (Строка)
    ОписаниеОшибки = Получение элемента по индексу для значения не определено
    ПозицияМодуля = ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8270)
    КодСообщения = 68
  4. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    галки Получить из входящих данных на ПКС Номер и Дата поставили?
  5. TopicStarter Overlay
    Алексей1989
    Offline

    Алексей1989 Опытный в 1С

    Регистрация:
    15 июл 2011
    Сообщения:
    613
    Симпатии:
    0
    Баллы:
    26
    Да, галки есть.
  6. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    ну уберите эти галки и поставьте ВходящиеДанные первым параметром, а не третьим. Входящие данные (в третьем параметре) могут быть выборкой из запроса или строкой таблицы значений или соответствием, структура не позволяет получить значение свойства через Структура[ИмяСвойства], как это хочет сделать обработка выгрузки.

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