Остановка и отмена выгрузки данных в 1С 8.3
Содержание
Выгрузку в 1С 8.3 останавливают в разделе Администрирование → Синхронизация данных: там отключают расписание автоматического обмена, а саму настройку синхронизации можно временно выключить флажком Синхронизация данных в этом же разделе. Если обмен уже запущен и крутится в фоне, его прекращают через завершение фонового задания — об этом в конце.
Слово «отменить» для обмена означает три разных действия. Можно остановить обмен, который сейчас выполняется. Можно убрать из очереди изменения, которые ещё не ушли в другую базу, — это и есть собственно отмена выгрузки. И можно отыграть назад то, что уже выгрузилось и принялось на другой стороне, — это самое сложное, потому что данные живут уже в двух базах.
Ниже — что делать в каждом из этих случаев: от безопасного отключения расписания до принудительной остановки процесса на сервере.
Что именно вы отменяете: три стадии выгрузки
Сначала определите, на какой стадии находятся данные. От этого зависит всё остальное.
- 🟢 Изменения ещё не отправлены. Объекты зарегистрированы к выгрузке в узле обмена, но сообщение не формировалось. Это точка без последствий — регистрацию можно снять, и получатель ничего не узнает.
- 🟡 Сообщение сформировано, но не принято. Файл обмена лежит в каталоге или на сервисе, вторая база его ещё не загрузила. Выгрузку можно отменить, удалив сообщение и сбросив счётчик отправленного.
- 🔴 Сообщение принято другой базой. Данные уже проведены на второй стороне. Простой отмены нет — нужен обратный обмен или ручная правка в базе-приёмнике.
Красная стадия — и есть «точка невозврата». Прежде чем трогать узлы обмена и счётчики, сделайте резервную копию обеих баз. Рассинхронизация номеров сообщений лечится тяжелее, чем любая ошибочная выгрузка.
Как отключить автоматическую синхронизацию через интерфейс
Самый частый запрос — чтобы обмен перестал запускаться сам. Для этого расписание отключают, а данные при этом остаются нетронутыми.
- Откройте
Администрирование → Синхронизация данных. В БП 3.0, ЗУП 3.1 и УТ 11 раздел называется одинаково; если флажокСинхронизация данныхснят, список настроек будет скрыт — включите его. - В списке настроек синхронизации выделите нужную (например, обмен с Бухгалтерией или с сайтом).
- Откройте расписание выполнения и отключите его. После этого регламентное задание больше не будет стартовать обмен по таймеру.
Если нужно совсем приостановить обмен, не удаляя настройку, снимите общий флажок Синхронизация данных в этом разделе. Настройки, узлы и история останутся на месте, а автоматический и ручной запуск станут недоступны, пока флажок не вернёте.
Отключение расписания не прерывает обмен, который уже выполняется в этот момент. Оно действует только на следующие запуски. Текущий сеанс обмена завершится сам или его придётся снимать через фоновое задание.
Полностью убрать обмен можно удалением настройки синхронизации, но это крайняя мера: вместе с настройкой пропадут привязки и история, а повторная настройка «с нуля» заново прогонит большой объём данных.
Как снять регистрацию изменений и отменить неотправленную выгрузку
Когда синхронизация идёт, система регистрирует изменённые объекты за каждым узлом обмена. Эта очередь к выгрузке и есть то, что уйдёт в следующем сообщении. Если выгрузку нужно отменить до отправки — чистят именно регистрацию.
В типовых конфигурациях на управляемых формах состав отправляемых данных смотрят из карточки настройки синхронизации — там есть команда для просмотра и изменения зарегистрированного к отправке. Через неё можно как добавить объект в выгрузку, так и убрать из неё.
Если команды в интерфейсе нет или объектов слишком много, регистрацию снимают обработкой «Регистрация изменений для обмена». Запустите её через Все функции → Обработки (меню Все функции включается в настройках, раздел Главное → Настройки → Параметры). В обработке:
- выберите план обмена и конкретный узел;
- укажите типы объектов или конкретные элементы;
- выполните удаление регистрации для выбранного узла.
Снятие регистрации необратимо для этого цикла обмена: если объекты действительно должны были уйти, вы их «потеряете» в выгрузке, и получатель не увидит эти изменения, пока вы не зарегистрируете их заново. Снимайте регистрацию точечно, а не «всё по узлу», если не уверены.
Для разработчика тот же результат даёт метод УдалитьРегистрациюИзменений в коде или работа с регистрацией через конфигуратор, но в рабочей базе безопаснее действовать через обработку из Все функции.
Как удалить сформированное сообщение из очереди обмена
Если сообщение уже сформировано, но вторая база его не загрузила, выгрузку отменяют на уровне очереди сообщений.
Файловый и каталоговый обмен. Сообщения — это XML-файлы в каталоге обмена (имя вида Message_ПрефиксОтправителя_ПрефиксПолучателя.xml). Путь к каталогу виден в настройке синхронизации, в параметрах подключения. Чтобы отменить передачу:
- Убедитесь, что приёмник ещё не забрал файл (в его каталоге файла нет или он не обработан).
- Удалите файл сообщения из каталога.
- В карточке узла обмена (план обмена → узлы) при необходимости уменьшите
Номер отправленногосообщения, чтобы система сформировала выгрузку заново с нужного места.
Обмен через интернет -сервис или по расписанию. Отдельного файла, который можно удалить, здесь нет: сообщение передаётся напрямую. В этом случае отменяют не «файл», а повторную отправку — снимают регистрацию изменений (предыдущий раздел) и, если нужно, корректируют счётчики узла.
Счётчики Номер отправленного и Номер принятого — служебные. Менять их вручную стоит, только когда вы понимаете, к чему это приведёт: занижение номера заставит систему переотправить порцию данных, завышение — пропустить её. Любая правка счётчиков узла требует предварительной резервной копии базы.
Таблица — что с чем делать по типу обмена:
| Тип обмена | Где лежит сообщение | Как отменить передачу |
|---|---|---|
| Файловый (каталог) | XML-файл в каталоге обмена | Удалить файл до загрузки приёмником |
| FTP | Файл на FTP-сервере | Удалить файл в каталоге FTP |
| Через интернет-сервис 1С | Передаётся напрямую | Снять регистрацию, скорректировать счётчик узла |
| Прямое подключение к БД | Передаётся напрямую | То же, что для сервиса |
Как разобрать выгрузку по журналу регистрации
Журнал регистрации сам по себе ничего не откатывает — это история событий. Но без него не понять, что именно ушло, когда и с какими ошибками. Для разбора «что натворила выгрузка» он незаменим.
Откройте журнал через Все функции → Журнал регистрации (или Главное → Настройки → ... в зависимости от того, как включено меню функций). Дальше работайте с отбором:
- 📌 отфильтруйте события по приложению и по комментарию, где фигурирует синхронизация или план обмена;
- 📌 ограничьте период временем обмена — так отсеются посторонние записи;
- 📌 ищите ошибки и предупреждения: по ним видно, какие объекты не прошли по дате запрета изменений или вызвали конфликт.
По журналу вы восстанавливаете картину: какие объекты выгрузились, какие отклонил приёмник, где возникли конфликты версий. Дальше откат делают осознанно — через обратный обмен исправленными данными или ручную правку конкретных документов, а не вслепую.
На что смотреть в первую очередь:
- событие начала и окончания обмена — по ним видно, уложился сеанс в окно или оборвался;
- записи об ошибках приёма на стороне получателя — это объекты, которые выгрузились, но не проведены;
- предупреждения о дате запрета и о конфликтах — по ним ясно, какие изменения «зависли» и будут повторяться в каждом следующем сеансе, пока их не разрулить.
Конфликты и непринятые по дате запрета объекты в типовых конфигурациях также собираются в разделе Администрирование → Синхронизация данных → Предупреждения. Это удобнее журнала, когда нужно быстро увидеть «что не доехало».
Как принудительно остановить обмен на уровне сервера
Если обмен запущен и завис, он выполняется как фоновое задание. Остановить его из обычного интерфейса обмена нельзя — нужно завершить само задание.
Через интерфейс конфигурации. Откройте Администрирование → Обслуживание → Регламентные и фоновые задания. На закладке фоновых заданий найдите выполняющееся задание синхронизации и отмените его. Там же, на закладке регламентных заданий, можно отключить задание Синхронизация данных, чтобы оно не стартовало снова.
На уровне кластера серверов. Когда задание не отменяется из интерфейса, его снимают через сеанс. В консоли администрирования серверов (или утилитой rac) находят сеанс обмена и завершают его. Нужный сеанс опознают по приложению — фоновое задание обмена работает как BackgroundJob, а не как клиентский сеанс пользователя. Прежде чем завершать, убедитесь, что это именно обмен, а не чужая долгая операция под тем же фоновым заданием. Для rac используйте команды, в которых уверены:
rac session list --cluster=<id кластера>
rac session terminate --cluster=<id кластера> --session=<номер сеанса>
Точные подкоманды и параметры смотрите в rac help — состав ключей зависит от версии платформы. Клиент и консоль обращаются к агенту кластера (порт 1540), менеджер кластера слушает 1541, диапазон портов рабочих процессов задаётся в свойствах рабочего сервера.
Завершение сеанса или фонового задания прерывает обмен «на полпути»: часть данных может уйти, часть — нет, счётчики узла рассинхронизируются. Делайте это, только если обмен действительно завис, предупредите пользователей и после завершения проверьте номера отправленного/принятого в карточках узлов.
Перезапуск службы 1C:Enterprise 8.3 Server Agent или перезагрузка сервера снимут вообще все сеансы и фоновые задания, не только обмен. Это отключит от базы всех пользователей, поэтому к такому шагу прибегают в последнюю очередь и в согласованное окно.
Как настроить обмен, чтобы выгрузки не срывались
Большинство аварийных отмен — следствие настроек, а не случайностей. Несколько правил снимают проблему заранее.
- ⏱ Разнесите расписание. Если обмен и тяжёлые регламентные операции (закрытие месяца , пересчёт итогов) идут одновременно, задание обмена виснет на блокировках. Поставьте синхронизацию на часы низкой нагрузки.
- 📅 Следите за датой запрета изменений. Объекты «старее» даты запрета не выгружаются и копятся в предупреждениях. Сдвигайте дату согласованно в обеих базах.
- 🔁 Включите автоматическое выполнение по расписанию только после обкатки. Сначала прогоните обмен вручную несколько раз, убедитесь, что конфликтов нет, и лишь потом ставьте на таймер.
- 🧩 Не держите два встречных обмена с пересекающимся составом данных без настройки приоритета. Иначе каждая сторона будет перетирать изменения другой, и это выглядит как «самопроизвольные выгрузки».
- 💾 Настройте регулярный бэкап. Отмена выгрузки после приёма почти всегда упирается в резервную копию — без неё откат превращается в ручную правку сотен документов.
Если обмен срывается регулярно и причину найти не удаётся, временно отключите расписание и переведите синхронизацию в ручной режим: так вы контролируете каждый запуск и видите ошибку сразу, а не постфактум в журнале.
Частые вопросы
Если отключить расписание, данные, которые уже накопились к выгрузке, потеряются?
Чем отличается отключение флажка «Синхронизация данных» от удаления настройки?
Можно ли отменить выгрузку, которую уже приняла вторая база?
Почему после ручного изменения номера отправленного данные ушли дважды?
Номера отправленного заставляет систему переотправить уже выгруженную порцию. Приёмник получает дубль изменений. Счётчики трогают только при точном понимании, какой пакет нужно повторить, и всегда после резервной копии.Обмен завис, кнопки «Отмена» в интерфейсе нет — что делать?
Администрирование → Обслуживание → Регламентные и фоновые задания либо завершают сеанс в консоли администрирования серверов. После остановки проверьте счётчики узлов — обмен мог оборваться на середине.