Как прервать и отменить загрузку данных в 1С 8.3

· 10 мин

Содержание

Остановить запущенную загрузку можно тремя путями, и выбор зависит от того, где именно она идёт: в открытом окне обработки — закрываете окно или жмёте Отмена; в фоновом задании — снимаете его в разделе Администрирование → Обслуживание; если 1С зависла намертво — завершаете сеанс или процесс. Отменить импорт, прервать обработку данных и откатить уже записанное — разные задачи, и решаются они по-разному.

Главная засада в том, что «отмена» в середине загрузки почти никогда не возвращает базу к исходному состоянию сама. Часть документов уже записана и проведена, часть — нет. Поэтому ниже сначала про то, как остановить процесс, а потом — как разобраться с тем, что успело залететь в базу.

Прежде чем снимать любой процесс или завершать чужой сеанс — убедитесь, что это не оборвёт работу других пользователей. В файловой базе вы рискуете только своим сеансом, в серверной — всеми.

С чего начать: где именно идёт загрузка

От ответа на этот вопрос зависит способ остановки. Загрузка в 1С бывает в трёх режимах, и прерываются они по-разному.

  • 🖥 В открытом окне обработки. Вы видите индикатор прогресса или форму с кнопкой запуска. Процесс идёт в вашем сеансе, в основном потоке.
  • ⚙️ В фоновом задании. Обработка запустила длительную операцию в фоне — окно при этом может быть свободно, а внизу крутится индикатор «Выполняется…».
  • 🔁 В регламентном задании по расписанию. Обмен или загрузка настроены срабатывать автоматически (например, ночной обмен с сайтом или другой базой).

Быстро определиться с методом поможет разбор по ситуации.

Где застряла загрузка — что делать?

Остановить обработку, которая идёт в окне

Самый частый случай — вы запустили типовую обработку (Загрузка данных из файла, загрузку из табличного документа, перенос из другой базы) и хотите прервать её на середине.

  1. Если в форме есть кнопка Отмена, Прервать или крестик закрытия окна — нажмите её. Многие типовые обработки проверяют прерывание пользователя и останавливаются на ближайшем шаге цикла.
  2. Если кнопки нет, а операция длительная — попробуйте закрыть окно обработки. Платформа спросит подтверждение прерывания текущей операции.
  3. Если и это не срабатывает, обработка не предусмотрела проверку прерывания. Тогда остаётся либо дождаться конца текущей порции данных, либо завершать сеанс (см. ниже).

Корректная остановка зависит от самой обработки: заложен ли в её код ОбработкаПрерыванияПользователя. У типовых загрузок это обычно есть, у самописных обработок — не всегда.

Важный нюанс: нажатие Отмена не откатывает уже записанные документы. Платформа оборачивает в транзакцию запись одного объекта, а не весь пакет целиком. Поэтому прерывание на середине оставит в базе всё, что успело записаться до момента остановки.

Отдельно стоит разделить два этапа у многих загрузок. Сначала данные читаются из файла в таблицу формы (этот этап прервать безопасно — в базу ещё ничего не попало), и только потом идёт запись и проведение документов. Если вы успели остановиться до нажатия кнопки записи/загрузки в базу — ничего чистить не придётся. Поэтому у незнакомого файла есть смысл сначала просто прочитать его в форму, посмотреть результат, и только убедившись, что всё верно, запускать запись.

Снять фоновое задание загрузки

Если загрузка ушла в фон (типичный случай для обменов данными и длительных обработок), остановить её из окна не получится — нужно идти в список заданий.

Путь в типовых конфигурациях на управляемых формах (Бухгалтерия, ЗУП, УТ, ERP):

  1. Откройте раздел Администрирование → группа Обслуживание → Регламентные и фоновые задания. Название пункта может немного отличаться между конфигурациями.
  2. Перейдите на закладку Фоновые задания.
  3. Найдите активное задание — у него состояние Выполняется. Ориентируйтесь по времени начала и по наименованию (в нём обычно видно, что это обмен или загрузка).
  4. Выделите задание и нажмите Отменить (команда может называться Отменить задание).

Если загрузка срабатывает сама по расписанию — одной отмены мало. Перейдите на закладку Регламентные задания, найдите нужное (обмен, загрузка курсов валют, синхронизация) и снимите флажок Включено. Иначе задание запустится заново при следующем срабатывании расписания.

