новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума

Продолжаем использовать БСП

  • Добавить свою публикацию
  • для этого требуется регистрация

В прошлый раз мы  добавили себе в конфигурацию возможность резервного копирования данных. В сегодняшнем примере попробуем разобраться, как  с помощью БСП можно легко организовать присоединение файлов к объектам конфигурации. Согласитесь, такая задача очень часто возникает на практике. Часто заказчику нужно  сохранять  изображение товара в базе данных. Еще одной распространенной задачей будет сохранение  отсканированных договоров или документов относящихся к тому или иному контрагенту. Задач  может быть довольно много. А как их решить мы сейчас посмотрим.

Для начала создадим справочник, к которому мы будем прикреплять изображение или несколько. Пусть это будет справочник «Юра_Контрагенты» с демонстрационной базы БСП копируем справочник _ДемоНоменклатураПрисоединенныеФайлы и переименовываем его в Юра_КонтрагентыПрисоединенныеФайлы, после чего создадим в Справочнике Юра_Контрагенты – реквизит «ОтсканированыйДоговор» которому присвоим типом «Юра_КонтрагентыПрисоединенныеФайлы»

 Изображение

 

Теперь нужно отредактировать общую команду ПрисоединенныеФайлыКОбъекту  укажем в типе параметров объекта и наш справочник Юра_Контрагенты.

После этих действий у нас элемент справочника должен выглядеть приблизительно так

 Изображение

(обратите внимание на пункт «Перейти»,  более подробно про общие команды  можно почитать в моей статье про управляемый интерфейс http://1clancer.ru/article/upravlyaemyj_interfejs._komandy_v_1s_1009).

Но если мы постараемся прикрепить какой либо файл то у нас  выскочит ошибка, для того чтобы она не возникала нужно в регистре сведений «ПрисоединенныеФайлы»  в типе  измерения «ПрисоединенныйФайл» указать и наш новый справочник Юра_КонтрагентыПрисоединенныеФайлы.

Изображение

Кстати, чуть не забыл, тип реквизита «ВладелецФайла» справочника «Юра_КонтрагентыПрисоединенныеФайлы» должен быть «Справочник.Юра_Контрагенты» так как на скриншоте.

Изображение 

После всех этих манипуляций мы сможем прикреплять к нашему справочнику  любые файлы в любых количествах.

Изображение 

Но давайте воспользуемся еще и кодом, с помощью которого можно выбрать и отобразить на экране  один из прикрепленных файлов. Для этого мы воспользуемся реквизитом «ОтсканированыйДоговор». Создадим форму элемента справочника, к ней добавим реквизит «АдресКартинки» и перетащим его на форму, указав в качестве вида «поле картинки»

 Изображение

 

Для отображения картинки нам потребуется одна функция ПолучитьНавигационнуюСсылкуКартинки, а также код процедур ПриСозданииНаСервере и ПриЧтенииНаСервере.

Полный листинг выглядит так:

 

&НаСервереБезКонтекста
Функция ПолучитьНавигационнуюСсылкуКартинки(ФайлКартинки, ИдентификаторФормы)
	   
	    Возврат ПрисоединенныеФайлы.ПолучитьДанныеФайла(ФайлКартинки, ИдентификаторФормы).СсылкаНаДвоичныеДанныеФайла;
	   
КонецФункции
 
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	    Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
			    Если Не Объект.ОтсканированыйДоговор.Пустая() Тогда
				   АдресКартинки = ПолучитьНавигационнуюСсылкуКартинки(Объект.ОтсканированыйДоговор, УникальныйИдентификатор)
			    Иначе
				   АдресКартинки = "";
			    Конецесли;
	    КонецЕсли;
 
КонецПроцедуры
 
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
	    Если Не ТекущийОбъект.ОтсканированыйДоговор.Пустая() Тогда
			    АдресКартинки = ПолучитьНавигационнуюСсылкуКартинки(ТекущийОбъект.ОтсканированыйДоговор, УникальныйИдентификатор)
	    Иначе
			    АдресКартинки = "";
	    Конецесли;
 
КонецПроцедуры
 
&НаКлиенте
Процедура ОтсканированыйДоговорПриИзменении(Элемент)
	    Если Не Объект.ОтсканированыйДоговор.Пустая() Тогда
			    АдресКартинки = ПолучитьНавигационнуюСсылкуКартинки(Объект.ОтсканированыйДоговор, УникальныйИдентификатор)
	    Иначе
			    АдресКартинки = "";
	    Конецесли;
	   
 
КонецПроцедуры
 
&НаКлиенте
Процедура ОтсканированыйДоговорНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	    СтандартнаяОбработка = Ложь;
	    ПрисоединенныеФайлыКлиент.ОткрытьФормуВыбораФайлов(Объект.Ссылка, Элементы.ОтсканированыйДоговор);
 
 
КонецПроцедуры

 

 

В результате  мы сможете показывать на форме одну из присойдененныйх к справочнику картинок. К сожалению промотр файлов других форматов покачто не предусмотрен. Но если вы визовете «Присойдененныйе файлы» и попробуете  двойным щелчком открить их то запустится  програма отвечающая за  данный файл. Например, для  вордовских документов запуститься ворд. 

 
0
Читайте также
Копирование сведений для нового объекта
Как при копировании элемента по F9 на форме нового появлялись бы сразу цены копируемого элемента
Резервное копирование информационной базы при использовании MSSQL сервера.
Как организовать резервное копирование информационной базы 1с
Добавляем дополнительное поле в документ-список
Способ добавления поля в список
Разработки
Прайс для УТ 10.3
Прайс-лист (УТ 10.3)
Обмен данными - 1С:ТиС 7.7 и Битрикс, HostCMS, WebAsyst, UMI.CMS
1C ТиС и сайт формата CommerceML 2.0. Обмен данными
Свод начисленной зарплаты по работнику за произвольный период
"Свод зарплаты, начисленной по работнику, за заданный период"
Еще от автора
≡ к списку статей