При работе с веб-клиентом 1С:Предприятие часто возникают ситуации, когда привычные на «толстом» клиенте операции с файловой системой начинают работать иначе или вовсе блокируются. Одной из таких проблем является ошибка с текстом «Редактирование [uid].xlsx запрещено». Давайте подробно разберем, почему это происходит и как мы можем устранить данную ошибку совместными усилиями.
Важно понимать, что веб-клиент работает внутри «песочницы» браузера. Когда вы пытаетесь открыть файл, 1С обращается к Расширению для работы с файлами. Ошибка, которую вы видите, чаще всего не является ошибкой самой платформы 1С или прав доступа к базе данных. Это сигнал о том, что взаимодействие между Браузером, ОС Windows и Расширением было прервано или заблокировано.
Чаще всего мы сталкиваемся с одной из следующих причин:
Temp как подозрительную активность.Для начала давайте исключим «мусор» и проблемы с правами доступа к папке временных файлов. Разберем это по шагам:
Во-первых, очистим временную папку пользователя. В Windows это папка %TEMP%. Часто там скапливаются тысячи файлов, которые могут блокировать работу НачатьЗапускПриложения.
Во-вторых, проверим права доступа. Убедитесь, что пользователь, под которым запущен браузер, обладает полными правами на чтение и запись в папке временных файлов, с которой работает 1С.
В вашем исходном коде вы используете методы НачатьПолучениеКаталогаВременныхФайлов и НачатьЗапускПриложения. В современных версиях платформы 1С рекомендуется уходить от прямой работы с файловой системой в пользу методов Библиотеки стандартных подсистем (БСП).
Попробуем заменить классический вызов на более современный подход, используя объект ФайловаяСистемаКлиент. Этот метод позволяет платформе самой корректно обработать открытие файла в ассоциированном приложении через расширение:
// Вместо старого метода НачатьЗапускПриложения используйте:
ФайловаяСистемаКлиент.ОткрытьФайл(ИмяВременногоФайла);
Этот метод инкапсулирует в себе необходимые проверки безопасности и корректно взаимодействует с браузером, что часто решает проблему «запрета на редактирование».
Если обновление кода не помогло, давайте проанализируем настройки среды:
При использовании НачатьЗапись, убедитесь, что вы правильно передаете параметры в ОписаниеОповещения. Часто ошибка «запрещено» возникает из-за того, что файл еще не был полностью записан на диск, а НачатьЗапускПриложения уже пытается его открыть.
Попробуйте добавить небольшую паузу или убедиться, что обработчик ЗаписьДвоичныхДанныхЗавершение получает полное подтверждение от платформы о том, что поток записи закрыт. Помните, что веб-клиент — это всегда асинхронная работа, и важно строго соблюдать последовательность выполнения методов.
В завершение, проанализируем ситуацию: если проблема воспроизводится на всех ПК — дело в конфигурации и способе вызова метода. Если только на одном — необходимо искать конфликтующее ПО или настройки безопасности конкретного рабочего места.