Отмена фонового задания прерывает его между порциями данных. Как и в предыдущем случае, уже обработанная часть остаётся в базе.

В клиент-серверном варианте список фоновых заданий виден ещё и администратору кластера через консоль администрирования серверов (оснастка Администрирование серверов 1С Предприятия) — там же, где активные сеансы.

Если задание в состоянии Выполняется висит, но на отмену не реагирует несколько минут, оно, скорее всего, застряло внутри длинной транзакции или ждёт блокировку. В этом случае отмена сработает только после завершения текущего шага либо после снятия сеанса, в котором это задание крутится. Торопиться и снимать процесс сервера из-за одного зависшего задания не стоит — сначала дайте ему шанс завершить порцию.

Найти источник загрузки через журнал регистрации

Журнал регистрации сам по себе ничего не отменяет, но без него трудно понять, кто запустил загрузку, когда и что она успела записать. Это точка опоры перед тем, как снимать сеанс или чистить данные.

Откройте Администрирование → Обслуживание → Журнал регистрации. Если пункта не видно, журнал доступен через Главное меню → Все функции → Стандартные → Журнал регистрации.

Что настроить в отборе:

  • 📅 Период — интервал, когда шла загрузка.
  • 👤 Пользователь — под кем запущен импорт.
  • 🗂 События — Данные.Изменение, Данные.Добавление, Данные.Проведение, чтобы увидеть, какие объекты создавались.

По журналу вы поймёте границы «ущерба»: с какого времени пошли записи, сколько объектов и какого вида. Эти же данные пригодятся для отбора при очистке.

Отдельно пригодится закладка или отбор по сеансам: по номеру сеанса, под которым идёт загрузка, вы найдёте этот сеанс в списке активных пользователей и завершите именно его — не трогая остальных.

Завершить сеанс и снять зависший процесс

Это крайняя мера — когда обработка не прерывается, фоновое задание не снимается, а 1С перестала отвечать.

Завершение сеанса пользователя

В типовой конфигурации администратор может завершить сеанс через Администрирование → Обслуживание → Активные пользователи (либо Все функции → Стандартные → Активные пользователи): выделить нужный сеанс и выполнить команду завершения.

В клиент-серверном режиме сеанс удаляют через консоль администрирования серверов или через утилиту rac. По шагам: rac session list покажет активные сеансы с их идентификаторами, затем rac session terminate завершит нужный. Точный набор параметров (идентификатор кластера, сеанса) смотрите в rac help — не угадывайте синтаксис наугад.

Завершение сеанса обрывает загрузку мгновенно и без отката. Транзакция незаписанного объекта откатится, но всё, что записалось раньше, останется. Это грубее, чем кнопка Отмена.

Снятие процесса на уровне операционной системы

Если завис сам клиент 1С:

  • Файловая база. Откройте Диспетчер задач Windows и завершите процесс 1cv8.exe (или 1cv8c.exe для тонкого клиента ) — тот, что относится к зависшему окну. Пострадает только ваш сеанс.
  • Серверная база. Рабочие процессы сервера — это rphost.exe. Завершать rphost.exe вручную нельзя без крайней необходимости: в нём живут сеансы всех пользователей, и вы оборвёте работу всех. Делать это можно только в технологическое окно и с предупреждением пользователей.

После снятия процесса на уровне ОС платформа может предложить тестирование и исправление базы при следующем запуске — не отказывайтесь, если завершение было жёстким.

Когда стоит снимать сеанс или процесс, а когда — лучше потерпеть:

СитуацияДействиеРиск
Файловая база, одна ваша сессияСнять 1cv8.exeМинимальный, только ваш сеанс
Серверная база, есть кнопка «Отмена»Нажать Отмена, подождатьНет
Серверная база, фон не снимаетсяЗавершить свой сеанс через консольОборвётся ваша загрузка
Серверная база, зависло всёСнятие rphost.exe в техокноОборвутся ВСЕ пользователи

Что делать с уже загруженными данными

Отмена процесса — полдела. Главный вопрос обычно в другом: в базу залетела часть данных, и её надо убрать. Полного автоматического «отката импорта» в 1С нет, поэтому действуют одним из двух способов.

