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




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

 

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

 

В первой части Пошагового примера загрузки, хранения и отображения картинок (фотографий) в справочниках мы с вами реализовали минимальный функционал, позволяющий нам выводить фото для элементов любого справочника.

На данный момент конфигурация из нашего примера имеет следующие недостатки (убедитесь сами):

  • если в открытой форме элемента справочника Сотрудники мы с помощью кнопки «Добавить картинку» будем последовательно выбирать несколько картинок (даже без выполнения команды «Записать»), то все эти картинки будут сохраняться в справочнике Файлы;
  • при выборе для Сотрудника новой картинки старая (которая была установлена до этого) не удаляется из справочника Файлы, а остается в нем;
  • если мы в открытой форме элемента справочника Сотрудники заменим фотографию сотрудника и попробуем закрыть форму, то форма закроется без каких-либо уведомлений – то есть система «не видит», что в элемент справочника внесены изменения и не спрашивает пользователя сохранять или нет эти изменения.

1. Прежде чем приступить к исправлению имеющихся «глюков» давайте сделаем наш справочник Файлы более удобным и функциональным. Для этого по аналогии с шагами 6-8 первой части пошагового примера сделаем так, чтобы мы могли просматривать хранимые картинки в самом справочнике Файлы.

Создадим Форму элемента справочника Файлы:
Тип формы: Форма элемента справочника;
Реквизиты формы: Код, Наименование.

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

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

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

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

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

7. Теперь самое время приступить к исправлению найденных «глюков» при загрузке и хранении фотографий. Для этого в модуле формы справочника Сотрудники доработаем нашу серверную процедуру УстановитьКартинку() – см. 11 пункт 1 части пошагового примера. Для удобства добавленные строки программного кода выделены подчеркиванием:

8. Внимательно прочитайте комментарии в программном коде нашей серверной процедуры УстановитьКартинку().

9. Обратите внимание на следующую сроку кода:

ЭтаФорма.Модифицированность=Истина;

Тут мы свойству Формы «Модифицированность» присвоили значение истина. Так как ссылку на картинку (значение реквизита Картинка справочника Сотрудники) мы устанавливаем программно (в программном модуле, а не интерактивно), то программа «не видит» когда мы меняем значение данного реквизита. Но мы можем программно изменить данное свойство, что мы и делаем.

Теперь, если мы в открытой форме элемента справочника Сотрудники заменим фотографию сотрудника и попробуем закрыть форму, то система «увидит», что форма была модифицирована и задаст нам соответствующий вопрос:

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-03-17 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: