8.х ОБМЕН Обмен через план обмена

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем Александр84, 22 авг 2011.

  1. TopicStarter Overlay
    Александр84
    Offline

    Александр84 Опытный в 1С

    Регистрация:
    7 окт 2008
    Сообщения:
    342
    Симпатии:
    2
    Баллы:
    29
    Всем доброго времени суток. Проблема в общем такова: Настроили обмен УТ - БП через план обмена, решили правила подправить для того чтобы документы поступления товаров и услуг в нтт(от определенных контрагентов) выгружались в перемещение. Создали в КД новое правило конвертации, проверили выгрузку только по этому правилу, всё работает как положено(при чем перед выгрузкой мы делаем проверку по коду родителя контрагента, так же и в правилах выгрузки поступлений сделали фильтр, т.е. при выгрузке поступление в поступление, если источник.контрагент.родитель.код = "", доки от внутренних контрагентов, мы не выгружаем в поступление, и так же для поступления в перемещение, если не источник.контрагент.родитель.код = "", тогда не выгружаем документы от внешних контрагентов), загрузили првила в настройку обмена в ут, всё отлично, новое правило появилось, делаем выгрузку, отрабатывает правило только по настройке поступление в поступление, то есть, грубо говоря, если у нас 841 документ поступления, из них 5 от внутренних контрагентов, результат должен быть таким - 836 доков выгружается в поступление, 5 в перемещение, но при выгрузке у нас выгружаются только 836 доков, остальные не отрабатывают по правилу поступление в перемещение, хотя если выгружать по этим правилам по отдельности(т.е. на всех документах поставить не выгружать а на нашем правиле выгружать, то всё отрабатывает нормально). Скажите в чем может быть проблема данного трабла, почему не отрабатывают правила при выгрузке всех документов? Спасибо!
  2. TheSerg
    Offline

    TheSerg

    Регистрация:
    17 авг 2011
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Код:
    
    Если Источник.Контрагент = Справочники.Контрагенты.НайтиПоКоду("00006") Тогда
    
    ВыборкаДанных = новый ТаблицаЗначений;
    ВыборкаДанных.Колонки.Добавить("Номер");
    ВыборкаДанных.Колонки.Добавить("Дата");
    
    ВыборкаДанных.Колонки.Добавить("Товары");
    
    ТаблЧасть = новый ТаблицаЗначений;
    ТаблЧасть.Колонки.Добавить("Количество");
    ТаблЧасть.Колонки.Добавить("Номенклатура");
    ТаблЧасть.Колонки.Добавить("ЦенаВРознице");
    ТаблЧасть.Колонки.Добавить("СуммаВРознице");
    
    ВыборкаДанных.Очистить();
    СтрВыборкаДанных = ВыборкаДанных.Добвить();
    
    СтрВыборкаДанных .Номер = ПривестиНомерКДлине(Источник.НомерДок,11);
    СтрВыборкаДанных .Дата = Источник.ДатаДок;
    
    ТаблЧасть.Очистить();
    Для каждого Стр из Источник.ТоварыЦикл
    СтрТаблЧасть = ТаблЧасть.Добавить();
    СтрТаблЧасть .Количество = Стр .Количество;
    СтрТаблЧасть .Номенклатура = Стр .Номенклатура;
    СтрТаблЧасть .ЦенаВРознице = Стр .Цена;
    СтрТаблЧасть .СуммаВРознице = Стр .Сумма;
    КонецЦикла;
    
    СтрВыборкаДанных .Товары = ТаблЧасть.Скопировать();
    
    ВыгрузитьПоПравилу(ВыборкаДанных, , , , "ИмяПКОПоступлениеПеремещенние");
    Отказ = Истина;
    КонецЕсли;
    КонецЕсли; 
    
    1. И так примерно такой код вставляешь в ПКО для ПоступлениеПоступление перед обработкой, код контрагента в условии меняешь на код внутреннего контрагента.
    2. Делаешь еще ПКО ПоступлениеПеремещение, и определяешь соответствтие реквизитов и ПКС.

    Объясняю:
    В коде условие отлавливает именно твоего внутреннего контрагента, если мы находим такой документ поступления, то отдельно для него определяем структура документа и табличной части для выгрузки.
    ВыгрузитьПоПравилу(ВыборкаДанных, , , , "ИмяПКОПоступлениеПеремещенние"); эта строка передает нашу определенную структура в ПКО ПоступлениеПеремещение, а отказ после этой строки не дает нам выгрузить документ с внутренним контрагентом по ПКО ПоступлениеПоступление.
  3. TopicStarter Overlay
    Александр84
    Offline

    Александр84 Опытный в 1С

    Регистрация:
    7 окт 2008
    Сообщения:
    342
    Симпатии:
    2
    Баллы:
    29
    Очень интересно конечно попробовать данный код, но такой вопрос, нельзя ли искать код родителя контрагента(а не самого внутреннего контрагента), так как список внутренних контрагентов не мал, и перебирать каждого больно много текста лишнего получится.....
  4. TheSerg
    Offline

    TheSerg

    Регистрация:
    17 авг 2011
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Можно и такое условие поставить, а также сравнивать контрагента, с массивом определенных контрагентов.
  5. TopicStarter Overlay
    Александр84
    Offline

    Александр84 Опытный в 1С

    Регистрация:
    7 окт 2008
    Сообщения:
    342
    Симпатии:
    2
    Баллы:
    29
    Как ни прискорбно об этом говорить, но в ходе тестирования данного кода, документы так и выгружаются в поступления((( Не знаю что и делать((( HELP!!!

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