Откуда 1С:Предприятие берёт «Операция не разрешена» и как найти виновника
Содержание
Ошибка «Операция не разрешена» в 1С возникает, когда действие запрещено на одном из уровней: правами пользователя, режимом работы базы, текстом запроса, СУБД или операционной системой. Чтобы найти причину, откройте подробный текст ошибки (Подробнее в окне сообщения) и посмотрите, откуда она пришла: из модуля конфигурации, из запроса, от сервера СУБД или от системного вызова.
Важная деталь для тех, у кого сервер 1С стоит на Linux. Фраза «Операция не разрешена» — это дословный русский перевод системной ошибки Operation not permitted (EPERM). Если она пришла вместе с путём к файлу или каталогу, проблема почти всегда в правах на диске, а не в настройках 1С.
Как понять, на каком уровне запрещена операция
Одна и та же короткая фраза прячет разные причины. Источник выдаёт хвост сообщения: в нём бывает имя модуля, строка запроса, код ошибки СУБД или путь к файлу.
Где смотреть полный текст:
- 🔎 окно ошибки — кнопка
Подробнееили ссылка с подробным текстом; - 📜 журнал регистрации — в БП 3.0 и ЗУП 3.1 путь
Администрирование → Обслуживание → Журнал регистрации, отбор по уровню «Ошибка» и по пользователю; - 🖥 технологический журнал сервера — файл
logcfg.xmlв каталогеconfплатформы, событияEXCP; - 🐘 журнал СУБД — для PostgreSQL файлы в каталоге
logкластера, для MS SQL журнал ошибок в SQL Server Management Studio.
Сопоставьте признаки с уровнем:
| Что видно в подробном тексте | Уровень | Куда идти |
|---|---|---|
| Имя модуля, «Нарушение прав доступа», имя объекта метаданных | права пользователя | роли и группы доступа |
Текст запроса, слово ГДЕ, позиция с <<?>> | язык запросов | исправить запрос |
permission denied, код SQLSTATE, имя таблицы _Document… | СУБД | права роли или логина в СУБД |
Путь вида /var/… или D:\Bases\… | файловая система | владелец, атрибуты, антивирус |
| Упоминание браузера, расширения, синхронного вызова | клиентское приложение | настройки веб-клиента |
Права пользователя: роли, профили и группы доступа
Самый частый сценарий в типовых конфигурациях на БСП: пользователь открывает документ или нажимает «Провести», а программа отказывает. Технически это не «поломка», а штатный отказ системы прав.
Иерархия в БП 3.0, ЗУП 3.1 и УТ 11 одинаковая:
- Роль — набор прав на объекты метаданных (чтение, добавление, изменение, проведение). Задаётся в конфигурации.
- Профиль группы доступа — набор ролей под должность: «Бухгалтер», «Кладовщик», «Кадровик».
- Группа доступа — профиль плюс конкретные участники и, при необходимости, ограничения по значениям: организации, склады, подразделения.
- Пользователь — входит в одну или несколько групп. Права из разных групп суммируются.
Где это настраивается: Администрирование → Настройки пользователей и прав. Там же ссылки на списки «Пользователи», «Группы доступа» и «Профили групп доступа».
Порядок проверки прав
- Откройте карточку пользователя и посмотрите, в каких группах доступа он состоит.
- В группе проверьте профиль и вкладку с ограничениями: если пользователю открыта только одна организация, документ по другой организации он не запишет.
- Посмотрите, включено ли ограничение доступа на уровне записей (RLS). Флажок находится в тех же настройках пользователей и прав.
- Проверьте даты запрета изменения данных. В БП 3.0 флажок и настройка — в
Администрирование → Настройки пользователей и прав. Документ за закрытый период не перепроводится, даже если ролей достаточно.
Быстрая проверка: временно добавьте пользователя в группу с полными правами в копии базы и повторите действие. Ошибка исчезла — дело в правах. Осталась — ищите на других уровнях.
Нестандартные роли
Если конфигурация дорабатывалась, роль могла быть добавлена в обход профилей — прямо в Конфигураторе, через Администрирование → Пользователи. При следующей записи профиля из режима предприятия такие роли снимаются. Признак: права пропадают после того, как кто-то поменял группу доступа. Решение — завести роль в профиль, а не назначать её вручную.
Блокировки данных и монопольный режим
Конфликты блокировок обычно дают свои тексты: «Конфликт блокировок при выполнении транзакции», «Превышено максимальное время ожидания предоставления блокировки», «Ошибка блокировки объекта». Но пользователи пересказывают их как «не разрешает записать», поэтому этот уровень стоит проверить.
Три разных механизма:
- 🔒 Объектная блокировка — документ открыт на редактирование у другого пользователя. Второй пользователь не сможет его записать, пока первый не закроет форму.
- 🧱 Транзакционная (управляемая) блокировка — две операции одновременно пишут в одни и те же записи регистров. Например, два кладовщика проводят расход по одной номенклатуре. Вторая операция ждёт и падает по таймауту.
- 🚪 Монопольный режим — нужен для обновления структуры базы, загрузки файла
.dt, тестирования и исправления. Пока в базе есть другие сеансы, установить его нельзя.
Что делать по каждому случаю:
| Механизм | Как проверить | Решение |
|---|---|---|
| Объектная блокировка | Список активных пользователей: Администрирование → Обслуживание | Попросить коллегу закрыть форму |
| Управляемая блокировка | Повторить через минуту; технологический журнал, события TLOCK, TTIMEOUT | Разнести тяжёлые операции по времени |
| Монопольный режим | Консоль администрирования серверов, список сеансов базы | Предупредить пользователей и завершить сеансы |
Принудительное завершение сеансов в консоли кластера обрывает работу людей: незаписанные документы пропадут. Делайте это только после предупреждения пользователей, в нерабочее время или в согласованное окно.
Для файловой базы признак висящего сеанса — файл 1Cv8tmp.1CD рядом с 1Cv8.1CD. Его наличие при закрытой у всех программе говорит о том, что какой-то процесс 1cv8.exe остался в памяти. Сначала завершите процесс через диспетчер задач на том компьютере, где он висит, и только потом трогайте файлы.
«Операция не разрешена в предложении ГДЕ»: ошибка в тексте запроса
Если в подробном тексте видно слово ГДЕ и фрагмент запроса, права пользователя ни при чём. Платформа отказалась выполнять конструкцию, которую язык запросов в этом месте не допускает. Ошибка возникает при формировании отчёта, открытии списка или в своей обработке.
Две типичные причины:
- Агрегатная функция в условии ГДЕ.
СУММА,КОЛИЧЕСТВО,МАКСИМУМвычисляются после группировки, аГДЕотбирает записи до неё. Условие на итог переносят вИМЕЮЩИЕ. - Сравнение строки неограниченной длины. Реквизит типа «Строка» без длины (часто это «Комментарий») нельзя напрямую сравнивать в условии. Его приводят к строке фиксированной длины.
Как было и как надо:
// Ошибка: агрегат в ГДЕ
ВЫБРАТЬ
Продажи.Номенклатура,
СУММА(Продажи.Сумма) КАК Сумма
ИЗ
РегистрНакопления.Продажи КАК Продажи
ГДЕ
СУММА(Продажи.Сумма) > 10000
СГРУППИРОВАТЬ ПО
Продажи.Номенклатура
// Правильно: условие на итог в ИМЕЮЩИЕ
ВЫБРАТЬ
Продажи.Номенклатура,
СУММА(Продажи.Сумма) КАК Сумма
ИЗ
РегистрНакопления.Продажи КАК Продажи
СГРУППИРОВАТЬ ПО
Продажи.Номенклатура
ИМЕЮЩИЕ
СУММА(Продажи.Сумма) > 10000
Для строки неограниченной длины:
ГДЕ
ВЫРАЗИТЬ(Док.Комментарий КАК СТРОКА(200)) = &Комментарий
Если запрос сидит в типовом отчёте без доработок, а ошибка появилась после обновления, проверьте подключённые расширения и внешние отчёты. Чаще всего ломается именно доработка, написанная под прежнюю структуру объектов.
СУБД, файловая система и драйверы
В клиент-серверной базе сервер 1С подключается к СУБД под отдельным логином. Если у этого логина отобрали права или базу восстановили из копии под другим владельцем, платформа получит отказ от СУБД и передаст его пользователю.
PostgreSQL
Признак — в подробном тексте ERROR: permission denied for table или permission denied for schema. Что проверить:
- владельца базы и таблиц: после восстановления из дампа под пользователем
postgresтаблицы могут принадлежать не той роли, которая прописана в параметрах базы на кластере 1С; - что роль, указанная в свойствах информационной базы в консоли кластера, совпадает с владельцем;
- свободное место в табличном пространстве и на разделе с каталогом временных файлов.
MS SQL Server
Логину сервера 1С нужна роль db_owner в базе. Ошибка часто появляется после переноса базы на другой сервер: логин создали заново, а пользователь внутри базы остался «осиротевшим» и не привязан к нему. Сопоставление логина и пользователя базы — задача администратора СУБД.
Linux: системная ошибка EPERM
Здесь «Операция не разрешена» приходит от ядра. Причины в порядке частоты:
- Владелец каталога не тот. Служба сервера 1С обычно работает от пользователя
usr1cv8; файловая база, опубликованная через Apache, — отwww-dataилиapache. - На файл установлен атрибут неизменяемости. Права
rwxпри этом выглядят нормально, но даже root не может изменить файл. - Включён SELinux, и контекст каталога не разрешает запись службе.
- Раздел смонтирован только на чтение или сетевой ресурс отдаёт «чужого» владельца.
Команды для проверки:
ls -l /path/to/base
lsattr /path/to/base/1Cv8.1CD
getenforce
mount | grep /path/to
Если lsattr показывает флаг i, снимите его командой chattr -i <файл>. Владельца меняют так:
chown -R usr1cv8:grp1cv8 /path/to/base
Меняйте владельца и атрибуты при остановленной работе с базой. Если файлом в этот момент пользуется служба, часть пользователей получит ошибки посреди записи документов.
Антивирус, права Windows и служба сервера 1С
На Windows отказ от системы обычно звучит как «Отказано в доступе», но 1С может обернуть его в собственное сообщение. Под подозрением две группы причин.
Антивирус и защита от программ-вымогателей
Антивирус держит файл базы или временный файл в момент записи, и платформа получает отказ. Особенно агрессивно ведёт себя функция контролируемого доступа к папкам в Защитнике Windows: она молча блокирует запись в защищённые каталоги.
Что добавить в исключения:
- 📁 каталог файловой базы целиком;
- 📁 каталог кластера сервера
srvinfo(по умолчанию в каталоге установки платформы или в профиле пользователя службы); - 📁 пользовательский кэш
%APPDATA%\1C\1cv8и%LOCALAPPDATA%\1C\1cv8; - ⚙️ исполняемые файлы
1cv8.exe,1cv8c.exe,ragent.exe,rmngr.exe,rphost.exe.
Проверка без отключения защиты: найдите в журнале антивируса события на момент ошибки. Запись о блокировке 1Cv8.1CD или файла из srvinfo сразу закрывает вопрос.
Учётная запись службы
Служба «Агент сервера 1С:Предприятия» работает от выделенного пользователя, обычно USR1CV8. Ему нужны права на изменение каталога srvinfo и на каталоги, куда обработки выгружают файлы. Если обработка пишет файл на сетевой ресурс, доступ нужен именно этой учётной записи, а не бухгалтеру, который нажал кнопку: код на сервере выполняется от имени службы.
Для файловой базы в общей папке права нужны всем пользователям 1С: и на уровне общего ресурса, и на уровне NTFS. Чтения недостаточно — платформа создаёт рядом служебные файлы.
Веб-клиент и тонкий клиент: что работает иначе
Бывает, что в тонком клиенте всё работает, а в браузере то же действие отказывает. Причина в ограничениях браузера, а не в правах базы.
- 🌐 Работа с файлами. Для выбора, сохранения и открытия локальных файлов веб-клиенту нужно расширение работы с файлами. Без него выгрузка и загрузка через диалог файла недоступны.
- ⏳ Синхронные вызовы. В современных браузерах модальные окна и синхронные методы запрещены. Конфигурация с параметром «Режим использования синхронных вызовов», разрешающим их, выдаст ошибку в браузере. Типовые конфигурации свежих редакций написаны асинхронно; страдают старые доработки.
- 🧩 COM-объекты и внешние компоненты. В веб-клиенте COM недоступен. Код, создающий
Excel.Applicationна клиенте, в браузере не выполнится. - 🪟 Всплывающие окна. Блокировщик браузера не даёт открыть печатную форму или отчёт в новом окне. Разрешите всплывающие окна для адреса публикации.
Отдельная история — публикация на веб-сервере. IIS работает от удостоверения пула приложений, Apache — от своего системного пользователя. Если база файловая, этому пользователю нужны права на запись в каталог базы. Без них вход через браузер упадёт, хотя тонкий клиент на том же компьютере откроет базу без вопросов.
Тонкий клиент тоже ограничен: он не исполняет код, привязанный к толстому клиенту, а на Linux и macOS не работает с COM. Если обработка писалась под толстый клиент обычного приложения, в управляемом режиме она будет отказывать.
Порядок действий администратора при сбое
Логика простая: двигайтесь от узкого к широкому. Ошибка у одного пользователя — почти наверняка права или его клиент. У всех — изменения в конфигурации, СУБД или на сервере. Только в одном отчёте — текст запроса или доработка.
Не начинайте с радикальных шагов: перезагрузки сервера, очистки кэша, переустановки платформы. Они могут временно «вылечить» блокировку, но спрячут настоящую причину, и через неделю ошибка вернётся. Перед любым изменением прав на диске, владельца базы в СУБД или профиля доступа сделайте резервную копию базы и запишите прежние значения, чтобы откатиться.
Частые вопросы
Ошибка появилась сразу после обновления конфигурации. Это права?
Почему администратор видит документ, а бухгалтер получает отказ?
Можно ли выдать пользователю роль «Полные права», чтобы ошибка ушла?
На Linux ошибка возникает только при выгрузке файлов из обработки. Что проверить?
usr1cv8 на каталог выгрузки. Серверный код пишет от имени службы, поэтому права личного пользователя на этот каталог не помогают.