8.х ОБМЕН Непонятная ошибка при конвертации

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

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

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

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


    [xml]<Объект Нпп="538" Тип="ДокументСсылка.ПриходныйКассовыйОрдер" ИмяПравила="ПКО_доработка"><Ссылка Нпп="538">
    <Свойство Имя="Номер" Тип="Строка">
    <Значение>120118001_1</Значение>
    </Свойство>
    <Свойство Имя="Дата" Тип="Дата">
    <Значение>2012-01-18T12:00:00</Значение>
    </Свойство>
    <Свойство Имя="ДоговорКонтрагента" Тип="СправочникСсылка.ДоговорыКонтрагентов"><Ссылка Нпп="93">
    <Свойство Имя="{УникальныйИдентификатор}" Тип="Строка">
    <Значение>fa34a6be-6e6e-11e1-9571-b51292b335c3</Значение>
    </Свойство>
    <Свойство Имя="Код" Тип="Строка">
    <Значение>000000046</Значение>
    </Свойство>
    <Свойство Имя="ЭтоГруппа" Тип="Булево">
    <Значение>false</Значение>
    </Свойство>
    </Ссылка>
    </Свойство>[/xml]

    В чем м.б. ошибка?
  2. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.400
    Симпатии:
    40
    Баллы:
    54
    В чем угодно!
    Ставьте на отладку загрузку и юзайте в чем причина (В универсальном обмене в формате xml есть возможность запустить обмен на отладку)
  3. TopicStarter Overlay
    Алексей1989
    Offline

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

    Регистрация:
    15 июл 2011
    Сообщения:
    613
    Симпатии:
    0
    Баллы:
    26
    А как поставить загрузку на отладку (с конвертацией недавно работаю, многого еще, к сожалению, не знаю)?
  4. Vlad
    Offline

    Vlad Модераторы Команда форума Модератор

    Регистрация:
    16 авг 2006
    Сообщения:
    3.517
    Симпатии:
    19
    Баллы:
    29
    "ИмяПравила="ПКО_доработка"
    А это что за правило?
  5. TopicStarter Overlay
    Алексей1989
    Offline

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

    Регистрация:
    15 июл 2011
    Сообщения:
    613
    Симпатии:
    0
    Баллы:
    26
    Это правило, в котором описаны ПКО для документа "ПриходныйКассовыйОрдер". К сожалению, внятные названия - не моя фишка :)
  6. Vlad
    Offline

    Vlad Модераторы Команда форума Модератор

    Регистрация:
    16 авг 2006
    Сообщения:
    3.517
    Симпатии:
    19
    Баллы:
    29
    Вообще-то, это был "тонкий" намаек на то, чтобы проверить правила в КД.Что-то мне не нравится слово "доработка" в названии. А откуда и куда грузите? Где взяли правила?
    Чтобы сделать отладку обработчиков, надо внизу установить галочку "Режим отладки обработчиков загрузки", потом нажать ставшую активной кнопку Настройка отладки загрузки. Далее следуете инструкциям. А еще лучше сначала в режиме отладки сделать выгрузку.
  7. TopicStarter Overlay
    Алексей1989
    Offline

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

    Регистрация:
    15 июл 2011
    Сообщения:
    613
    Симпатии:
    0
    Баллы:
    26
    ДОбрый день. У меня сложилась очень непонятная ситуация. Мне надо выгрузить "ПриходныйКассовыйОрдер" из одной базы в другую, при этом количество документов в базе-приемнике зависит от количества строк табличной части РасшифровкаПлатежа базы-источника. Поэтому я пользуюсь функцией "ВыгрузитьПоПравилу".
    Сначала я сделал правила конвертации только для ПриходногоКассовогоОрдера + ПКО для объектов, обеспечивающих правильное заполнение ПриходногоКассовогоОрдера.
    Далее, после успешных "испытаний", я решил перенести ПКО для ПриходногоКассовогоОрдера в правила конвертации, где описаны ПКО вообще для всех объектов (т.е. не только для ПриходногоКассовогоОрдера). Пытаюсь выгрузить данные из базы-источника, но вылетают следующие ошибки:
    Код:
    Начало выгрузки: 21.05.2013 15:41:23
    Ошибка получения свойства объекта из входящих данных
    ПКО = ПКО_доработка (Документ: Приходный кассовый ордер)
    ПКС = 8 (--> Дата)
    Объект = Приходный кассовый ордер 20121102001 от 02.11.2012 14:25:27 (Приходный кассовый ордер)
    СвойствоПриемника = Дата (Дата)
    ОписаниеОшибки = Получение элемента по индексу для значения не определено
    ПозицияМодуля = ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8270)
    КодСообщения = 68
    Ошибка при выгрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1682)}: Ошибка получения свойства объекта из входящих данных
    ПКО = ПКО_доработка (Документ: Приходный кассовый ордер)
    ПКС = 8 (--> Дата)
    Объект = Приходный кассовый ордер 20121102001 от 02.11.2012 14:25:27 (Приходный кассовый ордер)
    СвойствоПриемника = Дата (Дата)
    ОписаниеОшибки = Получение элемента по индексу для значения не определено
    ПозицияМодуля = ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(8270)
    КодСообщения = 68


    П.с. у меня для ПриходногоКассовогоОрдера 2 ПКО - одно описывает соответствие между объектом-источником и объектом-приемником, а другое получает значения свойств из входящих данных.
  8. Vlad
    Offline

    Vlad Модераторы Команда форума Модератор

    Регистрация:
    16 авг 2006
    Сообщения:
    3.517
    Симпатии:
    19
    Баллы:
    29
    Ты так и не ответил из какой конфы в какую грузишь. И откуда правила. Сам делал или чьи-то перделать пытаешься?
    Вот это наводит на мысль, что у тебя какой-то винигрет в правилах
    В Источнике нет Даты?
    Ошибка при выгрузке данных: {ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1682)}: Ошибка получения свойства объекта из входящих данных
    ПКО
    = ПКО_доработка (Документ: Приходный кассовый ордер)
    ПКС = 8 (--> Дата)
  9. TopicStarter Overlay
    Алексей1989
    Offline

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

    Регистрация:
    15 июл 2011
    Сообщения:
    613
    Симпатии:
    0
    Баллы:
    26
    Конфа-источник - "Учет в микрофинансовых организациях" (она построена на основе типовой бухгалтерии 2.0, но некоторые объекты в ней изменены).
    Конфа-приемник - типовая бухгалтерия 2.0 (релиз последний).

    Правила писал сам. Т.е. сначала мастер создания правил конвертации создал автоматически всевозможные правила, потом я вручную кое-что менял.

    Не исключаю :), а еще больший винигрет у меня в голове... Но когда-то же надо начинать учиться писать правила для конвертации.

    Источником является структура, в которую я вношу дату и далее выгружаю все данные с помощью "ВыгрузитьПоПравилу":

    Код:
    i=0;
    Для Каждого Строка Из Источник.РасшифровкаПлатежа Цикл
    i=i+1;
    
    Номер = Прав(СокрЛП(Строка(Источник.Номер)),(СтрДлина(СокрЛП(Строка(Источник.Номер)))-2));
    
    
    ВходящиеДанные = Новый Структура;
    
    ВходящиеДанные.Вставить("Номер",(Номер + "_" + Строка(i)));
    ВходящиеДанные.Вставить("Дата",Источник.Дата);
    ВходящиеДанные.Вставить("СуммаДокумента",Строка.СуммаПлатежа);
    ВходящиеДанные.Вставить("Комментарий",Источник.Комментарий);
    ВходящиеДанные.Вставить("ВалютаДокумента",Источник.ВалютаДокумента);
    ВходящиеДанные.Вставить("ВидОперации",Источник.ВидОперации);
    ВходящиеДанные.Вставить("ВыручкаСНТТ",Источник.ВыручкаСНТТ);
    ВходящиеДанные.Вставить("Графа4_УСН",Источник.Графа4_УСН);
    ВходящиеДанные.Вставить("Графа5_УСН",Источник.Графа5_УСН);
    ВходящиеДанные.Вставить("Графа6_УСН",Источник.Графа6_УСН);
    ВходящиеДанные.Вставить("Графа7_УСН",Источник.Графа7_УСН);
    ВходящиеДанные.Вставить("ДеятельностьНаПатенте",Источник.ДеятельностьНаПатенте);
    ВходящиеДанные.Вставить("ДоговорКонтрагента",Строка.ДоговорКонтрагента);
    ВходящиеДанные.Вставить("ДокументОснование",Источник.ДокументОснование);
    ВходящиеДанные.Вставить("ДоходыЕНВД_УСН",Источник.ДоходыЕНВД_УСН);
    ВходящиеДанные.Вставить("Контрагент",Источник.Контрагент);
    ВходящиеДанные.Вставить("НДС_УСН",Источник.НДС_УСН);
    ВходящиеДанные.Вставить("НомерЧекаККМ",Источник.НомерЧекаККМ);
    ВходящиеДанные.Вставить("Организация",Источник.Организация);
    ВходящиеДанные.Вставить("Основание",Источник.Основание);
    ВходящиеДанные.Вставить("Ответственный",Источник.Ответственный);
    ВходящиеДанные.Вставить("Патент",Источник.Патент);
    ВходящиеДанные.Вставить("ПодразделениеКт",Источник.ПодразделениеКт);
    ВходящиеДанные.Вставить("ПорядокОтраженияАванса",Источник.ПорядокОтраженияАванса);
    ВходящиеДанные.Вставить("Приложение",Источник.Приложение);
    ВходящиеДанные.Вставить("ПринятоОт",Источник.ПринятоОт);
    ВходящиеДанные.Вставить("РасходыЕНВД_УСН",Источник.РасходыЕНВД_УСН);
    ВходящиеДанные.Вставить("РучнаяКорректировка",Источник.РучнаяКорректировка);
    ВходящиеДанные.Вставить("РучнаяНастройка_УСН",Источник.РучнаяНастройка_УСН);
    ВходящиеДанные.Вставить("Содержание_УСН",Источник.Содержание_УСН);
    ВходящиеДанные.Вставить("СтавкаНДС",Источник.СтавкаНДС);
    ВходящиеДанные.Вставить("СтатьяДвиженияДенежныхСредств",Строка.СтатьяДвиженияДенежныхСредств);
    ВходящиеДанные.Вставить("СубконтоКт1",Источник.СубконтоКт1);
    ВходящиеДанные.Вставить("СубконтоКт2",Источник.СубконтоКт2);
    ВходящиеДанные.Вставить("СубконтоКт3",Источник.СубконтоКт3);
    ВходящиеДанные.Вставить("СчетКасса",Источник.СчетКасса);
    ВходящиеДанные.Вставить("СчетУчетаРасчетовСКонтрагентом",Строка.СчетУчетаРасчетовСКонтрагентом);
    ВходящиеДанные.Вставить("ПометкаУдаления",Источник.ПометкаУдаления);
    ВходящиеДанные.Вставить("Проведен",Источник.Проведен);
    ВходящиеДанные.Вставить("СчетКасса",Источник.СчетКасса);
    ВходящиеДанные.Вставить("Контрагент",Источник.Контрагент);
    
    Мас = Новый Массив;
    Мас.Добавить(Строка);
    
    ТаблЗначений = Новый ТаблицаЗначений;
    ТаблЗначений = Источник.РасшифровкаПлатежа.Выгрузить(Мас);
    
    
    ВходящиеДанные.Вставить("РасшифровкаПлатежа",ТаблЗначений);
    
    
    
    
    ВыгрузитьПоПравилу(,,ВходящиеДанные,,"ПКО_доработка");
    
    КонецЦикла;
    Отказ = 1;
  10. nickpugachev
    Offline

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

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

    входящие данные должны отдавать свои свойства по индексу, структура этого делать не умеет. туда либо строку таблицы значений, либо выборку, либо запись набора записей регистра либо соответствие можно отдать.
  11. TopicStarter Overlay
    Алексей1989
    Offline

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

    Регистрация:
    15 июл 2011
    Сообщения:
    613
    Симпатии:
    0
    Баллы:
    26
    В том ПКО, в которое я передаю структуру, для реквизитов стоит галочка "Получить из входящих данных", поэтому структура должна передаваться именно третьим параметром.
  12. nickpugachev
    Offline

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

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    уберите ее, либо передавайте не структуру, а соответствие. структура там жить не будет
  13. TopicStarter Overlay
    Алексей1989
    Offline

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

    Регистрация:
    15 июл 2011
    Сообщения:
    613
    Симпатии:
    0
    Баллы:
    26
    Попробую, хотя все это очень странно: в одних правилах конвертации эта структура работает, а в других точно такая же структура, при точно таких же ПКО, работать не хочет.

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