Организация в 1С хранения файлов пользователя...

Организация в 1С хранения файлов пользователя без использования Библиотеки стандартных подсистем

0
1312
14.04.2020 Дидковский Михаил

Содержание:



В ходе разработки регулярно встречается пожелание клиента о хранении присоединенных к документу (или элементу справочника) файлов пользователя в 1С. Эта возможность реализована в Библиотеке стандартных подсистем (БСП). Но использование Библиотеки стандартных подсистем для этой задачи требует снятия базы с режима полной поддержки. Поэтому может возникнуть желание организовать хранение файлов без БСП.


Мы рассмотрим вариант хранения файлов вне базы данных (БД), чтобы избежать бесконтрольного увеличения объема БД.


Для решения задачи организовать хранение файлов без БСП нам понадобится:

1.    Выделить место хранения файлов пользователя, доступное с сервера 1С.

2.    Создать регистр сведений, содержащий служебную информацию для сохранения файлов.

3.    Добавить в объект, к которому добавляется возможность хранения файлов пользователя, табличную часть и две команды: Загрузить файл и Открыть Файл.


Созданный регистр сведений имеет простейшую структуру. Ни одного измерения, а это гарантирует, что запись будет только одна, ресурсов два:


·         КаталогХранилища – указывает на место хранения файлов пользователя, строка необходимой длины.

·         НомерФайлаВКаталоге – указывает имя последнего файла, записанного в каталог.


Для удобства использования решения имеет смысл сделать служебную процедуру, получающую имя каталога, ближайший пустой номер файла и изменяющий запись в регистре 1С, увеличивая номер файла на единицу.




Поместить процедуру можно в общем модуле (как приведенную), так и в менеджере регистра сведений.


В объекте, который мы хотим модифицировать для хранения присоединенных файлов, требуется создать табличную часть Документы для хранения данных о присоединенных файлах. В реквизиты документа для хранения данных табличной части можно записать и тип присоединяемого документа (договор, доверенность, схема решения, прочее). Но три реквизита должны быть обязательно:


·         ИмяФайла – имя файла, приложенного пользователем. Файл с этим именем мы и будем пользователю возвращать.

·         ИмяФайлаВХранилище – наше внутреннее имя файла, использующееся для того, чтобы исключить совпадающие имена.

·         ЕстьДокумент – Булево, показывающее факт наличия документа в хранилище.

Осталось сделать две команды, первая из которых будет помещать файл в хранилище 1С, а вторая – извлекать оттуда и открывать файл пользователю в 1С.  


1.    Помещение файла в хранилище 1С


Команду мы назовем Документы_ЗагрузитьФайл.


Для помещения файла в хранилище 1С в современных конфигурациях режим модальности не приветствуется. Поэтому мы решим задачу с использованием немодальных методов.

Процедура обработки команды начинает помещение файла в хранилище 1С, которое будет доступно и на сервере.


После завершения помещения файла в хранилище 1С вызывается процедура ВыполнитьЗагрузку на клиентской части, откуда уже вызывается процедура ЗагрузитьФайлНаСервере, записывающая файл в хранилище и возвращающая его имя, если запись прошла успешно.




Процедура получает в качестве параметров адрес временного хранилища 1С, где находится содержимое файла и его расширение. Структуру хранения файлов пользователя (каталог, имя файла без расширения) процедура получает из описанной выше процедуры общего модуля Служебный.




В результате исполнения данной команды файл пользователя в 1С будет помещен в хранилище. А в реквизиты выбранной строки ТЧ Документы нашего объекта будут записаны имя файла, загружавшегося пользователем и имя файла в хранилище. Расширения у них совпадают.  


2.    Получение файла из хранилища 1С


Команду мы назовем Документы_ОткрытьФайл.


Команда сначала проверяет существование флажка ЕстьДокумент, выдавая ошибку в случае, если документа в хранилище нет. Это нам необходимо для того чтобы не обращаться к Библиотеке Стандартных Подсистем.


Затем команда обращается на сервер за получением данных во временное хранилище 1С, которое будет доступно и «на клиенте». Файл, полученный во временное хранилище 1С, записывается в каталог хранения файлов пользователя во временных файлах под именем того изначального файла, который когда-то загружал пользователь.


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




Обратим внимание, что при получении структуры хранилища в качестве параметра процедуры указывается, что она вызывается не для записи, что не меняет номер текущего файла в хранилище 1С. Здесь мы используем только имя каталога.





Таким образом, мы получили возможность записывать файлы пользователя в 1С на сервер и получать их обратно по запросу без использования Библиотеки стандартных подсистем.


Специалист компании ООО «Кодерлайн»

Дидковский Михаил

Задать вопрос автору статьи
Тема вопроса*
Ваше имя*
E-mail или телефон*
Ваш вопрос*
 

Добавить комментарий
Текст сообщения*
Защита от автоматических сообщений
 
Теги
#1С: CRM #1С: ERP #1С: ERP Управление строительной организацией #1С: ERP. Управление буровой компанией #1С: WMS Управление складом #1С: Аренда и управление недвижимостью #1С: БУХ #1С: Договорчики #1С: Документооборот #1С: ЗУП #1С: Интеграция #1С: КА #1С: Колледж #1С: Конвертация данных #1С: Модули #1С: Платформа #1С: Розница #1С: Сценарное тестирование #1С: ТОИР #1С: УАТ #1С: УКФ #1С: Университет #1С: УНФ #1С: УПП #1С: Управление строительной организацией #1С: УТ #1С: УХ #1С:ERP #1С:БГУ #1С.6-НДФЛ #ADO #APACHE #API #canonical #com-объекты #Excel #Excel в 1С #GoogleDrive #HTTP #ITIL #Koderline: Управление медиа-холдингом #Koderline: Управление проектами строительства скважин #LINUX #MS SQL Server #WEB #WEB-сервисы 1С #Word #XML #Администрирование 1С #акты в 1С #Безопасность сервера #Бесшовная интеграция #БИТ.Финанc #Битрикс24 #Блокировки в 1С #БСП #БУ #Бурение скважин #Бюджетирование #Внедрение #Внедрение ERP #Закрытие месяца #Запросы 1С #Интеграция 1С #КАК ОТРАЖАЮТСЯ ТОВАРЫ В ПУТИ 1С #Как сделать в 1С #Конвертация данных #Корпоративное сопровождение #Лизинг #Лицензии 1С #Механизм Анализа Данных в 1С #Моделирование #Модуль Диадок #МСФО #Налоги #Обмен между базами #Обновления #Оптимизация #Отпуск #Отчетность #Отчеты в 1С #Оценка задач #Перенос данных #Планирование #Полезные обработки #Правила обмена #предопределенные элементы справочников #Проводки 1С #Программирование в 1С #Программные права #Продажи #Производство #Работа с объектами в 1С #Расширение конфигурации #РСБУ #С # #СКД #Соединение COM в 1С платформе #Сравнение конфигураций #Тестирование 1С #Техническое задание #Торговое оборудование #Транспортная логистика #Управление проектами #Финансовый учет #Хранилище настроек #Ценообразование #Экзамен 1С #Яндекс.Касса Email или телефон Работа с объектами в 1С Функциональные опции в 1С
Услуги программиста 1С
Получите специалиста  
для решения всех задач
в области 1С
Программы 1С
Цены и подробное описание программ 1С:Предприятие 8.