Видеофайл лежит в 1С, а нужен на диске: способы выгрузки
Содержание
Чтобы скачать видео с 1С, откройте объект, к которому оно прикреплено, нажмите кнопку со скрепкой (присоединенные файлы), выделите ролик и выполните команду Сохранить как. Программа спросит папку, и файл ляжет на диск с исходным именем и расширением. Так работает любая типовая конфигурация на БСП: Бухгалтерия 3.0, ЗУП 3.1, УТ 11, КА, ERP.
Если роликов десятки или сотни, вручную их не сохраняют. Для массовой выгрузки нужна внешняя обработка, а иногда достаточно перенести файлы в тома на диске. Ниже оба пути и то, что мешает скачать файл.
Где 1С показывает прикрепленные видео и другие файлы
В типовых конфигурациях файл почти всегда привязан к владельцу: документу, карточке контрагента, сотрудника, номенклатуры. Видео ничем не отличается от скана договора — для 1С это просто файл с расширением .mp4, .avi, .mov или .mkv.
Где искать:
- 📎 Кнопка со скрепкой в командной панели формы документа или элемента справочника. Рядом показывается число прикрепленных файлов.
- 🗂️ Общий список файлов, если в конфигурации есть раздел с папками файлов (в КА, ERP, Документообороте он есть, в Бухгалтерии обычно файлы смотрят только через владельца).
- 🧩 Реквизит формы в доработанных базах: иногда программист хранит ролик прямо в реквизите типа «Хранилище значения». Скрепки тогда нет, видео открывается кнопкой на форме.
В списке присоединенных файлов доступны команды открытия, сохранения, редактирования и добавления. Нужная — Сохранить как. Она есть и в командной панели списка, и в контекстном меню по правой кнопке, и в карточке самого файла.
Команда «Открыть» тоже скачивает файл, но во временный рабочий каталог 1С. Найти его потом в проводнике можно, но неудобно. Для «нужен файл на рабочем столе» используйте именно «Сохранить как».
Как 1С хранит видео: в базе или в томах на диске
От места хранения зависит, как быстро файл скачается и можно ли выгрузить его в обход интерфейса.
| Вариант хранения | Где физически лежит ролик | Что это значит для выгрузки |
|---|---|---|
| В информационной базе | Внутри базы, в двоичных данных | Скачать можно только через 1С. База быстро растет от видео |
| В томах на диске | В папке на сервере или сетевом ресурсе | Файл лежит отдельно, но в служебной структуре папок |
| В реквизите доработки | В хранилище значения объекта | Нужна команда на форме или обработка |
Переключатель режима хранения находится в настройках работы с файлами, в разделе Администрирование → Общие настройки. Там же задаются тома хранения и максимальный размер загружаемого файла.
Почему администраторы выносят видео в тома:
- 📦 один ролик на 300 МБ раздувает базу и выгрузку
.dtна те же 300 МБ; - 🐢 резервное копирование и тестирование базы идут дольше;
- 💾 тома проще бэкапить отдельно обычными средствами копирования файлов.
Даже когда файлы лежат в томе, не копируйте их из папки тома руками. Имена и структура каталогов там служебные, а связь «файл ↔ документ» хранится в базе. Скачивать нужно через 1С: так вы получите правильное имя и расширение.
Скачиваем видео из 1С вручную: пошаговый порядок
Подходит, когда нужно сохранить один или несколько роликов.
Тонкий клиент
- Откройте документ или карточку, к которой прикреплено видео.
- Нажмите кнопку со скрепкой в командной панели формы.
- В списке выделите строку с роликом. Ориентируйтесь на расширение и размер.
- Нажмите
Сохранить как(или выберите команду в контекстном меню). - Укажите папку и при необходимости новое имя. Расширение не меняйте.
- Дождитесь окончания. Ролик на сотни мегабайт по сети может сохраняться минуту и дольше — форма в это время не отвечает, это нормально.
Веб-клиент и публикация через браузер
Порядок тот же, но сохранение идет средствами браузера: файл попадет в папку загрузок или браузер спросит, куда его положить.
Для полноценной работы с файлами в веб-клиенте ставят расширение работы с файлами для браузера. 1С сама предлагает его установить при первой попытке открыть или сохранить файл . Без расширения скачивание обычно работает, а вот редактирование и обратная загрузка измененного файла — нет.
Если видео хранится в реквизите формы
В доработанных базах ищите на форме кнопку вида «Выгрузить», «Сохранить ролик», «Открыть видео». Если такой кнопки нет, а видео есть, значит, разработчик предусмотрел только просмотр. Тогда выгрузка возможна обработкой (следующий раздел) или доработкой формы.
Массовая выгрузка видео внешней обработкой
Когда нужно скачать все видео из базы или по отбору (за период, по контрагенту, по типу документа), пишут небольшую внешнюю обработку . В конфигурациях на БСП для этого есть программный интерфейс подсистемы «Работа с файлами».
Ключевая функция — РаботаСФайлами.ДвоичныеДанныеФайла(Файл). Она возвращает двоичные данные присоединенного файла независимо от того, где он хранится: в базе или в томе. Дальше данные записываются на диск методом Записать().
Присоединенные файлы в БСП лежат в справочниках, имена которых заканчиваются на ПрисоединенныеФайлы, а в части конфигураций есть еще справочник Файлы. У элементов есть реквизиты Наименование и Расширение. Обработка ниже обходит все такие справочники и выгружает файлы с видеорасширениями.
&НаСервере
Процедура ВыгрузитьВидеоНаСервере(КаталогВыгрузки)
ВидеоРасширения = СтрРазделить("mp4,avi,mov,mkv,wmv,webm", ",");
Выгружено = 0;
Для Каждого МетаСправочник Из Метаданные.Справочники Цикл
Имя = МетаСправочник.Имя;
Если Не (СтрЗаканчиваетсяНа(Имя, "ПрисоединенныеФайлы") Или Имя = "Файлы") Тогда
Продолжить;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст = СтрШаблон(
"ВЫБРАТЬ Ссылка, Наименование, Расширение
|ИЗ Справочник.%1
|ГДЕ НЕ ПометкаУдаления", Имя);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Расширение = НРег(Выборка.Расширение);
Если ВидеоРасширения.Найти(Расширение) = Неопределено Тогда
Продолжить;
КонецЕсли;
Данные = РаботаСФайлами.ДвоичныеДанныеФайла(Выборка.Ссылка, Ложь);
Если Данные = Неопределено Тогда
Сообщить("Нет данных: " + Выборка.Наименование);
Продолжить;
КонецЕсли;
ИмяФайла = СтрШаблон("%1_%2.%3",
Формат(Выгружено + 1, "ЧГ=0"),
Выборка.Наименование,
Расширение);
Данные.Записать(КаталогВыгрузки + ПолучитьРазделительПути() + ИмяФайла);
Выгружено = Выгружено + 1;
КонецЦикла;
КонецЦикла;
Сообщить(СтрШаблон("Выгружено файлов: %1", Формат(Выгружено, "ЧГ=0")));
КонецПроцедуры
Что важно знать про этот код:
- 🖥️ Процедура выполняется на сервере. В клиент-серверной базе файлы окажутся в папке на сервере 1С, а не на вашем компьютере. Каталог должен существовать, а у пользователя, от которого работает служба сервера 1С, должны быть права на запись в него.
- 🔢 Порядковый номер в начале имени спасает от перезаписи, когда у двух роликов одинаковое наименование.
- 🚫 Символы, недопустимые в именах Windows (
\ / : * ? " < > |), в наименовании файла встречаются редко, но встречаются. Для рабочей обработки добавьте их замену. - 🧾 Второй параметр
ЛожьвДвоичныеДанныеФайлаотключает исключение: если файла нет в томе, обработка сообщит об этом и пойдет дальше, а не упадет на сотом ролике.
Если видео хранится в доработанном реквизите типа «Хранилище значения», схема та же, только данные берутся так: Данные = Объект.ИмяРеквизита.Получить();. Проверьте, что результат имеет тип ДвоичныеДанные, и запишите его методом Записать().
Внешнюю обработку запускайте сначала на копии базы. Код выше только читает и пишет на диск, но папку выгрузки выбирайте с запасом места: видео быстро съедает десятки гигабайт.
Перенос видео в тома вместо скачивания
Частая причина вопроса «как скачать видео из 1С» — база выросла, и видео хотят оттуда убрать. Скачивать ролики и удалять их из документов в этом случае не нужно: связь с документами потеряется.
Правильный порядок:
- Сделайте резервную копию базы и подготовьте папку под том на сервере или в сетевом хранилище.
- В разделе
Администрирование → Общие настройкиоткройте настройки работы с файлами и включите хранение файлов в томах на диске. - Создайте том хранения: укажите полный путь к папке и при желании максимальный размер тома.
- В форме томов запустите перенос файлов из информационной базы в тома.
- После переноса выполните в Конфигураторе тестирование и исправление со сжатием таблиц в нерабочее время — только тогда база реально уменьшится в размере.
Тестирование и исправление требует монопольного доступа: всех пользователей придется вывести из базы. Планируйте его на вечер или выходной и предупредите людей заранее.
Путь к тому для клиент-серверной базы указывают так, как его видит сервер 1С, а не ваш компьютер. Сетевой ресурс пишите в формате \\server\share\1c_files, а не через букву подключенного диска: служба сервера подключенных дисков пользователя не видит.
Почему видео не скачивается или не открывается
Отдельно о размере файла. Если ролик не удается даже загрузить в 1С, сработало ограничение максимального размера файла в настройках работы с файлами. Поднимать его ради видео стоит только при хранении в томах: гигабайтные ролики в самой базе — прямая дорога к медленным бэкапам.
Безопасность: что проверить администратору
Видео в учетной базе — это часто записи с камер склада, инструктажи по охране труда, записи собеседований. Это персональные данные, и выгрузка таких файлов должна быть под контролем.
Несколько практических замечаний:
- 🔐 Если у пользователя есть доступ к папке тома по сети, он может скопировать ролики в обход 1С и прав в программе. Доступ к тому нужен только учетной записи службы сервера 1С и администраторам.
- 💾 База и тома бэкапятся согласованно. Копия базы без копии томов после восстановления покажет список файлов, но скачать их не даст — та самая ошибка «файл не найден».
- 🧹 Не удаляйте файлы из тома вручную, чтобы освободить место. Удаляйте ролики через 1С с пометкой на удаление и последующим удалением помеченных объектов.
- 📜 Для записей с персональными данными сроки хранения и порядок уничтожения определяет внутренний регламент компании. 1С их сама не контролирует.