Содержание:
1. Хранение картинок в 1С
Сегодня мы разберем, как с помощью только средств технологической платформы 1С 8.3 и пары картинок создать небольшую презентацию. Способ, описанный ниже, можно также использовать в качестве небольшого шаблона для хранения картинок в базе, например, фотографий сотрудников и т. д.
Для начала создадим справочник «Презентации». Для хранения картинок в базе данных обычно используют либо подчиненный справочник, либо регистр сведений 1С. Воспользуемся первым способом и создадим справочник «ХранилищеФайлов», подчиненный справочнику «Презентации». Добавим ему реквизиты – ДанныеХранилищаЗначений (тип – хранилище значений), ДанныеТекущаяДата (тип – дата), ИмяФайла (тип – строка).
Рисунок 1. Реквизиты справочника «Хранилище файлов»
Создадим форму элемента справочника и реализуем на ней следующее:
1. Добавим динамический список, в котором будем указывать информацию о картинках.
2. Создадим кнопку, по нажатию на которую мы сможем добавить картинку в базу.
3. Добавим поле, в которое по нажатию на любую строку динамического списка будет выводиться демо-версия картинки (предварительный просмотр)
Для реализации первого пункта необходимо создать реквизит формы типа ДинамическийСписок. Назовем его «Файлы». В свойствах поставим галочку «Произвольный запрос», откроем «настройка списка» и напишем следующий запрос (рисунок 2).
Рисунок 2. Запрос в динамическом списке
После проделанных манипуляций выведем список на форму и получим следующее (рисунок 3):
Рисунок 3. Динамический список
Следующим пунктом добавим на форму команду «Добавить картинку». Добавим для этой команды процедуру, которая будет вызывать стандартный диалог выбора файлов через «ОписаниеОповещения» (рисунок 4).
Рисунок 4. Диалог выбора файла
Единственным отличием будет то, что в конце мы будем сохранять в справочник «Хранилище файлов» в виде двоичных данных (рисунок 5):
Рисунок 5. Сохранение картинки в «Хранилище файлов».
Перейдем к третьему пункту. Для его реализации нужно добавить событие для динамического списка «При активации строки» и написать код, который будет по ссылке получать навигационную ссылку из вспомогательного справочника и сохранять в реквизит формы строкового типа, после чего платформа автоматически преобразует его в картинку (рисунок 6).
Рисунок 6. Получение навигационной ссылки из справочника «Хранилище Файлов»
Таким вот несложным образом мы организовали хранение и получение картинок в базе данных. Теперь перейдем непосредственно к слайд-шоу.
2. Режим просмотра слайдов
Для того чтобы реализовать полноценную презентацию, необходимо создать обработку с реквизитом Презентация – СправочникСсылка.Презентации. С помощью него будем выбирать необходимый элемент в справочнике. Добавим основную форму и создадим команду «Просмотр» (рисунок 7).
Рисунок 7. Основная форма обработки
Теперь необходимо создать события. Конечно, в первую очередь хочется сделать предварительный просмотр документа, чтобы не нажимать лишние кнопки, если вдруг выбрал не ту презентацию. Выглядеть и реализовываться предварительный просмотр будет при мерно также, как и в справочнике, который мы создавали до этого (рисунок 8).
Рисунок 8. Предварительный просмотр презентации
Теперь добавим действие для команды «Просмотр».
По нажатию на кнопку будет открываться вторая электронная форма обработки, которая и будет отвечать за полноценный режим показа слайдов.
Так же, как и до этого, добавим реквизит формы, в который будет выводиться картинка. Повторим тот же код что и до этого.
Осталось добавить лишь кнопки, по нажатию на которые мы будем переходить к предыдущему или следующему слайду. Ниже приведен пример только для кнопки «Вперед», так как для «Назад» все будет аналогично.
Можно также добавить группу страницы, и создать таблицу со списком слайдов, по нажатию на один из которых будет отображаться именно он, делается это аналогично всем предыдущем действиям, а также добавить кнопку «Показать/скрыть список слайдов», которая будет включать и отключать видимость этой таблицы.
После всех проделанных манипуляций мы получили слайд-шоу, которое можно показать прямо в 1С, без использования сторонних программ. Конечно есть недостатки, например, все слайды нужно отдельно загружать. Но зато все хранится в одном месте, привязано к конкретному справочнику и в целом работает. В следующей статье я разберу, как хранить в базе графические схемы при помощи двоичных данных.
Специалист компании ООО «Кодерлайн»
Айдар Фархутдинов