К статье
Практический материал

Администрирование · 10 мин

Что значит «интерактивное» в 1С и как это работает

Что означает «интерактивное» в 1С: интерактивное удаление, запись, проведение. Чем интерактивный режим отличается от программного и как избежать ошибок.

В сообщениях 1С часто встречается слово «интерактивное»: «интерактивное удаление», «интерактивная запись», «интерактивное проведение». Для пользователя без опыта программирования эти формулировки выглядят загадочно, хотя за ними стоит простая идея: действие выполняет человек через интерфейс программы, а не код, запущенный автоматически.

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

Что означает термин «интерактивный режим» в 1С

Интерактивный режим — это любая работа пользователя с данными через формы программы: создание документа кнопкой «Создать», проведение кнопкой «Провести», удаление клавишей Delete, отмена проведения из меню документа. Система «видит», что операцию инициировал человек, и может применить к ней особую логику.

Программный режим — это выполнение тех же операций из встроенного языка 1С: методами Записать(), УстановитьПометкуУдаления(), Удалить() и другими. Так работают обработки загрузки данных, обмены, регламентные задания, внешние отчёты и интеграции с сайтами или другими системами.

Разработчик конфигурации может определить, откуда пришла команда, и по-разному реагировать: например, при интерактивном проведении показать пользователю вопрос, а при программном — просто зафиксировать ошибку в журнале. Поэтому один и тот же документ может вести себя по-разному в зависимости от способа записи.

Где встречается слово «интерактивное» в типовых конфигурациях

Чаще всего пользователь сталкивается с этим термином в нескольких типовых ситуациях. Знание контекста помогает правильно понять сообщение программы и не испугаться незнакомой формулировки.

  • Интерактивное удаление — удаление объекта пользователем через пометку удаления или непосредственное удаление, в отличие от удаления обработкой или обменом.
  • Интерактивная запись — запись элемента справочника или документа из формы, когда срабатывают проверки заполнения и вопросы системы.
  • Интерактивное проведение — проведение документа кнопкой, при котором могут выводиться вопросы и предупреждения.
  • Интерактивное изменение данных — любое ручное редактирование, которое фиксируется в версионировании и истории изменений как действие конкретного пользователя.

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

Интерактивное удаление: как работает и чем опасно

При интерактивном удалении через пометку пользователь сначала помечает объект на удаление, а затем администратор запускает штатную обработку «Удаление помеченных объектов». Она проверяет, нет ли ссылок на объект в других данных: документах, регистрах, справочниках. Если ссылки есть, объект не удаляется физически, а остаётся помеченным.

Непосредственное удаление (через Shift+Delete или специальные права) минует этап пометки и удаляет объект сразу. Во многих конфигурациях эта возможность отключена или ограничена правами, потому что она не проверяет ссылочную целостность так же строго и может оставить в базе «битые ссылки» — ссылки на несуществующие объекты.

Программное удаление из обработок и обменов работает иначе: код сам решает, проверять ли ссылки, и может удалить объект без каких-либо вопросов. Поэтому массовые обработки удаления должны запускаться только администратором, понимающим последствия.

Интерактивная запись и проведение документов

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

При программной записи разработчик может отключить часть этих проверок. Например, метод записи с параметрами позволяет провести документ без контроля остатков или загрузить объект из обмена без интерактивных вопросов. Это ускоряет загрузку больших объёмов, но требует, чтобы корректность данных обеспечивал сам код.

Сравнение режимов

Интерактивная запись

Пользователь видит все ошибки и вопросы, работают проверки прав и заполнения. Подходит для ручного ввода, но медленно при больших объёмах.

Программная запись

Быстро и без вопросов, подходит для обменов и обработок. Риск: часть проверок может быть отключена, ошибки попадают только в журнал.

Загрузка через обмен данными

Объекты записываются в режиме загрузки, обработчики и бизнес-логика часто не срабатывают. Требует контроля со стороны администратора.

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

Как разработчик определяет режим и зачем это нужно

Во встроенном языке 1С есть инструменты, позволяющие отличить интерактивное действие от программного. Например, в обработчиках событий форм и объектов можно проверить, открыта ли форма, вызвано ли действие из интерфейса, и соответственно показать вопрос пользователю или записать предупреждение в журнал.

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

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

Как проверить, в каком режиме выполнено действие

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

Контрольные точки

Как проверить результат

Автор изменения в версионировании объекта
Норма

Указан реальный пользователь, время совпадает с его работой

Тревожный признак

Изменения от служебного пользователя обмена, хотя объект должен был вводиться вручную

Журнал регистрации
Норма

Событие записи привязано к сеансу пользователя

Тревожный признак

Массовые записи в нерабочее время от фонового задания

Поведение документа
Норма

При ручном проведении все проверки и вопросы срабатывают

Тревожный признак

Вручную работает, при загрузке обменом — нет движений или данных

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

Типичные ошибки и ограничения

Типичные ошибки
01
Массовое удаление объектов обработкой без проверки ссылок — появляются битые ссылки, перестают открываться документы и строиться отчёты.
02
Ожидание вопросов системы при фоновой загрузке — диалоги в фоне не показываются, задание завершается с ошибкой или молча пропускает объекты.
03
Запись данных программно без проверок заполнения — в базе появляются документы без обязательных реквизитов, которые потом не проводятся.
04
Выдача прав на интерактивное удаление всем пользователям — объекты удаляются без контроля, восстановить их можно только из резервной копии.

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

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

Итог

Что важно запомнить

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

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

Что значит «интерактивное удаление» в сообщении 1С?

Это удаление объекта пользователем через интерфейс: пометку на удаление или непосредственное удаление из формы или списка. Сообщение с такой формулировкой обычно означает, что операцию инициировал человек, а не обмен или обработка, и к ней применяются стандартные проверки прав и ссылок.

Почему документ проводится вручную, но не проводится при загрузке из обмена?

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

Можно ли удалить объект сразу, минуя пометку на удаление?

Технически — да, если у пользователя есть право на интерактивное удаление, обычно через сочетание Shift+Delete. Но такой способ не проверяет ссылки на объект и может оставить в базе битые ссылки. В рабочей базе безопаснее использовать пометку удаления и штатную обработку удаления помеченных объектов.

Как узнать, кто изменил объект — пользователь или обмен?

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

Чем опасны внешние обработки массового изменения данных?

Они работают в программном режиме и могут изменять или удалять тысячи объектов без вопросов и без полного набора проверок. Запускайте такие обработки только после резервного копирования и только из доверенных источников, желательно сначала на копии базы.

Почему фоновое задание завершается с ошибкой, а та же обработка вручную работает?

Частая причина — код пытается показать пользователю вопрос или окно, что невозможно в фоновом сеансе. Это ошибка в коде обработки: диалоги должны вызываться только при интерактивной работе, исправить её может разработчик.