Ошибка проверки Windows-каталога обработкой Saby на Linux-сервере 1С

При настройке внешней обработки Sbis1C_UF.epf в клиент-серверной 1С можно столкнуться с ошибкой:

Недостаточно прав доступа к каталогу или файлу
Не удалось проверить наличие каталога

На первый взгляд сообщение указывает на проблемы с правами Windows или доступом к папке. В нашем случае каталог существовал, пользователь мог создавать в нём файлы, а отключение защиты Windows ничего не меняло.

Конфигурация была следующая:

  • тонкий клиент 1С под Windows;
  • сервер 1С под Linux;
  • платформа 1С 8.3.27;
  • внешняя обработка Saby Sbis1C_UF.epf.

В настройках обработки каталог выбирается через стандартный диалог на клиентском компьютере. Например:

C:\Users\pyuvi.os\Documents\Sbis1C\БУХ3

Папка существует и доступна пользователю, однако обработка всё равно возвращает ошибку проверки каталога.

Причина

Проблема оказалась не в NTFS-правах.

Диалог выбора каталога выполняется на стороне тонкого клиента, а проверка существования каталога — в серверном контексте 1С.

В результате получается следующая схема:

Windows, тонкий клиент
        |
        | пользователь выбирает папку
        v
C:\Users\...\Documents\Sbis1C\БУХ3
        |
        | путь передаётся обработке
        v
Linux-сервер 1С
        |
        | сервер пытается проверить Windows-путь
        v
каталог не существует

То есть интерфейс предлагает выбрать локальную папку Windows, хотя фактически обработка проверяет путь на сервере 1С.

Именно поэтому проверка локальных прав пользователя, антивируса и Controlled Folder Access результата не дала.

Решение

На Linux-сервере 1С был создан отдельный каталог:

sudo mkdir -p /var/lib/sbis1c/buh3

Каталогу были назначены права для пользователя, под которым работают серверные процессы 1С:

sudo chown -R usr1cv8:grp1cv8 /var/lib/sbis1c
sudo chmod -R 750 /var/lib/sbis1c

После этого в настройках обработки был указан серверный путь:

/var/lib/sbis1c/buh3

После замены Windows-пути на путь Linux-сервера обработка начала работать корректно.

В чём ошибка обработки

Проблема не в том, что обработка использует серверный каталог. Для клиент-серверной архитектуры это вполне допустимо.

Проблема в интерфейсе и логике работы с путём.

Если каталог должен находиться на сервере 1С, стандартный диалог выбора локальной папки Windows вводит пользователя в заблуждение. Логичнее было бы либо явно указывать, что требуется путь на сервере 1С, либо выполнять дальнейшую работу с выбранной директорией в клиентском контексте.

Фактически в Sbis1C_UF.epf смешиваются два контекста:

  • выбор каталога → клиент;
  • проверка каталога → сервер.

Особенно явно проблема проявляется в связке:

Windows тонкий клиент → Linux сервер 1С

Итог

Если внешняя обработка Saby для 1С выдаёт:

Не удалось проверить наличие каталога

а локальная папка точно существует и доступна пользователю, стоит проверить не только права Windows, но и то, где именно обработка пытается проверить этот путь.

В клиент-серверной 1С с Linux-сервером рабочим решением оказался серверный каталог:

/var/lib/sbis1c/buh3

с правами для пользователя, под которым выполняются серверные процессы 1С.

Причина ошибки — не отсутствие доступа к локальной папке, а проверка выбранного Windows-пути на стороне Linux-сервера 1С.

Почему Sbis1C_UF.epf не принимает локальный Windows-путь при работе с Linux-сервером 1С и какой серверный каталог решает проблему.

ЕСТЬ ЗАДАЧА?

Можно начать с её обсуждения.

Связаться