В начало

Справочник «Организации» со схемой проезда

 

            Нужно организовать справочник «Организации» со схемами проезда к ним, к этим организациям.

            Создаем справочник «Организации» с реквизитом «СхемаПроезда», в котором будет хранится ссылка на картинку. Саму картинку будем загружать в другой справочник, назовем его «Файлы». Реквизит «СхемаПроезда» справочника «Организации» имеет тип «СправочникСсылка.Файлы».  А реквизит «Файл» справочника «Файлы» - «ХранилищеХначения».

Рис. Структура справочников «Организации» и «Файлы»

 

            Далее создаем форму элемента справочника «Организации». Добавляем реквизит формы «Схема» с типом «Строка». Устанавливаем у элемента формы «Схема» вид «Поле картинки». Также добавляем команду «ДобавитьСхему», прописываем для команды действие.

Рис. Форма элемента справочника «Организации»

 

            Затем описываем действие для команды кнопки и добавляем обработчик «ПриСозданииНаСервере» для вывода схемы проезда при открытии элемента справочника.

 

Листинг. Содержимое модуля формы элемента

&НаСервере

Процедура ДобавитьСхемуНаСервере(ПутьФайлаВХранилище)

            //Создаем новый элемент справочника "Файлы"

            //Помещаем в элемент картинку

            //в виде двоичных данных

            НовыйЭл = Справочники.Файлы.СоздатьЭлемент();

            ДвоичныеДанные = ПолучитьИзВременногоХранилища(ПутьФайлаВХранилище);

            НовыйЭл.Файл = Новый ХранилищеЗначения(ДвоичныеДанные);

            НовыйЭл.Наименование = Объект.Наименование;

            НовыйЭл.Дата = ТекущаяДата();

            НовыйЭл.Записать();

           

            //устанавливаем значение реквизита

            Объект.СхемаПроезда = НовыйЭл.Ссылка;

           

            //Читаем двоичные данные файла

            //Присваиваем их реквизиту формы

            //Так выводится изображение

            ОпятьДвоичныеДанные = НовыйЭл.Файл.Получить();

            ЭтаФорма.Схема = ПоместитьВоВременноеХранилище(ОпятьДвоичныеДанные);

КонецПроцедуры

 

&НаКлиенте

Процедура ДобавитьСхему(Команда)

            ИмяФайла = "";

            ПутьФайлаВХранилище = "";

           

            //Вызываем диалоговое окно

            //и помещаем файл во временное хранилище

            //ПоместитьФайл(<Адрес>, <НачальноеИмяФайла>, <ВыбранноеИмяФайла>,

            //<Интерактивно>, <УникальныйИдентификаторФормы>)

           

            Если ПоместитьФайл(ПутьФайлаВХранилище, , ИмяФайла, Истина) = Истина Тогда

                        ДобавитьСхемуНаСервере(ПутьФайлаВХранилище);

            КонецЕсли;

КонецПроцедуры

 

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

            //ПолучитьНавигационнуюСсылку(<Объект>, <ИмяРеквизита>, <Индекс>)

            ЭтаФорма.Схема = ПолучитьНавигационнуюСсылку(Объект.СхемаПроезда, "Файл");

КонецПроцедуры

 

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

 

Листинг. Модуль формы элемента справочника «Файлы»

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

            ЭтаФорма.Реквизит1 = ПолучитьНавигационнуюСсылку(Объект.Ссылка, "Файл");

КонецПроцедуры

 

            Проверяем в пользовательском режиме добавление и отображение схемы  проезда.

Рис. Схема проезда на элементе справочника «Организации»

 

            Также проверяем, что, да как на справочнике «Файлы».

Рис. Схема проезда в справочнике «Файлы»

 

            Таким образом, мы создали справочник «Организации» с возможностью сохранения схемы проезда.