14.04.2020 Дидковский Михаил 23135
Организация в 1С хранения файлов пользователя...

Содержание:



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


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


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

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

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

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


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


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

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


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




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


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


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

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

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

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


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


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


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

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


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




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




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


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


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


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


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


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




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





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


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

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

Наши проекты

Группа компаний АО «Киномакс»
Группа компаний АО «Киномакс»

Отрасль:
Культура, шоу-бизнес

Внедренное типовое решение:
БИТ.Финанс

- Разработка Положения о Казначействе группы компаний
- Разработка Положения об управлении договорами группы компаний ...

СТС-Медиа
СТС-Медиа

Отрасль:
Медиаиндустрия

Внедренное типовое решение:
1С:Управление холдингом

- Бухгалтерский учет;
- Налоговый учет;
- МСФО (GAAP/управленческий учет);
- Казначейство...

ООО "Эскорт-Центр"
ООО "Эскорт-Центр"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Сквозной учет затрат по объектам
- Бухгалтерский учет
- Расчет зарплаты
- Планирование и учет производства собственных изделий ...

ООО "АСТАРМЕДИКА КЛИНИКА МИКРОХИРУРГИИ ГЛАЗА"
ООО "АСТАРМЕДИКА КЛИНИКА МИКРОХИРУРГИИ ГЛАЗА"

Отрасль:
Деятельность больничных организаций

Внедренное типовое решение:
БИТ:Управление медицинским центром 8

- Управление отношениями с клиентами (CRM)
- Делопроизводство
- Ведение номенклатуры дел
- Работа с обращениями граждан
- У...

ООО "ЛИКАРД" (Лукойл)
ООО "ЛИКАРД" (Лукойл)

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

Делопроизводство
• Учет и контроль исполнения поручений
Учет и хранение документов
• Учет рабочего времени
Закупки (снабжение) и...

ООО «ТейблТок»
ООО «ТейблТок»

Отрасль:
Общественное питание и рестораны

Внедренное типовое решение:
1С:Управление торговлей

Оформление заказов поставщикам Оформление заказов покупателей Управление складскими запасами ...

АО "Нижегородский водоканал"
АО "Нижегородский водоканал"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:Зарплата и управление персоналом 8. КОРП

-Кадровый учет
-Расчет зарплаты
-Регламентированная отчетность
-Подбор кадров
-Анализ кадрового состава
-Учет рабочего времен...

Автоматизация кадрового учета на базе «1С:ERP Управление предприятием 2.0»
Автопредприятие ПАО «Газпром»

Отрасль:
Транспорт

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Настройка подсистемы кадрового учета;
- Перенос персональных данных;
- Заполнение НСИ и классификаторов. ...

Автоматизация системы учета продаж газа на базе «1С:ERP Управление предприятием 2.0»
ООО «Эйр Продактс Газ»

Отрасль:
Производство промышленных газов

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Расчеты с контрагентами;
- Производственные операции;
- Управление складскими запасами;
- Логистика адресного склада;
- Оф...

Автоматизация кадрового учета на базе ПП "1С:Зарплата и управление персоналом" в ТД НМК
ООО «Торговый дом Нальчикский молочный комбинат»

Отрасль:
Торговля

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Кадровый учет;
- Расчет зарплаты;
- Регламентированная отчетность;
- Анализ кадрового состава;
- Учет рабочего времени; ...

ООО "НЦКТ"
ООО "НЦКТ"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:Управление нашей фирмой 8 ПРОФ

Взаиморасчеты с покупателями
Автоматизация бизнес-процессов...

Внедрение ПП «1С:Предприятие 8. Аренда и управление недвижимостью на базе "1С:Бухгалтерия 8"» в компании «Бутово Молл»
ООО «Бутово Молл»

Отрасль:
Недвижимость

Внедренное типовое решение:
1С:Аренда и управление недвижимостью на базе «1С:Бухгалтерия 8»

Управление продажами, логистикой и транспортом (SFM, WMS, TMS):
- Оформление заказов покупателей;
- Планирование продаж ...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение