Exch1C - простая утилита для управления синхронизацией в 1С:Предприятие

  • Автор:

Exch1C-000.pngРаспределенные информационные базы 1С:Предприятия давно и широко применяются пользователями. Основным механизмом обмена данными в таких системах является синхронизация. К сожалению, штатные механизмы предусматривают только синхронизацию по расписанию и для этого должна быть запущена программа (либо работать в клиент-серверном варианте), что несколько снижает гибкость и удобство этого механизма. Поэтому предлагаем воспользоваться нашей утилитой Exch1C, которая предназначена для внешнего управления синхронизацией в базах 1С:Предприятие.

Кто давно работает с 1С, тот должен помнить, что в конфигурациях прошлого поколения, работавших на платформе 8.2, в настройках синхронизации была возможность выполнять обмен по событиям, например, запуск и завершение работы программы. Это позволяло реализовать простые сценарии работы для удаленных торговых точек, когда программа гарантированно получала перед началом рабочего дня все необходимые изменения и отправлять в центральную базу итоги работы за день.

Exch1C-002.pngВ новых конфигурациях, построенных на базе Библиотеки стандартных подсистем, возможности автоматизации сократили только до расписания. С другой стороны, БСП обеспечила конфигурациям требуемую унификацию, что позволяет довольно просто разрабатывать для них собственные решения.

Exch1C-003.pngКроме уже описанного нами сценария существует целый пласт аналогичных задач, которые требуют выполнять синхронизацию в привязке к какому-либо событию, либо во внерабочее время. Тем более привлекательно использовать для этого возможности штатного планировщика задач Windows.

Exch1C-004.pngМожно еще долго растекаться мыслю по дереву в данном направлении, но мы думаем, что любой, кто работал с РИБ (распределенными информационными базами) самостоятельно найдет применение нашей утилите, поэтому перейдем к ее описанию.

Системные требования

Утилита написана с использованием .NET Framework и будет работать в любой версии Windows c поддержкой данной технологии. Все современные ОС содержат в своем составе .NET Framework и поэтому ничего лишнего доустанавливать не придется.

Мы собираем утилиту в двух вариантах, с поддержкой .NET 3.5 и .NET 4.0, это сделано потому, что Windows 7 и Server 2008 R2 имеют в своем составе .NET 3.5 из коробки, а Windows 8 / 10 и Server 2012 / 2016 .NET 4.х, а .NET 3.5 по умолчанию отключен.

Несмотря на то, что с большой долей вероятности на большинстве систем будут обе версии .NET, мы предлагаем сразу использовать подходящий вариант утилиты, по сложившейся в нашей "внутренней кухне" традиции такие версии мы маркируем индексами 35 и 40 после номера версии. Т.е. если утилита имеет номер 1.1.35 - то она собрана с поддержкой .NET 3.5, а 1.1.40 - с поддержкой .NET 4.0. Никаких иных отличий между утилитами нет.

Для своей работы утилита использует COM-подключение к информационной базе, поэтому в системе должен быть зарегистрирован COM Connector для используемой версии платформы, это можно сделать командой:

regsvr32 "C:\Program Files (x86)\1cv8\8.3.xx.xxxx\bin\comcntr.dll"

Для отмены регистрации используйте:

regsvr32 /u "C:\Program Files (x86)\1cv8\8.3.xx.xxxx\bin\comcntr.dll"

Поддерживаемые конфигурации

Как мы уже говорили, благодаря применению в современных конфигурациях БСП наша утилита может работать с любой из них, необходимое условие - наличие поддерживаемого плана обмена. Из типовых на сегодняшний день проверены и поддерживаются:

  • Бухгалтерия предприятия, редакция 3.0
  • Зарплата и Управление Персоналом, редакция 3
  • Комплексная автоматизация, редакция 2
  • Розница, редакция 2.2
  • Управление нашей фирмой, редакция 1.6 (начиная с 1.6.11)
  • Управление торговлей, редакция 11

Cинтаксис

Для файловой базы

Exch1C -F:[каталог ИБ] -U:[пользователь] -P:[пароль] -N:[код узла обмена] -E:[план обмена]

Для клиент-серверного варианта

Exch1C -S:[кластер серверов] -R:[имя ИБ] -U:[пользователь] -P:[пароль] -N:[код узла обмена] -E:[план обмена]

Основные опции

  • -F - путь к каталогу файловой информационной базы
  • -S - имя кластера серверов для клиент-серверного режима работы
  • -R - имя информационной базы на кластере серверов
  • -U - имя пользователя информационной базы
  • -P - пароль пользователя информационной базы
  • -N - код целевого узла обмена, два символа, совпадают с префиксом узла
  • -E - код плана обмена, один символ, подробности см. ниже

Если указываемый параметр содержит пробелы, то такое значение следует взять в кавычки.

Поддерживаемые планы обмена

  • O - по организации, используется в Бухгалтерия 3.0, Управление нашей фирмой 1.6
  • F - полный, используетя в Бухгалтерия 3.0, Управление торговлей 11, Управление нашей фирмой 1.6, Комплексная автоматизация 2
  • S - по магазину, используется в Розница 2.2
  • W - по рабочему месту, по магазину, используется в Розница 2.2
  • T - с отборами, используется в Управление торговлей 11
  • Z - распределенная информационная база, используется в Зарплата и управление персоналом 3

Использование

Прежде всего определимся, как определить план обмена, самый верный способ - посмотреть в конфигураторе. Для примера показаны планы обмена УНФ 1.6

Exch1C-005.pngВ самой программе они могут называться иначе, но особых сложностей разобраться нет.

Exch1C-006.pngКод целевого узла обмена - это префикс того узла РИБ с которым вы хотите совершить обмен, его можно всегда посмотреть в настройках синхронизации.

Exch1C-007.png

Для примера запустим обмен по организации с узлом У2 в файловой базе:

Exch1C -F:С:\1C\My_Base -U:Иванов -P:123 -N:У2 -E:O

Или полный обмен с узлом Ц2 в клиент-серверной:

Exch1C -S:Server -R:Base -U:"Иванов Иван" -P:123 -N:Ц2 -E:F

Скачать

Скачать утилиту вы можете с прямо с нашего сайта, архив содержит обе версии:

Exch1C 1.1 (33,1 КБ) MD5 2C63A67291269EDBC4C498D8D3980E78

По всем вопросам применения и поддержки утилиты вы можете обратиться в официальную тему на нашем форуме.