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