При работе в среде 1С:Предприятие 8 пользователи и разработчики часто сталкиваются с системным сообщением: «Интерактивный выбор режима проведения документа не поддерживается». Ситуация осложняется тем, что ошибка может возникать даже у пользователей с полными правами, что вводит в заблуждение. Рассмотрим подробно природу этой ошибки, проанализируем причины ее возникновения и разберем пошаговые методы решения проблемы.
Прежде чем переходить к исправлению, разберем, что именно пытается сообщить нам платформа. В системе 1С существует два основных режима проведения документа: оперативное и неоперативное. Оперативное проведение используется для фиксации событий «здесь и сейчас», когда документ проводится текущим временем. Неоперативное — для проведения документов «задним числом».
За то, как именно будет выбран этот режим, отвечает свойство формы документа ИспользоватьРежимПроведения. Оно может принимать три значения:
Ошибка «Интерактивный выбор режима проведения документа не поддерживается» возникает в тот момент, когда в настройках стоит Запрашивать, но система по какой-то причине не может или ей запрещено показывать это диалоговое окно пользователю.
Проанализируем наиболее частое и эффективное решение. Как показывает практика, в современных конфигурациях на управляемых формах (особенно в таких как «1С:ИТИЛ» или решениях на базе БСП) оптимальным является автоматический выбор режима. Рассмотрим, как внести эти изменения:
ФормаДокумента).ИспользоватьРежимПроведения. Скорее всего, там установлено значение Запрашивать.Автоматически.После этого платформа перестанет пытаться вызвать интерактивный диалог. Если дата документа совпадает с текущей — проведение пройдет как оперативное. Если дата отличается — как неоперативное. Это исключает конфликт интерфейса и логики проведения.
Выясним причину, почему даже при полных правах может возникать отказ. В системе 1С права на «Проведение» и «Интерактивное проведение» — это разные сущности. Посмотрим на список прав в роли более внимательно:
Для того чтобы документ проводился без ошибок, у пользователя в его роли должны быть отмечены следующие пункты:
ОбработкаПроведения.Проанализируем ситуацию: если в метаданных документа стоит запрет на неоперативное проведение, а вы пытаетесь провести документ датой, меньшей чем текущая, система заходит в тупик. Она не может выполнить действие и не может запросить выбор, так как выбор предопределен запретом.
Рассмотрим технический нюанс, связанный с типами клиентов 8.3. В режиме веб-клиента или тонкого клиента с низким качеством соединения вызов любых интерактивных окон (вопросов, диалогов) внутри транзакции записи запрещен.
Если в коде модуля формы или модуля объекта в процедурах ПередЗаписью или ПриЗаписи начинается транзакция, а свойство формы ИспользоватьРежимПроведения установлено в Запрашивать, платформа выдает ошибку, так как она «не поддерживает» остановку процесса ради ожидания ответа пользователя в данном контексте.
В этом случае единственным верным решением будет установка режима Автоматически, как мы разобрали в первом решении.
Посмотрим на ситуацию со стороны программного кода. Иногда разработчики принудительно вызывают запись документа из кода, что также может конфликтовать с интерактивными настройками. Если вам необходимо программно провести документ, убедитесь, что вы явно передаете режим проведения, чтобы система не пыталась ничего спрашивать у пользователя.
Пример корректного программного проведения:
&НаСервере
Процедура ПровестиДокументНаСервере(СсылкаНаДокумент)
ДокументОбъект = СсылкаНаДокумент.ПолучитьОбъект();
// Явно указываем режим записи и режим проведения
ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
КонецПроцедуры
Обратите внимание, что использование РежимПроведенияДокумента.Неоперативный гарантирует, что система не будет проверять остатки на текущий момент времени (в зависимости от логики конфигурации), а проведет документ по состоянию на его дату.
В специализированных решениях, таких как 1С:ИТИЛ, часто внедрена статусная модель. Документы могут переходить из состояния в состояние (например, «Заявка» -> «В работе» -> «Закрыта»). В таких системах проведение часто привязано к смене статуса.
Если вы пытаетесь провести документ стандартной кнопкой, а логика системы предполагает проведение только через кнопку «Сменить статус», может возникнуть конфликт режимов. В этом случае стоит проверить настройки жизненного цикла документа в пользовательском режиме самой программы (в разделе настроек ИТИЛ).
Подводя итог, можно сказать, что ошибка «Интерактивный выбор режима проведения документа не поддерживается» — это сигнал о несоответствии настроек интерфейса (формы) и текущих прав или условий окружения.
Для быстрого исправления рекомендуем:
ИспользоватьРежимПроведения = Автоматически.Эти действия в 99% случаев решают проблему и позволяют пользователям беспрепятственно работать с документами в системе.