Выбор каталога в 1С: папка на диске или элемент справочника
Содержание
Слово «каталог» в 1С означает две разные вещи. Папка на диске, куда программа пишет или откуда читает файлы, выбирается в системном диалоге или в настройках хранения файлов. Элемент справочника выбирается из списка в базе, к диску он не привязан. Сначала определите, какая из двух задач ваша, и только потом открывайте настройки.
Ниже разобраны оба случая: диалог выбора папки, тома хранения файлов, сетевые пути с правами доступа, выбор значения из справочника и программный выбор каталога в коде.
Папка на диске и справочник: чем они отличаются
Путь отвечает на вопрос «где лежит файл на диске или на сервере». Справочник отвечает на вопрос «какое значение выбрать из списка в базе».
| Признак | Папка на диске | Справочник |
|---|---|---|
| Где хранится | В файловой системе компьютера или сервера | В информационной базе |
| Как выглядит значение | Строка пути: C:\Exchange или \\server\share\docs | Ссылка на элемент: «Основной склад», «Договор №5» |
| Как выбирают | Диалог выбора каталога, поле с кнопкой «Выбрать» | Форма выбора, кнопка выбора, подбор по строке |
| Что ломается | Путь не существует, нет прав, диск не виден серверу | Элемент помечен на удаление, не подходит по отбору |
Путь к папке в 1С часто хранится в обычном строковом реквизите или в элементе справочника. Например, в справочнике томов хранения файлов каждый элемент описывает свою папку. Поэтому оба смысла нередко встречаются в одной форме: вы выбираете элемент справочника, а у него внутри лежит путь.
💡 Если путь нужен «в рамках одного сеанса» (выгрузка отчёта, сохранение файла), это диалог выбора. Если путь нужен всем пользователям и хранится в базе, это настройка.
Как выбрать папку через диалог выбора каталога
Поле для пути в формах 1С обычно выглядит как строка с кнопкой справа. Нажмите кнопку, откроется стандартное окно выбора папки.
- Нажмите кнопку выбора в поле пути (три точки или значок папки).
- Перейдите к нужной папке в дереве слева.
- Если папки ещё нет, создайте её кнопкой создания новой папки прямо в окне.
- Нажмите «Выбор» или «Выбрать папку». Путь появится в поле.
Путь можно и не выбирать мышью. Вставьте его в поле целиком, скопировав из адресной строки проводника. Это быстрее, когда папка лежит глубоко.
Что учесть в веб-клиенте и тонком клиенте
В тонком клиенте диалог открывается как обычное окно Windows. Выбрать можно любую папку, к которой есть доступ у вашей учётной записи.
В веб-клиенте браузер не отдаёт 1С прямой доступ к диску. Для работы с файлами нужно расширение работы с файлами: браузер предложит его установить при первой попытке выбрать каталог. Без расширения диалог либо не откроется, либо предложит только скачать файл через загрузки браузера.
⚠️ В веб-клиенте выбранная папка принадлежит компьютеру пользователя, а не серверу. Серверный код её не увидит.
Чей это каталог: клиента или сервера
Это главный источник путаницы. Диалог выбора выполняется на клиенте и показывает диски клиентского компьютера. Но код, который потом работает с файлами, может выполняться на сервере, и тогда путь C:\Exchange будет искаться на диске сервера.
Правило простое:
- Файловая база: клиент и «сервер» это один компьютер, путь одинаков для всех операций.
- Клиент-серверная база : папку для серверных операций нужно создавать на сервере и указывать путь так, как его видит сервер.
- Если файл нужно передать с клиента на сервер, 1С делает это через временное хранилище, а не через общий путь.
Настройка папки для хранения файлов в программе
Файлы, которые пользователи прикрепляют к документам и карточкам (сканы, договоры, вложения), можно хранить прямо в базе или на диске в отдельной папке. База с большим числом вложений быстро растёт, и разработчики программ на библиотеке стандартных подсистем рекомендуют выносить файлы на диск в тома хранения.
Настройка находится в разделе администрирования. Откройте раздел Администрирование, перейдите в общие настройки или настройки работы с файлами, найдите пункт про тома хранения файлов. Точное название пункта зависит от конфигурации и версии библиотеки: ищите слова «Работа с файлами» и «Тома».
В справочнике томов у каждого тома есть:
- наименование, понятное человеку;
- полный путь для Windows;
- полный путь для Linux, если сервер работает под этой системой;
- максимальный размер тома;
- порядок заполнения, если томов несколько.
Пути для Windows и Linux заполняются отдельно, потому что сервер видит диск только по своим правилам. Если сервер на Windows, достаточно первого пути.
Как подключить новую папку
- Создайте папку на сервере, например
D:\1C_Files. Не кладите её на системный диск, где мало места. - Откройте справочник томов хранения файлов и создайте новый элемент.
- Укажите наименование и путь к папке в поле для вашей операционной системы сервера.
- Задайте максимальный размер, если хотите ограничить том.
- Сохраните элемент и проверьте, что в папке появились подкаталоги по датам после добавления нового вложения.
💡 Сразу после создания тома загрузите в любую карточку тестовый файл. Если файл появился в папке, права и путь верные.
Перенос уже загруженных файлов
Новые вложения пойдут в выбранный том автоматически. Старые, сохранённые в базе, останутся в ней, пока их не перенесёт регламентное задание или обработка переноса файлов в тома. В большинстве конфигураций она запускается из того же раздела настроек.
⚠️ Перед массовым переносом сделайте резервную копию базы и самой папки с файлами. Если сменить путь тома после того, как в него записаны файлы, они перестанут открываться.
Сетевой путь и права доступа
Для общей папки используйте UNC-путь: \\fileserver\1c_files. Не используйте подключённый сетевой диск вроде Z:\. Сетевой диск существует только в сеансе пользователя, который его подключил. Служба сервера 1С его не увидит.
Работает по такой цепочке:
- Клиентская операция идёт от имени вошедшего пользователя Windows. Права нужны ему.
- Серверная операция идёт от имени учётной записи, под которой запущена служба сервера 1С. Права нужны именно ей. Обычно эта учётная запись называется
usr1cv8(на Linux) или задаётся при установке службы (на Windows). - Для общей папки права проверяются дважды: на доступ к ресурсу и на сами файлы.
Что выдать учётной записи на папку: чтение, запись, создание подпапок и удаление файлов. Достаточно права «Изменение» на папку с наследованием.
| Что проверить | Как |
|---|---|
| Папка существует | Откройте путь в проводнике на самом сервере |
| Нужная учётная запись видит папку | Запустите проводник от её имени или проверьте права в свойствах папки |
| Путь не содержит сетевой диск | В поле стоит \\сервер\..., а не буква |
| Свободное место | На диске достаточно места под рост вложений |
| Регистр на Linux | Files и files там разные папки |
На Linux пути пишутся с прямым слэшем: /mnt/1c_files. Владельцем каталога назначьте пользователя, от имени которого работает сервер, и проверьте права на запись.
⚠️ Перед тем как менять права на системные папки или переподключать общий ресурс, предупредите пользователей: в момент переключения доступ к вложениям может пропасть.
Как выбрать элемент в справочнике
Когда поле «ссылочного» типа (склад, организация, контрагент, договор), выбор устроен иначе.
- Нажмите кнопку выбора в поле или клавишу
F4. - Откроется список справочника. Если справочник иерархический, слева будет дерево групп.
- Найдите нужный элемент. Быстрый способ: начните набирать название прямо в поле, а 1С предложит подходящие варианты.
- Выберите элемент двойным щелчком или кнопкой «Выбрать».
Если нужного значения нет в списке, причин обычно три:
- в форме выбора стоит отбор (например, договоры только этого контрагента, склады только этой организации);
- элемент помечен на удаление, и программа его скрывает;
- вы смотрите не тот справочник или группу.
Отбор снимается в самой форме выбора: уберите условие или нажмите «Показать все», если такая кнопка есть. Если значения действительно нет, создайте его кнопкой «Создать» прямо из списка выбора и выберите сразу после сохранения.
Выбор нескольких элементов сразу
В списках с подбором вместо одиночной кнопки выбора стоит кнопка «Подбор». Она открывает окно, где можно отметить несколько позиций и перенести их в документ одним действием. Так устроен ввод товаров, сотрудников, контрагентов в табличные части.
Выбор каталога из кода и внешних обработок
Разработчик может открыть диалог выбора папки программно. Для этого есть объект ДиалогВыбораФайла с режимом выбора каталога. Пример на клиенте:
&НаКлиенте
Процедура ВыбратьПапку(Команда)
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
Диалог.Заголовок = "Выберите папку для выгрузки";
Диалог.Каталог = "C:\Exchange";
ОписаниеОповещения = Новый ОписаниеОповещения("ПослеВыбораПапки", ЭтотОбъект);
Диалог.Показать(ОписаниеОповещения);
КонецПроцедуры
&НаКлиенте
Процедура ПослеВыбораПапки(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт
Если ВыбранныеФайлы = Неопределено Тогда
Возврат;
КонецЕсли;
ПутьКПапке = ВыбранныеФайлы[0];
КонецПроцедуры
Когда пользователь закрывает окно, не выбрав папку, в процедуру приходит Неопределено. Эту проверку нельзя пропускать, иначе обращение к элементу массива даст ошибку.
Пара практических замечаний:
- Выбор каталога выполняется на клиенте. Передавая путь на сервер, помните, что это путь клиента, а не сервера.
- Перед записью файла проверьте, существует ли каталог, и создайте его при необходимости.
- В веб-клиенте для работы с файловой системой нужно подключённое расширение, иначе процедура завершится ошибкой или ничего не покажет.
Внешние обработки и отчёты, которые выгружают файлы, обычно содержат такое же поле «Каталог выгрузки» с кнопкой. Логика у них та же: путь выбирается на клиенте, и дальше его использует код. Если обработка запускается на сервере по расписанию, ей нужен постоянный серверный путь, а не диалог.
Что делать, если выбор каталога не работает
Типичные ситуации и быстрые проверки:
\\сервер\ресурс.