1С:Предприятие 8.3 (8.3.8.2167), сервер 1С на Ubuntu. Пытаемся использовать в качестве томов хранения файлов сетевые шары.
Проблема 1: в качестве NAS устройство Dlink DNS-323. Создана шара, подключена на убунте без проблем, но использовать шару не удается вообще (ошибка подключения). Хотя (!!!) фактически папки и файлы на нем создаются (но фукции создания файлов возвращают ошибку).
Проблема 2: в качестве NAS компьютер под управлением Windows. Создана шара, подключается без проблем, проверки проходит, файлы создаются, но НЕ УДАЛЯЮТСЯ (функция "УдалитьФайлы()" отрабатывает, ошибку не возвращает. Но и файл не удаляется).

Кто-нибудь сталкивался с подобными проблемами? И в принципе, какие могут быть хитрые моменты с использованием монтированных шаровых томов на сервере 1С под убунтой?

На всякий случай, пример пути монтированного тома на убунте: //home/usr1cv8/volumes1c/
---
Евгений, из Сп
Допускается использование схем http, https и ftp для адресации файлов. При использовании этих схем в адресах необходимо указывать прямые слеши '/', а не обратные '\'.

В Вашем случае, я так думаю, подходит "и ftp".. Это я на счет Ваших сомнений по слешам...

Когда будите пробовать через внешнюю обработку, то тестируйте 2 варианта ... и контекст клиента и контекст сервера. Есть подозрение, что удаление должно сработать в контексте клиента.

```1c
    &НаКлиенте
    Процедура УдалитьВсе()
    Попытка
    УдалитьФайлы("//home/usr1cv8/volumes1c/UprHR/", "*.txt");
    Исключение
    Сообщить(ОписаниеОшибки());
    КонецПопытки;
    КонецПроцедуры
```
---
по 2 проблеме:
Смотрите свойства сохраненных файлов. Возможно они "Только для чтения". А функция УдалитьФайлы() такие файлы не удаляет.
---
Олег, спасибо за идею. Но увы нам. Вот еще подумал, может быть косяк на самом деле с БСП, а не с платформой. Коллеги, давайте уточню еще чуток исходные данные. Конфа на БСП. Подключен том. Путь к тому прописан в таком виде: //home/usr1cv8/volumes1c/UprHR/
После того, как путь прописали в настройках тома, проверка прошла успешно (т.е. папки созданы-удалены, на сколько понимаю). Иными словами, после записи элемента справочника "ТомаХраненияФайлов" в модуле объекта по событию ОбработкаПроверкиЗаполнения следующий код отрабатывает без ошибок:

  ИмяКаталогаТестовое = ПолныйПутьТома + "ПроверкаДоступа\";

  Попытка
   СоздатьКаталог(ИмяКаталогаТестовое);
   УдалитьФайлы(ИмяКаталогаТестовое);
  Исключение

