Автоматичний обмін даними 1С

Автообін

Хочу поділитися з вами своєю реалізацією обмінів даними між різними конфігураціями 1С.
Основна задача полягала в тому, щоб налаштувати автоматичний обмін по вибраним об’єктам між різними конфігураціями (типовими чи самописними).

Для реалізації нам необхідно:

  1. Конвертація даних;
  2. Обробка “Універсальний обмін даними XML” – знайти можна на ІТС або в типових конфігураціях.
  3. Ну і реалізувати сам механізм обміну. От про нього і піде далі.
Чому я не став використовувати механізм типових конфігурацій або ж не взяв із бібліотеки стандартних підсистем?  Тому що після останньої спроби затягнути підсистему “Електронної пошти”, разом з нею ще зайшла куча інших непотрібних даних і об’єктів.
Що я пропоную – конфігурації для 1С 8.1 і 1С 8.2, які потрібно інтегрувати в потрібні конфігурації і вже потім налаштувати автообмін.
Вміст конфігурації, окрім вище згаданих об’єктів:
  1. Обробка обміну – “Універсальний обмін даними XML”;
  2. Регламентне завдання і спільний модуль, яке необхідно для налаштування обміну по певному графіку
  3. План обміну – для реєстрації об’єктів на обмін з потрібними конфігураціями;
  4. Регістр відомостей – для збереження налаштувань автообміну;
  5. Також конфігурації містять обробки для зручного редагування налаштувань і для тесту запуску
Для налаштування автообміну потрібно спершу створити вузли обміну для потрібного плану обміну. В даному випадку вузол плана обміну буде являти собою конкретну БД. Якщо ви плануєте обмінюватись з багатьма БД і структура даних обміну буде різне (різніий склад документів, довідників…), то потрібно створити потрібну кількість планів обміну, а в них відповідно потрібну кількість вузлів.
Далі за допомогою обробки керування налаштуваннями автообміну створити ці  налаштування. Додаємо вузол, потім вказуємо налаштування підключення до БД, вибираємо правило обміну (зберігається шлях до файлу і сам файл також записується в БД), яке ми перед цим створили в конвертації даних і в кінці вказуємо активність налаштування.
Основне вікно керування налаштуваннями автообміну
                                                        Основне вікно керування налаштуваннями автообміну
Основний алгоритм роботи:
  1. Регламентне завдання з вказаною періодичністю шукає в регістрі налаштувань активні. Ми можемо створити безліч налаштувань обміну, але за допомогою опції активності налаштування вмикати або ж вимикати потрібне налаштування із обміну даними.
  2. Шукає правило обміну за вказаним шляхом і якщо його не знаходить – то зчитує із збережених даних.
  3. Далі налаштовує обробку “Універсальний обмін даними XML” для обміну – передає туди правило обімну, вузол обміну, параметри підключення до БД, додаткові параметри і запускає обмін в фоні.
  4. Після виконання обробки – зареєстровані дані на обмін за вказаним вузлом стираються
  5. Можна протестувати обмін за допомогою обробки тестування – під час цього виводяться повідомлення під час обміну, за допомогою яких можна виявити помилки – в основному в правилах обміну.
Деякі корисні поради, перед запуском:
  • Так як обмін відбувається на севері 1С (якщо клієнт-серверна реалізація), то потрібно перевірити можливість створення на севері 1С СОМ-об’єктів, для підключення до 1С. Бо буває, що на клієнті конект проходить успішно, а регламетне завдання завершується із помилкою.
  • Також потрібно перевірити, чи є у користувача, під яким буде відбуватися конект і обмін, права на зміну потрібних документів. Наприклад, запис документів, помачення на виделення об’єктів.
Є плани по написанню монітора обміну, але не в найближчому часі.
Скачати

Конфігурація обміну для 1С 8.1 -- , Скачаний 182 разів - Скачати
Конфігурація обміну для 1С 8.2  -- , Скачаний 463 разів - Скачати

  • Максим

    У меня почему-то не проходит обмен данными =(
    Соединение с базой приемником происходит по регламентному заданию, но обмен данными не происходит.
    Необходимо ли в базе приемнике прописывать логику или вся логика должна находится в базе источнике?

    • Максим, спасибо за отзыв.

      Вся логика обмена должна прописываться в правилах обмена данными, которые настраиваются в конфигурации “Конвертация данных”.

      Для проверки работы обмена нужно сделать следующее:
      1. Проверить, регистрируется ли нужный объект в планах обмена (запросом из таблиц изменения).
      2. Запустить обработку УниверсальныйОбменДаннымиXML, и выгрузить данные в файл. Если без ошибок, значит структура конфигурации источника совпадает со структурой в правилах обмена.
      3. Открыть ИБ приемник, запустить обработку и попробовать загрузить данный из файла. Если и тут ошибки не будет, то тогда нужно детально разбирать.

      • Максим

        При попытке прочитать правила обмена выдает сообщение “Недопустимое значение параметра (параметр номер ‘1’)”. Не знаю, почему так.. Конфигурация “Конвертация данных” нормально создает файл правил обмена, никаких ошибок не выдает. Может Вы знаете в чем может быть проблема?

        • Если шибка звучит так – “Ошибка при вызове метода контекста (ВыбратьИзменения): Недопустимое значение параметра (параметр номер “1”)”, то могу предположить, что в настройках автообмена вы сделали настройку для узла этой же ИБ. Такого делать нельзя.. Если это так, то нужно создать новый Узел и переделать на него все настройки.
          Если же в настройках все верно, то без близкого анализа подсказать не смогу.

  • Глеб Терещенко

    А как скачать- то подскажите!

    • Amirkhon Amirkhon

      Я тоже не смог скачать как вы скачали!

  • Глеб Терещенко

    о! сорри, нашел!

  • Amirkhon Amirkhon

    Немогу скачать пришлите на почту amirkhon0@mail.ru пожалуйста!!!
    Или скинте в какой облако!

  • Gabit Omarov

    Здравствуйте,

    Ссылка не доступна для скачивания.
    Обновите пожалуйста ссылку.