Главная страница
Навигация по странице:

  • Пример является универсальным и без труда может быть использован в любой конфигурации платформы 1С: Предприятие 8.2 1. Постановка задачи

  • ХранилищеЗначения

  • 6 .

  • загрузка картинок в 1с. Пошаговый пример 1С 8 загрузка картинок. Пошаговый пример 1С 2 загрузка, хранение и отображение картинок (фотографий) в справочниках (1 часть)


    Скачать 1.01 Mb.
    НазваниеПошаговый пример 1С 2 загрузка, хранение и отображение картинок (фотографий) в справочниках (1 часть)
    Анкорзагрузка картинок в 1с
    Дата26.01.2022
    Размер1.01 Mb.
    Формат файлаdocx
    Имя файлаПошаговый пример 1С 8 загрузка картинок.docx
    ТипСправочник
    #342400

    Пошаговый пример 1С 8.2: загрузка, хранение и отображение картинок (фотографий) в справочниках (1 часть)

    Довольно часто возникает необходимость отображения различных картинок в справочниках или документах. Так, например, нам может понадобиться отображать фотографии нашей продукции в справочнике Товары или фото наших сотрудников в справочнике Сотрудники. Понятно, что такие фотографии лучше всего хранить непосредственно в нашей базе данных 1С. И сегодня мы разберемся, как же добавлять и хранить фотографии в базе данных 1С 8.2, а также как отображать данные фотографии в справочниках и документах.

    Пример является универсальным и без труда может быть использован в любой конфигурации платформы 1С: Предприятие 8.2

     

    1. Постановка задачи: нам необходимо реализовать для нашей кадровой службы возможность добавления фотографий в наш справочник Сотрудники и сделать так, чтобы данные фотографии отображались при просмотре информации по конкретному сотруднику. Каждому сотруднику будет устанавливаться 1 фотография.

    2. Приступаем к реализации: решение данной задачи будет выполняться с использование платформы 1С:Предприятие 8.2. Скачать платформу 1С 8.2 можно тут.

    3. Создайте новую конфигурацию и запустите систему в режиме конфигуратора. Более подробную информацию вы найдете в шагах с 1 по 9 данного пошагового примера.

    4. Создайте новый справочник Файлы. Перейдите на закладку «Данные», длину кода и наименования оставьте без изменений. Создайте новый реквизит справочника «Файл»с типом значения ХранилищеЗначения.



    Для хранения файлов, в том числе и Картинок в системе 1С Предприятие 8.2 используется особый тип значений - ХранилищеЗначения.

    Зачем нам понадобился отдельный справочник Файлы? Ведь можно было создать справочник Сотрудники и в этом справочнике сделать дополнительный реквизит Файл с типом значения ХранилищеЗначения?
    Фотографии могут быть довольно большого объема. А если еще у нас будет много сотрудников, то работать с таким справочником очень скоро станет некомфортно. Дело в том, что при открытии списка справочника, считываются все реквизиты (поля) его элементов, а значит, если мы будем хранить фото в его реквизитах, то будут считываться и все фотографии. Понятно, что при выборках и работе со списком справочника Сотрудники система будет «тормозить». Чтобы этого не было, мы создаем отдельный служебный справочник Файлы, а в справочнике Сотрудники будем в одном из реквизитов хранить лишь ссылку на определенный элемент справочника Файлы (ссылку на фото). В таком режиме работать со справочником Сотрудники будет комфортно.

    5. Создайте новый справочник Сотрудники. Перейдите на закладку «Данные», длину кода и наименования оставьте без изменений. Создайте новый реквизит справочника Картинка с типом значения СправочникСсылка.Файлы.



    6 . Перейдите на закладку «Формы» нашего справочника Сотрудники. Для создания формы элемента справочника нажмите на кнопку Открыть.
    На первом шаге выбираем тип формы: Форма элемента справочника. На втором шаге убираем галку с реквизита Картинка, так как данный реквизит (ссылку на фото) мы будем заполнять программно, а не интерактивно.



    7. Перед нами открывается конструктор форм. Создайте новый реквизит формы Фото, тип – Строка, длина 0.



    8. Мышкой перетащите созданный в шаге 7 реквизит Фото на Форму элемента справочника Сотрудники. В свойстве «Вид» получившегося поля меняем значение с «Поле ввода» на «Поле картинки».



    Именно в этом поле (Фото) у нас на Форме и будет отображаться фотография, установленная данному сотруднику.

    9. Для того, чтобы можно было загружать фотографии в базу данных 1С, создадим команду ДобавитьКартинку.

    Перейдите на закладку «Команды» и создайте новую команду «ДобавитьКартинку». Далее нажмите на увеличительное стекло в свойстве «Действие» для перехода в программный модуль и создания шаблона процедуры ДобавитьКартинку(Команда).



    10.  Теперь в программном модуле нам необходимо описать действие нашей команды «ДобавитьКартинку». Пишем следующий программный код:

    &НаКлиенте

    Процедура ДобавитьКартинку(Команда)ИмяФайла = ""; ПутьФайла = "";

    //Вызываем Диалоговое окно и помещаем файл Картинки из локальной файловой системы во временное хранилище

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

    //в строковый реквизит ФОТО нашей формы сохраняем ссылку на Картинку во временном хранилище

    Фото = ПутьФайла;

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

    //переходим на сервер с помощью вызова серверной процедуры

    УстановитьКартинку();

    КонецЕсли; 
    //условие ЕСЛИ нужно для того, чтобы если пользователь отказался от выбора файла

    //мы не вызывали серверную процедуру УстановитьКартинку()

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

    11.  Действия по установке (загрузке) картинки и ее отображения на форме нашего справочника Сотрудника необходимо выполнять на стороне сервера. Это особенность работы системы с файлами. Именно для этого в тексте процедуры ДобавитьКартинку осуществляется вызов другой процедуры УстановитьКартинку(), которая будет выполняться на сервере.

    В программном модуле, ниже процедуры ДобавитьКартинку(Команда) пишем следующий программный код:

    &НаСервере

    Процедура УстановитьКартинку()

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

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

    //в реквизит СправочникаФайлы Файл помещаем выбранную ранее Картинку

    НовыйФайлКартинки.Файл = Новый ХранилищеЗначения(ПолучитьИзВременногоХранилища(Фото));

    Фото = ПоместитьВоВременноеХранилище(НовыйФайлКартинки.Файл.Получить());

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

    НовыйФайлКартинки.Записать();
    //устанавливаем значение реквизита Картинка Справочника Сотрудники

    Объект.Картинка = НовыйФайлКартинки.Ссылка;

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

    12.  Теперь нам остается добавить на Форму Кнопку и связать Кнопку с нашей командой «ДобавитьКартинку».



    13.  Как мы уже говорили в шаге 11, для отображения картинки на форме процедуру необходимо выполнять на сервере. Для этого выделяем Форму, в свойствах нашей Формы переходим на закладку «События» и переходим к событию ПриСозданииНаСервере.



    14.  Напишем программный код процедуры ПриСозданииНаСервере(Отказ, СтандартнаяОбработка):

    &НаСервере

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

    //отображение картинки при открытии формы справочника

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

    //устанавливаем автомасштаб для картинки

    Элементы.Фото.РазмерКартинки = РазмерКартинки.АвтоРазмер;

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

    15. Запускаем систему в режиме 1С:Предприятие и смотрим что у нас получилось:



    На этом упрощенная реализация отображения картинок в справочника закончена. Вы можете скачать кофигурацию с данным примером по ссылке ниже:

    Скачать конфигурацию "Хранение и отображение картинок в справочнике 1С"

    О том, как можно улучшить нашу конфигурацию и какие дополнительные проверки можно добавить мы


    написать администратору сайта