Содержание:
1. Настроить классический обмен по стандартам БСП в 1С
2. Как настроить состав выгружаемых объектов в 1С
3. Формирование документов в Альфа-Авто и передача данных в 1С:ERP 2.
4. Работа с кодом 1С:Предприятие
При любом раскладе у людей нет желания вводить данные несколько раз. Представим, что у вас в компании уже есть система уровня 1С:ERP 2. Что сказать? Вы на уровне и в тренде. Но при этом, как в моем случае, есть еще конфигурация из века прошлого, но рабочая – это Альфа-Авто 4.1.
1С:ERP 2 предполагает использование конфигурации с БСП для обмена, что существенно снижает расходы на дальнейшую поддержку по обновлению. На Альфа-Авто 4.1 нет БСП. А как организовать обмен для такой пары? Для меня долгое время тоже было непонятно - как обеспечить обмен данными между такими разными системами.
Мы можем долго думать, но задачу нужно сделать и сделать сейчас. У нас есть только часы, что нам оплачивают для выполнения данных механизмов. Вперед!
1. Настроить классический обмен по стандартам БСП в 1С
Первый шаг: нужно настроить классический обмен по стандартам БСП в 1С. Что я при этом имею в виду? Разработать план обмена с помощью существующих технологий конвертации данных 2 (КД2). Это тема отдельная, и углубляться в нее в данной статье мы не будем.
Исходим из того, что правила обмена созданы как со стороны 1С ERP 2, так и со стороны Альфа-Авто. В технологии разработки правил с использованием конвертации данных 2.0 я достаточно уверенно себя чувствую и легко могу доработать. Но в данном случае я эти правила получил готовыми. Таковы были реалии. Допилить БСП в ERP? Нужно только оплаченное время. Остальное все выполнялось, и не один раз. А вот со стороны Альфа-Авто 4 …. Только вопросы. Как-то не приходилось с таким сталкиваться ранее, увы.
При проработке возможного решения возникло предложение воспользоваться обработкой «УниверсальныйОбменДаннымиXML». Данной обработкой пользовался часто и много. Как с использованием общих форм, так и управляемых. Даже был такой этап, когда была необходимость переработать обработку под общими формами на управляемые. Но вот использовать данную обработку также для передачи зарегистрированных объектов не приходилось.
Рисунок 1
Обратите внимание на колонку «Узел обмена 1С». Если вы указываете узел обмена в 1С, то это означает факт выгрузки данных, зарегистрированных для данного узла. Получается, что необходимо настроить регистрацию для данного узла, и данные попадут в выгрузку.
2. Как настроить состав выгружаемых объектов в 1С
Вначале необходимо настроить состав выгружаемых объектов в 1С.
Рисунок 2
В этом составе выгружаемых объектов в 1С мы указали объекты, которые используются в правилах обмена. Обратите внимание, что в колонке «Авторегистрация» установлено «Запретить». Это говорит только о том, что нам нужен дополнительный механизм для регистрации. И это логично. Выбирать объекты желательно с учетом критериев отбора.
Рисунок 3
В нашем случае для регистрации срабатывает подписка на события «ПриЗаписи». На данном этапе выполнена задача регистрации объекта для передачи.
3. Формирование документов в Альфа-Авто и передача данных в 1С:ERP 2
Следующий этап в получении данных из ERP - формирование документов в Альфа-Авто и передача данных ERP.
Рассмотрим любой план обмена. В данном случае более наглядно будет посмотреть форму узла на стороне ERP.
Рисунок 4
Как видим из рисунка 4, для каждого узла есть реквизиты «НомерОтправленного» и «НомерПринятого». Для нашего случая, если мы передаем НомерПринятого, то это сигнал механизму обмена, что нужно удалить регистрацию для отправленных сообщений с этим номером и не выгружать их. Если механизм регистрации не получит переданный номер, то произойдет повторная выгрузка. На стороне ERP отработают штатные механизмы, а на стороне Альфа-Авто их нужно создать. Дальнейшие работы были связаны только с доработкой обработки «УниверсальныйОбменДаннымиXML».
Теперь рассмотрим дополнительные настройки обработки, которые необходимо использовать.
Рисунок 5
На рисунке 5 в выделенном блоке указано, что после выгрузки удалять регистрацию нет необходимости. Мы будем сами управлять удалением регистрации.
При удалении регистрации предполагаем, что будет выгружено все, что зарегистрировано. А после получения из ERP номера принятого сообщения удаляем всю регистрацию для данного узла.
Вот такие допущения приняты для организации обмена с помощью обработки «УниверсальныйОбменДаннымиXML».
4. Работа с кодом 1С:Предприятие
Теперь посмотрим, как это работает и какие доработки выполнены.
Вначале были выгружены данных из ERP. Вроде осложнений нет. Появилась задача – их принять. И ... не обнаружен Узел обмена 1С.
Рисунок 6
Между описанием правил обмена и данными есть узел «ДанныеПоОбмену». Этот Узел обмена 1С и не может прочитать обработку. Нужны доработки.
Рисунок 7
Этот узел добавлен для обработки. Посмотрим разработанную процедуру «ПрочитатьДанныеПоОбмену».
Пример кода 1С:Предприятие:
Рисунок 8
Это данные, переданные из ERP. Как видим из выше представленного кода 1С:Предприятие, нам нужен номер принятого сообщения. И если номер принятого сообщения ERP будет равным номеру переданного сообщения со стороны Альфа-Авто, то будет удалена вся регистрация для данного узла обмена. Кроме этого на узле зафиксируем номер принятого сообщения из ERP. Данные эти необходимы и для формирования «посылки» на сторону ERP.
Со стороны ERP вначале происходит получение данных из Альфа-Авто, а после этого формируется выгрузка данных. Данная выгрузка учитывает факт получения или неполучения данных в принимающей стороне. А для обработки эти процессы разделены. При получении данных мы уже наверняка их передали. И если номер принятого сообщения совпадает с номером переданного нами, то это говорит только о том, что нужно удалить регистрацию. Данный обмен будет работать в предположении: все, что зарегистрировано, будет передано. При ином развитии ситуации нужно доработать функционал для фиксации объектов выгрузки и последующего удаления принятых объектов регистрации.
После принятие объектов из ERP самое время заняться формированием передачи данных для ERP. И в этом случае нам необходим Узел обмена 1С «ДанныеПоОбмену». В противном случае нет достаточной информации для обмена. И необходимо понимать, что посылка принята и можно удалять зарегистрированные данные.
Рисунок 9
В этом примере формируется выгрузка в процедуре «ЗаписатьИнформациюОбОбменеДаннымиЧерезПланыОбмена».
Рисунок 10
В этой процедуре выполняется формирование узла для выгрузки в ERP.
Рисунок 11
А пример формированного узла в выгрузке представлен на рисунке 11. После этой выгрузки мы увидим, что данные приняты на стороне ERP.
Добавим дополнительный функционал, позволяющий упростить обмен.
Рисунок 12
На рисунке 12 находятся две кнопки - «Выполнить выгрузку данных» и «Выполнить загрузку данных». Также рядом расположен реквизит узла обмена. После выбора узла при нажатии кнопки «Выполнить выгрузку данных» для выгрузки заполнятся правила обмена, будет найден каталог обмен, сформировано корректное имя обмена и будет произведена выгрузка. Такие же действия будут выполнены и при загрузке.
Я должен остановиться на особенностях такого обмена. Задача стояла: минимальными средствами выполнить задачу обмена. Если на стороне Альфа-Авто создавать более гибкий механизм, то это совсем другая история (такая необходимость вполне может возникнуть в дальнейшем).
Следует понимать, что необходимо всегда выполнять полный обмен. Вначале выполнить выгрузку из Альфы. Произвести прием-передачу на стороне ERP. И только после этого произвести загрузку данных из ERP. В результате – две базы имеют одинаковые данные после обмена, и повторной передачи не будет. Не будет и потери измененных данных. Вот такая особенность настроенного обмена.
Специалист компании ООО «Кодерлайн»
Мазай Евгений