helpf.pro
Регистрация

v8: Как размещать Файлы не в базе, а в отдельных, в том числе сетевых папках?

Vzonder
12.01.2017 21:40Прочитано: 3190

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

Например:

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

В справочник будут заноситься адресные данные, график работа и прочая информация, в том числе схемы проезда.

Предполагается, что схемы будут в файлах картинок jpg, png и т.д.

При необходимости, эти данные будут распечатываться.

Вопрос:

Как разместить в форме элемента картинку размещенную в папке на сервере 1С или в сетевой папке?

Yandex
Возможно, вас также заинтересует
Реклама на портале
all4cf
13.01.2017 02:55Ответ № 1

Добавляешь на форму элемент картинка и программно подставляешь путь к файлу

тебе надо:

- либо в реквизите каком-то хранить файлы относящиеся к этому объекту

- либо получить гуид объекта, создать папку с именем гуид и помещать в нее все файлы, а потом эти файлы в 1с отображать (у меня так на одном проекте сделано, ниже код)

Код 1C v 8.2 УП
 Процедура ДобавитьФайлНажатие(Элемент)
Если ЭтоНовый() Тогда 
Записать();
КонецЕсли;  
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Заголовок = "Выберите файл";
//Диалог.ПолноеИмяФайла = ""; 
Фильтр = "Все файлы (*.*)|*.*"; 
Диалог.Фильтр = Фильтр; 
Диалог.МножественныйВыбор = Ложь;
//Диалог.Каталог = "F:\";
Если Диалог.Выбрать() Тогда
ИмяФайла = СтрЗаменить(Диалог.ПолноеИмяФайла,Диалог.Каталог,"");
ДобавитьФайлВХранилище(Ссылка, Диалог.ПолноеИмяФайла, ИмяФайла);
КонецЕсли;
ВернутьСписокФайловЭлемента(Ссылка,тпФайлы);
КонецПроцедуры


///////////////////////////////////////////// Функции работы с файлами - потом как протестим перенесем в общий модуль
Функция ДобавитьФайлВХранилище(СсылкаНАЭлем,ПутьКФайлу, ИмяФайла)
ТекКаталог=СсылкаНАЭлем.УникальныйИдентификатор();
КаталогФайловЭлемента=СетевойКаталог+ТекКаталог;
Файл = Новый Файл(КаталогФайловЭлемента);
Если Файл.Существует() Тогда
//Все ок
Иначе
Попытка
СоздатьКаталог(КаталогФайловЭлемента);
Исключение
ЗаписьЖурналаРегистрации("Не удалось создать каталог", УровеньЖурналаРегистрации.Информация, , , ОписаниеОшибки());
КонецПопытки;
КонецЕсли; 
КопироватьФайл(ПутьКФайлу,КаталогФайловЭлемента+"\"+ИмяФайла);
КонецФункции

Функция ВернутьСписокФайловЭлемента(СсылкаНАЭлем,тпФайлы)
ТекКаталог=СсылкаНАЭлем.УникальныйИдентификатор();
КаталогФайловЭлемента=СетевойКаталог+ТекКаталог;
Файл = Новый Файл(КаталогФайловЭлемента);
Если Файл.Существует() Тогда
МассивФайлов = НайтиФайлы(КаталогФайловЭлемента+"\","*.*");
Для Каждого НайденныйФайл Из МассивФайлов Цикл
НовСтр=тпФайлы.Добавить(); НовСтр.Файл=НайденныйФайл.Имя; НовСтр.Путь=НайденныйФайл.ПолноеИмя;   
КонецЦикла;
КонецЕсли;
КонецФункции
Vzonder
13.01.2017 11:24Ответ № 2

- либо в реквизите каком-то хранить файлы относящиеся к этому объекту

А так можно?

Как создать реквизит с хранением файлов в папках компьюиера?

escritor
13.01.2017 14:00Ответ № 3

просто тестовый реквизит, и в нем храни имена файлов нужных тебе

Подсказка: Для выделения Кода используйте (в редакторе).
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.