Автоматизированные системы управления в большинстве случаев состоят из отдельных баз данных и зачастую имеют территориально распределенную структуру. При этом правильно реализованный обмен данными - необходимое условие для эффективной работы таких систем.
Первоначальная настройка обмена при этом может потребовать ряда действий, не только в части программирования, но и консалтинга, даже если мы имеем дело с однородными источниками, как в случае с продуктами на платформе «1С:Предприятие». Почему настройка обмена 1С (или, как еще это называется - синхронизация данных в 1С 8.3) может стать самой трудоемкой и недешевой задачей проекта интеграции, рассмотрим в этой статье.
Обмен данными в среде 1С позволяет:
*В случае, когда данные одного вида учета существенно отличаются от другого, необходимо обеспечить конфиденциальность информации и «разграничить» информационные потоки. Например, обмен данными между 1С УТ и 1С Бухгалтерия не требует выгрузки в базу регламентного учета управленческих данных, т.е. синхронизация в 1С тут будет неполная .
Если представлять стандартный процесс реализации первичного обмена данными, когда хотя бы один из его объектов – продукт 1С, то можно выделить следующие этапы:
Объекты обмена можно условно поделить на «источник» и «приемник». При этом они могут исполнять две роли одновременно, что будет называться – двусторонним обменом. Определение источника и приемника происходит логическим путем в зависимости от необходимости или от функциональных возможностей системы.*
*Например, при интеграции «WA: Финансист» – решения для ведения финансового учета и управления процессами казначейства, разработанного на базе «1С:Предприятие», эксперты WiseAdvice рекомендуют именно его в качестве мастер-системы. Это обусловлено наличием инструментов контроля для соблюдения правил заявочной политики, а соответственно, и для обеспечения эффективности работы решения.
Далее на основе полученных и зафиксированных требований со стороны пользователей создается список данных для обмена, определяется их объем, требования к частоте обмена, прописывается процесс работы с ошибками и обработки исключительных ситуаций (коллизий).
На этом же этапе в зависимости от парка имеющихся систем и структуры предприятия определяются с форматом обмена:
Распределенная информационная база
Универсальный обмен данными в 1С
EnterpriseData
Для системы на платформе «1С:Предприятие 8» предусмотрен широкий спектр возможностей для организации обмена с любыми информационными ресурсами посредством общепринятых универсальных стандартов (xml, текстовые файлы, Excel, ADO-соединение и т.д.). Поэтому при определении транспорта для данных обмена следует отталкиваться от возможностей базы данных сторонней системы.
Основным принципом эффективной синхронизации справочников является наличие одной точки ввода. Но если речь идет о работе со справочниками, исторически заполнявшимися по разным правилам, необходимо четко определить поля синхронизации для приведения обмена к «общему знаменателю».*
*На этом этапе может потребоваться проведение работ по нормализации НСИ на стороне источника данных. В зависимости от состояния справочников и их объема, процесс сопоставления элементов, распознавания, выявления ошибок и дублей, а также заполнения недостающих полей и назначение полей синхронизации, может потребовать работы целой группы экспертов, как со стороны интегратора (владельца методики нормализации НСИ), так и со стороны заказчика.
Возможность отображения данных систем-источников в приемниках зависит от правильно заданных правил обмена. Правила, представленные в формате xml, регулируют соответствие ключевых реквизитов объектов источника-приемника. Решение «1С:Конвертация данных» предназначено для автоматизации создания правил для реализации как единоразового обмена, так и постоянного.
Гарантирует отсутствие потерь данных при обмене План обмена. Это составная часть любой конфигурации на платформе «1С:Предприятие», полностью описывающая порядок обмена 1С: состав данных (документы с «опознавательными» реквизитами) и узлы (информационные базы приемники-передатчики), а также активацию РИБ для избранных направлений обмена.
Любое изменение данных, занесенных в План обмена, фиксируется и получает признак «измененности». До тех пор, пока измененные данные не будут соответствовать друг другу в узлах приемника-передатчика, признак сброшен не будет, и система будет рассылать контрольные сообщения в оба узла. После выгрузки данных и подтверждения их полного соответствия в обеих системах, признак сбрасывается.
Для автоматизации регулярного обмена устанавливается периодичность выгрузки данных. Частота обмена зависит от необходимости и технических возможностей. Также конфигурации на платформе «1С:Предприятие» позволяют настроить обмен данными при наступлении какого-нибудь события.
Рассмотрев стандартный процесс реализации обмена, обратим внимание на факторы, которые потребуют доработок на разных этапах:
Поскольку даже стандартные действия по реализации первичного обмена данными требуют экспертных знаний, их рекомендуется проводить при участии специалистов 1С. Только после выполнения всех вышеописанных действий следует переходить к настройке обмена в конфигурации. Рассмотрим интеграцию баз данных на примере «1С:УПП» и «1С:Розница» (по этой же схеме настраивается обмен с «1С:УТ»). Также к типовой синхронизации относится обмен УПП - УПП, характерный для масштабных систем автоматизации на крупнейших промышленных предприятиях.
В подменю «Сервис» выбираем «Обмен данными c продуктами на платформе…» (выбор прямого обмена с «Розницей» зачастую грозит ошибками на уровне COM-объектов). Обратим внимание на служебное сообщение «Данная возможность недоступна».
Чтобы решить эту проблему, необходимо выбрать «Настройку обмена данными»
…и проставить галочку. Далее сообщение об ошибке игнорируем.
В настройках синхронизации данных выбираем «Создать обмен с «Розница»…
Перед настройкой параметров подключения через локальный или сетевой каталог следует убедиться, что на диске под каталог есть место. Хотя, как правило, он не занимает более 30-50 Мб, в исключительных случаях под него может потребоваться до 600 Мб. Создать необходимый каталог можно прямо из конфигуратора.
При подключении через сетевой каталог предложения настроить подключение посредством FTP-адреса и по электронной почте игнорируем, нажимая «Далее».
В настройках вручную проставляем префиксы – условные обозначения баз (как правило, БП, УПП, РО), задаем правила и начальную дату выгрузки данных. Префикс будет указываться в названии документов, для обозначения базы, в которой они были созданы. Если правила выгрузки не будут отредактированы, данные по умолчанию будут выгружаться по всем имеющимся параметрам.
Создаем файл настройки обмена для «Розницы», чтобы не повторять свои действия. При необходимости немедленной отправки данных сразу после настройки синхронизации – проставляем галочку.
Для автоматизации процесса обмена необходимо настроить расписание.
Меню «Розница».
Проставляем галочку и выбираем «Синхронизацию».
Производим «обратную» настройку, выбирая Управление производственным предприятием.
Загружаем файл с настройками, созданный в УПП.
Проставляем галочку, адрес система подхватывает автоматически.
Действуем так же, как в УПП.
Проверочное сопоставление данных (Ручное сопоставление данных рекомендуется произвести на подготовительном этапе, поскольку эти работу могут стать самыми трудоемкими в процессе реализации обмена). Открытие окна сопоставления происходит по двойному щелчку мыши.
В случае ошибки в синхронизации «Подробно…» будет заменено на «Никогда…».
«Подробно…» открывает журнал регистрации с уточненной информацией по обмену.
Готово.
Если вы в любой типовой конфигурации сделаете глобальный поиск по слову ОбменДанными , то увидите массу ссылок на него. И в общих модулях, и в модулях справочников, документов, регистров и т.д. Рассмотрим, что это за свойство и для чего применяется.
Если в синтакс-помощнике открыть ветку Прикладные объекты
, можно обнаружить, что у многих из них: СправочникОбъект
, ДокументОбъект
, для регистров НаборЗаписей
и т.д. есть свойство ОбменДанными
.
Тип у этого объекта: ПараметрыОбменаДанным
, который в свою очередь содержит три свойства
Эти свойства используются в процессе обмена между узлами распределенной информационной базы . В свойстве Отправитель храниться ссылка на узел в котором было произведено изменение объекта. Получатели содержит набор узлов плана обмена, в который будут выгружаться изменения. В случае необходимости каких-то нестандартных действий при обменен данными между базами и отправителя и состав набора узлов можно изменять программно. А вот на третьем свойстве — хочется остановиться подробнее.
Если данное свойство установлено в значение Истина , это указывает на то, что производится запись объекта, полученного через механизмы обмена данными. При этом подразумевается, что объект содержит корректные данные и платформа 1С производит минимальное количество проверок. Но очень часто при записи объекта делается множество программных проверок в предопределенных процедурах модуля объекта. И этот код выполняется в том числе и при записи объекта, полученного из файла обмена. И в этом случае могут возникать ошибки, например, из-за того, что проверяемые данные просто еще не записаны.
Поэтому очень часто в модулях объектов можно встретить вот такой код:
Процедура ПередЗаписью(Отказ) Если ОбменДанными Возврат ; КонецЕсли ; //Здесь код с проверкой данных КонецПроцедурыЭто позволяет избежать лишних проверок при обмене данными между базами. Конечно же если какой-то код должен выполняться в любом случае — его необходимо разместить перед проверкой свойства . Этот момент надо обязательно учитывать при проектировании новых объектов метаданных, если у вас распределенная база данных и новый объект учавствует в обмене.
С другой стороны наличие такого кода дает возможность разработчику незаконно обойти проверку данных при программной записи объекта, т.к. свойство доступно и для записи тоже. Например, с помощью вот такого кода:
НовыйТовар = Справочники. Товары. СоздатьЭлемент() ; НовыйТовар. Наименование = "Тестирование записи" ; НовыйТовар. ОбменДанными Истина ; НовыйТовар. Записать() ;
И в каких-то исключительных ситуациях это действительно может помочь как временная мера. Но злоупотреблять этим не стоит.
Последние изменение: 01.09.2015
Выберите уточнение:
Универсальный обмен данными предназначен для загрузки и выгрузки данных в файл в формате XML между разными конфигурациями 1С по настроенным правилам обмена.
Номенклатура, штрихкоды, основные средства и т.д. будут загружаться из стандартных конфигураций 1С в базу Клеверенс: Учет имущества, и наоборот, из базы Клеверенс: Учет имущества в рабочую базу клиентов будет выгружаться инвентаризация, номенклатура, подразделения и т.д.
Обработка имеет два режима работы:
На клиенте. При использовании этого режима файлы правил и загружаемых данных передаются с клиента на сервер, а файл выгружаемых данных передается с сервера на клиент. Пути к этим файлам, находящимся на клиенте, необходимо указывать в диалоговом окне непосредственно перед выполнением действия.
На сервере. В этом режиме файлы не передаются на клиент и пути к ним необходимо указывать на сервере.
Файл внешней обработки и файлы протоколов обмена всегда должны находиться на сервере вне зависимости от режима работы.
Порядок выгрузки данных:
Выгрузка в файл обмена.
Указываем имя файла, в который будет осуществляться выгрузка данных. Результирующий файл с выгруженными данными может быть сжат.
Подключение и выгрузка данных в ИБ приемник.
Выбираем тип информационной базы:
Выбираем платформу 1С и каталог информационной базы для подключения.
На закладке «Выгружаемые данные» можно выбрать те типы объектов, которые должны выгружаться, настроить отборы для выборки объектов, либо указать узел обмена данными, для которого нужно выгружать данные.
На закладке «Параметры выгрузки» можно указать дополнительные параметры выгрузки данных.
На закладке «Комментарий» можно написать произвольный текст-комментарий, включаемый в файл обмена.
Для осуществления загрузки данных необходимо указать имя файла, из которого будет осуществляться загрузка данных, если при выгрузке вводился пароль для сжатия, то нужно указать его для распаковки.
«Режим отладки обработчиков загрузки» рекомендуется использовать только разработчикам !
Закладка служит для детальной настройки выгрузки и загрузки данных.
Закладка нужна только для разработчиков правил обмена. Позволяет удалять из информационной базы произвольные объекты.