8.х Обмен данными, используя правило обмена

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем ХочуСпец, 29 дек 2008.

  1. TopicStarter Overlay
    ХочуСпец
    Offline

    ХочуСпец Опытный в 1С

    Регистрация:
    17 ноя 2008
    Сообщения:
    53
    Симпатии:
    0
    Баллы:
    26
    Добрый День!
    Есть две идентичные конфигурации УТ. Необходимо из первой базы (назовем его центральной базой) переносились документы (н-р, документ Поступление товаров и услуг) во вторую базу (периферийная) таким образом, чтобы в периферийную базу загружались документы, которые связаны именно с этой базой (связь: база - подразделение). Т.е. в центральной базе создаем документы, относящиеся как к центральной базе так и к другим подразделениям. В периферийной базе создаются документы, относящиеся только к этому подразделению. В конфигурацию УТ в справочник Подразделения добавил предопределенные элементы: н-р, Центр, ПерифПодразд1, ПерифПодразд2

    Задачу решал следующим образом: с помощью конфигурации "1С Конвертация" данных загрузил описание конфигурации УТ, в автоматическом режиме создал правила конвертации и выгрузки данных (из УТ в УТ), в правилах выгрузки данных для объекта Поступление товаров и услуг для обработчика "Перед выгрузкой" добавил:

    Если Объект.Подразделение<>Справочники.Подразделения.ПерифПодразделение1 тогда
    Отказ = Истина;
    КонецЕсли;

    Сохранил правило обмена в виде файла.
    В центральной базе добавил три документа поступления, относящиеся к центральной базе, к периф. подразделению1 и к периф. подразделению2 (в документе обязательно заполняется реквизит Подразделение). С помощью обработки Универсальный обмен XML в центральной базе создал файл выгрузки. В периферийной базе с помощью этой же обработки выполнил загрузку данных. В результате в периферийной базе оказались все документы, созданные в центральной базе, т.е. обработчик "Перед выгрузкой" в плане обмена не сработал! Почему?
    Спасибо.
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Вставь
    Код:
    Сообщить(Объект.Подразделение); 
    
    в код и посмотри, что у тебя там приходит.
  3. TopicStarter Overlay
    ХочуСпец
    Offline

    ХочуСпец Опытный в 1С

    Регистрация:
    17 ноя 2008
    Сообщения:
    53
    Симпатии:
    0
    Баллы:
    26
    Обработчик "Перед выгрузкой" срабатывает (выводятся подразделения, указанные в документах)! Но почему игнорируется условие на отказ выгрузки?
  4. TopicStarter Overlay
    ХочуСпец
    Offline

    ХочуСпец Опытный в 1С

    Регистрация:
    17 ноя 2008
    Сообщения:
    53
    Симпатии:
    0
    Баллы:
    26
    Отрассировав, проверил что обработчик срабатывает:

    Сообщить(Объект.Подразделение);
    Сообщить("В текущую базу: "+Справочники.Подразделения.РО1+"");
    Если Объект.Подразделение<>Справочники.Подразделения.РО1 тогда
    Отказ = Истина;
    КонецЕсли;
    Сообщить("Отказ: "+Отказ+"");
    Сообщить("");

    При выгрузке в информационном окошке:

    Центральный офис
    В текущую базу: Региональный офис 1
    Отказ: истина

    Региональный офис 1
    В текущую базу: Региональный офис 1
    Отказ: ложь

    Региональный офис 2
    В текущую базу: Региональный офис 1
    Отказ: истина

    Но при загрузке в периф. базу загружаются все документы поступления!
  5. TopicStarter Overlay
    ХочуСпец
    Offline

    ХочуСпец Опытный в 1С

    Регистрация:
    17 ноя 2008
    Сообщения:
    53
    Симпатии:
    0
    Баллы:
    26

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