Стало быть, сервер в состоянии удалить папку. Но вот что происходит дальше не ясно. Допустим, присоединяю файл, файл скидывается на диск, ссылка сохраняется. Все хорошо. Потом, например, удаляю ссылку, запускаю анализ состояния тома. Отчет находит файлы, на которые нет ссылок в справочниках. Дальше в карточке тома нажимаю "Удалить лишние файлы" и вот тут ошибок нет, но и файлы не удаляются. Запускаю еще раз, там опять то же самое количество лишних файлов (что правильно), удалить - все хорошо - но файлы остались на месте. Бедааа.
---
Склоняюсь все же к свойствам файла "Только для чтения". Шара виндовая. Посмотрите в папке самой винды.
Если каталог удаляет, а файлы нет, то как раз этот случай. Для эксперимента положите в этот каталог любой сторонний файл. Если его удалит, то в этом дело.
Для пробы попробовал файловый вариант Розницы. Тома на сетевой шаре synology. Создает как раз с флагом "только для чтения". И не удаляет физически. Посторонний файл (просто положил в эту папку) удалил.
---
так и пробовал. Не удаляет. Флажок "только для чтения" в файлах не установлен.
По файловой базе: у вас клиент запущен под линуксом?
---
В правах на шару добавьте пользователя от имени которого работает агент сервер 1с и дайте ему полные права на эту шару.
---
Спасибо за совет. Но - само собой - права на шару есть. Иначе бы файлы не создавались и не читались (про чтение отдельно не упомянул выше). Т.е. еще раз: есть сетевой ресурс, на сервере выполняем команду "//10.0.8.6/volumes1c /home/usr1cv8/volumes1c cifs user=User1с,password=Pass1C,iocharset=utf8,file_mode=0777,dir_mode=0777,uid=usr1cv8,gid=grp1cv8,nodev,nosuid", путь "//home/usr1cv8/volumes1c/" доступен под пользователем от имени которого выполняется агент сервера 1С, права по идее 777, дальнейшие проблемы описаны выше. Если нужна еще какая-то информация, могу уточнить у админа.
---
А права проверяли только на конечную папку или на всю иерархию(т.е на каждую папку отдельно)?
---
на убунте заходили под тем же самым пользователем, создавали, удаляли, перемещали файлы. Все получается.
---
Значит остается проблема только с виндОвой шарой? Думаю, нужно так же проверить права на всю иерархию папок(для начала)
---
Вован, пожалуйста, поясните, каких именно прав не хватает и как я могу их раздать. Только перед этим еще раз обращу ваше внимание на самый первый пост. Там очень подробно указаны на каких сетевых ресурсах какие проблемы возникают. У нас нет проблемы с созданием файлов или папок на сетевых шарах (в случае виндовой шары). Есть проблема с тем, что файл не удаляется после исполнения функции 1С УдалитьФайлы(), хотя функция ошибку не возвращает. Если же шара на длинковском NAS DNS-232, то ситуация несколько иная: файлы и папки фактически создаются, но при выполнении функций в 1С мы получаем ошибку. Т.е., на пример, подсистема БСП ПрисоединенныеФайлы в своем функционале работы с томами не позволяет подключить сетевой том (ошибка подключения со стороны пользователя). Хотя, еще раз повторюсь, на диске файлы создаются успешно. Как видно из параметров команды mount, создан пользователь для подключения сервера 1С, для него выданы права 777 (это со стороны убунты, на которой крутиться сервер). Когда логинимся под тем же пользователем на убунте, открываем командер и в нем создаем, перемещаем, удаляем файлы, то никаких ошибок нет (что - опять же - подтверждается фактическим успешным созданием файлов). Надеюсь, смог описать возникающие в нашем случае "глюки" ))) Можете подсказать, что именно и как нужно настроить (команду монтирования изменить, какие-то специфические права где-то конкретно настроить, перезапустить сервер или еще что) ))) Был бы очень признателен хотя бы за наводку, в каком направлении копать. Но только что-то более конкретное, чем права на иерархию папок. Как минимум, для начала, расскажите, где именно и как я могу посмотреть права на иерархию папок (только учтите все, что строчил выше, чтобы не ходить по кругу).
---
Может в слэшах дело или еще что-то не так прописываю. Вот после "ПроверкаДоступа" и в пути к тому разные... Короче, дело темное. Хотя наклон разный, но как раз там, где разный папка удаляется...
---
можно попробовать не монтировать шару в линксе, а сразу указать в 1С uri виндовой шары.
---
ммм. А как это сделать на убунте? Я в линуксах не слишком силен. Настройки на сервере 1С (он же убунта) делал админ.
---
сомневаюсь, что дело в слешах. Соглашусь с Олегом, что капать нужно в свойства файла. Так же в свойствах нужно обратить внимание на владельца на закладке безопасность. Раз была такая засада.... создаю файл - все ОК! Но, после создания не удавалось не прочитать не удалить. Проблема оказалась во владельце... Чтобы отбросить сомнения в БСП, сделайте просто внешнюю обработку с кнопкой создать каталог и удалить каталог. Пусть пропишите в переменную. Если ситуация не изменится, то ясное дело, что это не БСП
---
владельцы: Администраторы (на виндовой машине). Опять же не понимаю, почему при проверке пути к тому папка создается и потом удаляется, а файлы в той же папке создаются, но не удаляются. Обработку сделать да, для локализации проблемы хорошая мысль. Хотя и не понимаю, почему те же самые команды в готовом коде работают и что даст проверка. Но попробую и отпишусь.
---
Евгений, из Сп
Допускается использование схем http, https и ftp для адресации файлов. При использовании этих схем в адресах необходимо указывать прямые слеши '/', а не обратные '\'.

В Вашем случае, я так думаю, подходит "и ftp".. Это я на счет Ваших сомнений по слешам...

Когда будите пробовать через внешнюю обработку, то тестируйте 2 варианта ... и контекст клиента и контекст сервера. Есть подозрение, что удаление должно сработать в контексте клиента.

```1c
    &НаКлиенте
    Процедура УдалитьВсе()
    Попытка
    УдалитьФайлы("//home/usr1cv8/volumes1c/UprHR/", "*.txt");
    Исключение
    Сообщить(ОписаниеОшибки());
    КонецПопытки;
    КонецПроцедуры
```
---
в контексте клиента это не должно работать. Клиент в принципе не обязан иметь доступ к томам так же, как не должен иметь к файлам БД. Что даст клиент в случае работы через веб-клиента?
---
ай-я-яй. Однако затупил ))) спасибо за дотошность. Все же грабли в БСП были. Ну или в моем понимании того, как оно должно работать. Суть в следующем: обработчик команды удаления файлов:
&НаКлиенте
Процедура УдалитьЛишниеФайлы(Команда)
 Не глянул что за процедура, в которой вызывается команда удаления. Но это...мягко говоря... странновато. Как тогда работать, если команда удаления вызывается на клиенте, а список файлов формируется на сервере? Причем клиент виндовый, а сервер линуксовый. Бред:
&НаСервере
Процедура ЗаполнитьТаблицуЛишнихФайлов()
Вот в таком контексте формируется список имен файлов для удаления. И там же, между делом, определяется платформа. Тьфу на них.
---
Ха.

```1c
    &НаСервереБезКонтекста
    Процедура ТестНаСервере()
    СпрТома = Справочники.ТомаХраненияФайлов.Выбрать();
    Пока СпрТома.Следующий() Цикл
    ПутьЛ = СпрТома.ПолныйПутьLinux;
    ТХТ = Новый ТекстовыйДокумент;
    ТХТ.Записать(ПутьЛ + "tst.txt");
    УдалитьФайлы(ПутьЛ + "tst.txt");
    КонецЦикла;
    КонецПроцедуры
```

Ничего не понял. Файл нормально создался и удалился без прблем. Т.е. все же настройки сделаны правильно, а грабли в БСП? Или я что-то не так понимаю?