Способ 1. Восстановить из резервной копии . Самый чистый вариант, если копия сделана прямо перед загрузкой. Для файловой базы — выгрузка .dt через Конфигуратор (Администрирование → Выгрузить информационную базу) и обратная загрузка. Для серверной — восстановление средствами СУБД. Минус: откатится вся работа, сделанная после копии, а не только загрузка.

Способ 2. Удалить то, что загрузилось. Подходит, когда копии нет или нельзя терять другую работу.

  1. По журналу регистрации определите вид и период созданных объектов.
  2. Откройте нужный журнал документов , настройте отбор по дате и автору (под кем шла загрузка).
  3. Выделите загруженные документы и пометьте их на удаление.
  4. Запустите Администрирование → Обслуживание → Удаление помеченных объектов. Сначала в режиме контроля ссылок — 1С покажет, не используются ли эти объекты где-то ещё.

Если загрузка создала не документы, а записи справочников или регистров, удаление усложняется из-за ссылок. Иногда проще откатиться из копии, чем вычищать связи вручную.

Перед удалением полезно пройтись по короткому чек-листу, чтобы не снести лишнее.

Перед очисткой загруженных данных
Выполнено: 0 / 5

Как застраховаться от неудачной загрузки

Проще предотвратить, чем откатывать. Несколько правил сильно снижают риск.

  • 💾 Резервная копия перед каждой крупной загрузкой. Это единственный надёжный способ вернуть всё как было одним движением.
  • 🧪 Прогон на копии базы. Сомнительный файл или новую обработку сначала проверяйте на тестовой копии, а не на рабочей.
  • 🌙 Загрузка в нерабочее время. Длительный импорт лучше запускать, когда в базе никого нет — и прервать безопаснее, и быстрее идёт.
  • 📦 Загрузка порциями. Большой файл лучше разбить: если что-то пойдёт не так, откатывать придётся меньше.
  • ✅ Проверка файла-источника. Сверьте кодировку, формат и соответствие колонок полям 1С до запуска, а не после.

Для обменов между базами держите под контролем сопоставление полей — именно рассинхрон приводит к тому, что данные грузятся «не туда» и их потом приходится вычищать. Отдельно проверьте, не задвоятся ли объекты: если в приёмнике уже есть номенклатура или контрагенты с теми же кодами, настройте поиск по уникальному реквизиту, иначе загрузка создаст дубли вместо обновления существующих записей.

Для регулярных обменов удобно оставлять ручной старт на первых прогонах: запускаете загрузку сами, смотрите результат, и только убедившись в стабильности — переводите на расписание. Так проще поймать проблему, пока объём ещё небольшой.

Сопоставление полей
Колонка файла→Реквизит в 1С
Код/Артикул→Код номенклатуры
Наименование→Наименование
Ставка НДС→Значение из справочника ставок
Единица измерения→Единица из классификатора

Частые вопросы

Нажал «Отмена» на середине загрузки — почему часть документов всё равно записалась?
Платформа записывает объекты по одному в отдельных транзакциях, а не весь пакет целиком. Отмена останавливает цикл, но уже записанное до этого момента остаётся в базе. Чтобы убрать его, восстанавливайтесь из копии или помечайте документы на удаление.
Можно ли отменить загрузку, если она идёт по расписанию ночью?
Отмены разового задания мало — его запустит расписание снова. Зайдите в Регламентные и фоновые задания, на закладке регламентных снимите флажок Включено у нужного обмена или загрузки, и только потом отменяйте активное фоновое задание.
Чем грозит снятие процесса `rphost.exe` на сервере?
Он обслуживает сеансы всех пользователей кластера. Его завершение оборвёт работу всех, кто сейчас в базе, с возможным повреждением незаписанных данных. Делайте это только в технологическое окно, предупредив пользователей, и запланируйте тестирование и исправление базы после.
Как понять, какие именно документы создала загрузка?
Через журнал регистрации с отбором по периоду, пользователю и событиям изменения/добавления данных. Он покажет вид и количество созданных объектов — по этим данным настраивается отбор для удаления.
Есть ли в 1С кнопка «откатить импорт» одним нажатием?
Нет. Единый откат всей загрузки обеспечивает только восстановление из резервной копии, сделанной перед импортом. Поэтому копия перед крупной загрузкой — не формальность.