Загрузка своих правил обмена: синхронизация БСП и универсальная обработка
Содержание
Подключить правила обмена в 1С 8.3 можно двумя путями. В типовых конфигурациях на БСП (Бухгалтерия 3.0, УТ 11, ЗУП 3.1) правила загружают в настройку синхронизации: Администрирование → Синхронизация данных → Настройки синхронизации данных, далее открыть нужный обмен и выбрать загрузку правил из файла. Для разового переноса между любыми базами используют внешнюю обработку
«Универсальный обмен данными в формате XML» и указывают в ней файл правил .xml.
Правила — это XML-файл, который делают в конфигурации «Конвертация данных » 2.x. В нём описано, какие объекты выгружать, как сопоставлять их в приёмнике и какие поля во что превращать. Сам файл ничего не делает: его нужно загрузить в механизм, который умеет его читать.
Что подготовить до загрузки правил
Большинство проблем с правилами возникает не при загрузке, а раньше: файл сделан под другую версию конфигурации или база не готова к обмену.
Проверьте, под какие версии сделаны правила
В шапке файла правил записаны имя и версия конфигурации-источника и конфигурации-приёмника. Откройте XML в любом текстовом редакторе и посмотрите первые строки. Если правила сделаны под Бухгалтерию 3.0.150, а у вас 3.0.170, часть объектов может не совпасть: реквизиты переименовали, добавили новые.
📌 Что сверить:
- 🔹 название конфигурации источника и приёмника;
- 🔹 версии обеих конфигураций (у вас — в
Справка → О программеили через значок меню в заголовке окна); - 🔹 формат файла: правила Конвертации данных 2.x — это один XML, а обмен через EnterpriseData (КД 3.x) работает на модулях обмена внутри конфигурации и XML-файлом правил не подключается.
Сделайте резервную копию
Перед первой загрузкой данных по новым правилам сделайте выгрузку информационной базы в .dt или копию каталога файловой базы. Неудачная загрузка может создать дубли справочников и документов, а чистить их вручную долго.
В клиент-серверном варианте копию делает администратор СУБД средствами сервера или через Конфигуратор → Администрирование → Выгрузить информационную базу. Учтите: выгрузка .dt требует монопольного доступа, пользователей нужно предупредить заранее.
Права пользователя
Загрузку правил и запуск обмена выполняет пользователь с полными правами или с ролью, которая разрешает синхронизацию данных. Под обычным бухгалтером команды загрузки правил в форме синхронизации может просто не быть.
Подключение правил к синхронизации данных в типовой конфигурации
Этот путь нужен, когда обмен уже настроен через помощник синхронизации (например, «Бухгалтерия ↔ Управление торговлей» старого формата) и нужно заменить типовые правила своими, доработанными.
Шаг 1. Откройте настройку обмена
- Перейдите в
Администрирование → Синхронизация данных. - Убедитесь, что флажок «Синхронизация данных» включён.
- Откройте
Настройки синхронизации данныхи двойным щелчком откройте нужную настройку.
Шаг 2. Перейдите к правилам
В форме настройки есть команда, связанная с правилами синхронизации (в разных релизах она в меню «Ещё» или в разделе дополнительных настроек). Откроется форма, где для обмена указано, какие правила используются: типовые из конфигурации или загруженные из файла.
Шаг 3. Загрузите файл
- Переключите вариант на использование правил, загруженных из файла.
- Нажмите загрузку из файла и укажите XML или ZIP-архив.
- Дождитесь сообщения об успешной загрузке. Программа покажет имя конфигурации и версию из шапки правил.
Если правила поставляются архивом, внутри обычно лежат три файла:
| Файл | Что в нём |
|---|---|
ExchangeRules.xml | правила конвертации для выгрузки из текущей базы |
CorrespondentExchangeRules.xml | правила для обратного направления, которые нужны базе-корреспонденту |
RegistrationRules.xml | правила регистрации: какие изменения попадают в обмен |
Если загружаете правила только в одну базу, вторая сторона продолжит работать по своим типовым правилам. При двусторонней синхронизации меняйте правила с обеих сторон, иначе база-приёмник будет ожидать одну структуру, а получать другую.
Шаг 4. Проверьте результат
Запустите синхронизацию вручную командой «Синхронизировать» и посмотрите, сколько объектов отправлено и получено. Первый обмен после смены правил лучше провести на копии базы-приёмника.
Загрузка правил обмена в обработку «Универсальный обмен данными в формате XML»
Это универсальный способ: работает между любыми базами 8.x и не требует настройки синхронизации. Обработку V8Exchan83.epf распространяют вместе с «Конвертацией данных» 2.x, она же есть в составе обработок с диска ИТС.
Выгрузка из базы-источника
- Откройте базу-источник в режиме 1С:Предприятие.
- Откройте обработку через
Файл → Открыть(или через главное меню, если панель «Файл» скрыта). - На вкладке выгрузки укажите имя файла правил обмена и нажмите кнопку загрузки правил.
- В дереве правил выгрузки отметьте флажками нужные объекты: например, только «Номенклатура» и «Контрагенты».
- Задайте период для документов. Для справочников период не нужен.
- Укажите имя файла данных, куда запишется результат.
- Нажмите «Выгрузить данные».
Загрузка в базу-приёмник
- Откройте ту же обработку в базе-приёмнике.
- Переключитесь на вкладку загрузки.
- Укажите файл данных, полученный при выгрузке.
- Нажмите «Загрузить данные ».
Правила в приёмник загружать не нужно: они записываются внутрь файла данных при выгрузке.
Внешние обработки открываются, только если у пользователя есть право на интерактивное открытие внешних обработок. В Бухгалтерии 3.0 и УТ 11 при открытии появится предупреждение безопасности, его нужно подтвердить.
Параметры конвертации, которые стоит настроить
У обработки много настроек, но на результат влияют несколько. Ниже — те, которые меняют поведение обмена.
| Параметр | Когда включать | Что даёт |
|---|---|---|
| Использование транзакций | при загрузке больших объёмов | при ошибке откатываются изменения порции, а не остаются полузаписанными |
| Отладочный режим | при написании и проверке правил | подробная информация о том, какое правило упало |
| Файл протокола обмена | всегда | всё, что произошло при обмене, пишется в текстовый файл |
| Дописывать в протокол | при серии обменов | история не затирается при каждом запуске |
Параметры, заданные внутри правил
Разработчик правил может вынести параметры в отдельный список: например, организацию, склад по умолчанию или признак «выгружать только проведённые». Они появляются в обработке после загрузки правил на отдельной вкладке параметров. Заполните их до выгрузки: незаполненный параметр часто означает пустые реквизиты в приёмнике.
Сопоставление объектов
Правила конвертации объектов ищут в приёмнике существующий элемент по полям поиска: по уникальному идентификатору, коду, ИНН, наименованию. Если в источнике и приёмнике справочники заводили независимо, поиск по идентификатору не сработает, и при первой загрузке появятся дубли.
💡 Выход — поиск по ИНН и КПП для контрагентов и по артикулу для номенклатуры. Это меняется в правилах, в «Конвертации данных», а не в обработке.
Регистрация изменений и выгрузка по плану обмена
Обработка выгружает всё, что попало под отбор. Синхронизация по плану обмена работает иначе: уходят только изменения, зарегистрированные после прошлого обмена.
Как работает регистрация
При записи объекта программа проверяет правила регистрации. Если объект им соответствует, он попадает в таблицу изменений плана обмена для конкретного узла. При следующей синхронизации отправляется именно эта таблица, а после подтверждения приёма регистрация снимается.
Отсюда частая ситуация: правила подключили, обмен прошёл, а старые документы не ушли. Они были записаны до подключения, поэтому не зарегистрированы.
Как дорегистрировать данные
- 🔸 В форме настройки синхронизации есть команда просмотра состава отправляемых данных. Там можно добавить объекты на регистрацию: весь справочник или документы за период.
- 🔸 Для точечной работы используют обработку «Регистрация изменений для обмена данными» из набора ИТС: она показывает, что зарегистрировано по каждому узлу, и позволяет добавить или снять регистрацию.
- 🔸 После правки правил регистрации загрузите их заново, как в шаге 3 выше, иначе программа продолжит регистрировать изменения по старым.
Массовая регистрация всех документов за несколько лет создаёт огромный пакет обмена. Регистрируйте частями, например по кварталам, и проверяйте результат после каждой части.
Ошибки при загрузке правил и как читать протокол обмена
Когда обмен падает, первым делом нужен текст ошибки. Он есть в трёх местах.
- Протокол обработки. Текстовый файл, который вы задали в параметрах. Там указаны правило, объект и строка ошибки.
- Журнал регистрации.
Администрирование → Обслуживание → Журнал регистрации, отбор по событиям обмена данными. Сюда пишет синхронизация БСП. - Предупреждения синхронизации. В форме синхронизации данных появляется ссылка на предупреждения, если при приёме были проблемы с конкретными документами.
Если документы загрузились, но не провелись
По умолчанию многие правила загружают документы без проведения. Проверьте, есть ли в правилах параметр проведения после загрузки. Если нет — проведите загруженные документы групповой обработкой «Групповое перепроведение документов » за нужный период.
Автоматическая синхронизация по расписанию
Ручной обмен подходит для разового переноса. Для постоянной работы обмен ставят на расписание.
Расписание в синхронизации БСП
- Откройте настройку синхронизации.
- Включите синхронизацию по расписанию и задайте его: например, каждые 30 минут в рабочие часы или раз в сутки ночью.
- Сохраните настройку.
Расписание выполняет регламентное задание. Тут важна разница вариантов работы:
| Вариант базы | Кто запускает задание |
|---|---|
| Клиент-серверный | кластер серверов 1С, независимо от того, открыты ли сеансы |
| Файловый | клиентский сеанс, открытый в базе; без открытого сеанса задание не выполнится |
💡 Для файловой базы оставляйте на сервере или рабочем компьютере постоянно открытый сеанс под отдельным пользователем. Либо публикуйте базу на веб-сервере: тогда регламентные задания может выполнять веб-сервер.
Обработка из командной строки
Обмен через внешнюю обработку тоже можно автоматизировать. Платформа умеет запускать внешнюю обработку при входе в базу ключом /Execute. Обработку дорабатывают так, чтобы она при открытии брала настройки, выполняла выгрузку и закрывала сеанс.
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" ENTERPRISE /F "D:\Bases\Torg" /N "Обмен" /P "пароль" /Execute "D:\Exchange\AutoExport.epf" /DisableStartupMessages
Строку ставят в планировщик заданий Windows. Номер версии в пути подставьте свой: он совпадает с каталогом установленной платформы.
Пароль в bat-файле хранится открытым текстом. Создайте для обмена отдельного пользователя 1С с минимальными правами и ограничьте доступ к папке со скриптом.
Частые ошибки при подключении правил
- ❌ Правила загрузили в одну базу, во второй оставили типовые. Двусторонняя синхронизация ломается на первом встречном обмене.
- ❌ Обновили конфигурацию и забыли про правила. Загруженные из файла правила не обновляются вместе с конфигурацией. После обновления релиза проверьте, подходят ли они.
- ❌ Первый обмен сразу в рабочую базу. Дубли справочников проще удалить в копии, чем в живой базе с проведёнными документами.
- ❌ Не задали файл протокола. Ошибка в обработке видна на экране мельком, а без протокола её потом не восстановить.
- ❌ Перепутали правила 2.x и обмен EnterpriseData. Для обмена через формат правила XML не загружают: там меняют версию формата или пишут расширение.
Частые вопросы о правилах обмена
Можно ли вернуться к типовым правилам после загрузки своих?
Где взять правила обмена между нетиповыми конфигурациями?
Подходят ли правила от 1С 8.2 для базы 8.3?
Почему обмен прошёл без ошибок, а в приёмнике ничего нет?
Нужен ли монопольный режим для загрузки правил?
.dt перед экспериментом.