[8.2] Справочник с картинкой (управляемые формы)

19.06.15

Разработка - Работа с интерфейсом

Простой пример справочника с картинкой
Отображения картинки текущего элемента списка

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
База пример (8.2)
.dt 322,85Kb
529
529 Скачать (3 SM) Купить за 2 450 руб.

    В новой версии платформы 1С 8.2 работа с картинками производится отличным от предыдущих платформ методом, разобраться с которым без примеров сложно. Подробно можно прочитать в книге Разработка управляемого интерфейса глава 3.18. Работа с файлами и картинками. Примеры данной статья являются переработанными и дополненными примерами книги.

    Картинка как и раньше (8.1) хранится в базе в реквизите (реквизите ТЧ) с типом ХранилищеЗначения, но записать данные в реквизит с этим типом обычном способом нельзя, запись производится в предопределенной процедуре «ПередЗаписьюНаСервере». 

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

Ниже приведен код части примера: 

&НаКлиенте
Процедура ЗагрузитьФотографию(Команда)
    Перем
ВыбранноеИмя,АдресВременногоХранилища;
    Если
ПоместитьФайл(АдресВременногоХранилища, "", ВыбранноеИмя, Истина, УникальныйИдентификатор) Тогда
       
АдресКартинки = АдресВременногоХранилища;
       
Модифицированность = Истина;
    КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

    Если
ЭтоАдресВременногоХранилища(АдресКартинки) Тогда
       
ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресКартинки);
       
ТекущийОбъект.Фото = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных());
    КонецЕсли;

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

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)

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

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

&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

    Если
ЭтоАдресВременногоХранилища(АдресКартинки) Тогда
       
УдалитьИзВременногоХранилища(АдресКартинки);
    КонецЕсли;

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

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

p.s.

 

    В книге Разработка управляемого интерфейса используется дополнительно поле для сохранения имени файла оно необходимо если нужно чтобы программа запомнила из какой папки пользователь предпочитает добавлять или выгружать файлы.

    В процедуре ПриЗаписиНаСервере на первый взгляд можно убрать код удаление из временного хранилища т.к. ф. ПоместитьФайл вызывается с параметром УникальныйИдентификатор формы т.е. объект хранилища будет существовать до закрытия формы, но рекумендуется освобождать ресурсы сразу (если пользователь загрузит картинку и нажмет записать, форма не закрыта и объект будет существовать до закрытия).

См. также

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Богатый редактор картинок 1С предназначен для обработки изображений в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    62998    44    59    

82

Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    18868    26    6    

41

Работа с интерфейсом Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Редактор графов в 1С - внешний отчет, который формирует графы на основе таблицы значений, используя рисунки табличного документа. Есть возможность добавления, редактирования объектов графа и выгрузки результата в таблицу значений.

1500 руб.

06.10.2020    10239    7    7    

10

Работа с интерфейсом Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Это инструкция по дизайну форм в среде 1С. Гайд охватывает рекомендации и стандарты для оптимизации пользовательского интерфейса. В гайде содержатся указания по использованию элементов интерфейса, включая как основные, так и продвинутые аспекты. Предоставляются также примеры и антипримеры для наглядного понимания принципов дизайна

20.08.2024    16891    mrXoxot    43    

121

Работа с интерфейсом Программист Платформа 1С v8.3 Бесплатно (free)

Пример простого и симпатичного прогресс-бара в динамическом списке, без картинок, используя редактирование запроса.

27.05.2024    7426    smielka    37    

100

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    14825    919    elcoan    47    

117

Инструментарий разработчика Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

2 стартмани

10.04.2023    11924    162    acces969    31    

124
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Арчибальд 2709 05.08.10 16:19 Сейчас в теме
А что изображено на фотографии? :o
It-developer; +1 Ответить
2. Evg-Lylyk 4842 05.08.10 17:05 Сейчас в теме
3. Поручик 4692 05.08.10 18:15 Сейчас в теме
Спасибо, как раз сейчас разбираюсь с работой с изображениями
4. пользователь 05.08.10 18:23
Сообщение было скрыто модератором.
...
5. Evg-Lylyk 4842 06.08.10 00:12 Сейчас в теме
(4) Сообщает когда? Конфигурация исключительно под 8.2 у меня версия платформы 8.2.12.63 и 8.2.10 работает
6. пользователь 06.08.10 01:42
Сообщение было скрыто модератором.
...
9. Evg-Lylyk 4842 06.08.10 16:34 Сейчас в теме
(6), (7), (8)
Видимо как-то касячно файл загрузился. Сейчас все гуд.
(7)
смысл ставить 8.2.12.63 если еще бета ...

в учебных целях нет разницы
(8)
Установил демо конфу с ИТС "Управляемое приложение", там в принципе тоже справочник с картинками реализован.

Здесь упрощенно ничего лишнего
7. Re:аниматор 338 06.08.10 05:34 Сейчас в теме
После загрузке файла dt
Неверный формат файла для загрузки информационной базы
Ошибка при выполнении файловой операции
по причине:
Ошибка при выполнении файловой операции

1С:Предприятие 8.2 (8.2.11.236)

смысл ставить 8.2.12.63 если еще бета ...

а что мешает выложит в формате *.1CD?
8. ea7 06.08.10 07:19 Сейчас в теме
Установил демо конфу с ИТС "Управляемое приложение", там в принципе тоже справочник с картинками реализован.
10. ea7 05.10.10 20:23 Сейчас в теме
а к табличной части документа никто не пробовал картинку прикрутить? у меня пока неполучается...
11. Evg-Lylyk 4842 05.10.10 21:12 Сейчас в теме
(10) Я не пробовал. По идее также только у функции ПолучитьНавигационнуюСсылку
через точку
Адрес3 = ПолучитьНавигационнуюСсылку(Объект.Ссылка,
"ТабличнаяЧасть1.Реквизит1", 10);
взято из справки
12. Evg-Lylyk 4842 05.10.10 21:15 Сейчас в теме
(10) Не делал, но аналогично особенность только в функции ПолучитьНавигационнуюСсылку посмотрите справку там написано про табличные части
13. Evg-Lylyk 4842 13.11.10 11:56 Сейчас в теме
Иправлена проблема: в форме списка не обновлялась картинка при изменении картинки текущей строки. Отображалась стараю пока не активизировать другую строку.
14. porog@front.ru 04.09.11 22:58 Сейчас в теме
(13)А как исправил? Сейчас та же проблема.
В базе примера при записи элемента заходит в процедуру формы списка СписокПриАктивизацииСтроки(), а у меня - нет.
В ОбработкаОповещения() заходит, в ОбновитьИнтерфейс() заходит, а в СписокПриАктивизацииСтроки() нет.
:(
15. bolush 06.04.12 10:55 Сейчас в теме
То что искал, вот только бабло не хватает что бы скачать:)) может кто нить скинить если есть такая операция:)) но хочу сказать отдельное спасибо автору! респект!
16. Andry.Boris 59 12.04.12 17:13 Сейчас в теме
День добрый.
Кто объяснить ситуацию...
Запускаю как управляемое приложение - все ок фото меняются
Запускаю как веб приложение - фото меняю, а показывает старые фотки, захожу как управляемое показывает
что фото изменилось, возвращаюсь в веб старые фото??? В чем прикол???
17. Andry.Boris 59 12.04.12 17:17 Сейчас в теме
Ага оказывается кеш в браузере срабатывает...
18. Andry.Boris 59 12.04.12 17:18 Сейчас в теме
Как бороться с кешем в веб режиме???
19. Andry.Boris 59 12.04.12 17:49 Сейчас в теме
Ещё в веб режиме закрывает окно справочника и получается что опять на стартовой странице...
20. malina-da 04.06.12 07:59 Сейчас в теме
Спасибо за пример, как раз сейчас разбираюсь с аналогичной задачей, этот пример надеюсь ускорит процесс.
21. serezhick 20.09.12 16:32 Сейчас в теме
22. biker1052 26.06.13 19:23 Сейчас в теме
Спасибо за статью.Действительно иногда приходится работать с картинками.
23. Aspire1C 869 27.08.13 18:01 Сейчас в теме
Респект! Быстро и безболезненно взлетело в самописке на 8.2.18.109.
24. nagimo 7 23.09.14 20:29 Сейчас в теме
Большое спасибо за статью. Час пытался сам сделать, а тут просто переписал код и все заработало. Осталось теперь доработать функционал удаления картинки

П.С. Доработал (кому нужно удаление картинки, ее очистка):
&НаКлиенте
Процедура УдалитьКартинку(Команда)
	АдресКартинки = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор);
КонецПроцедуры
Evg-Lylyk; Andrew_Glorious; +2 Ответить
25. dialang 21.07.16 07:40 Сейчас в теме
нз = РегистрыСведений.frame_db.СоздатьНаборЗаписей();
...
Картинка8 = нз[Индекс-7].Картинка.Получить();
Изображение8 = ПоместитьВоВременноеХранилище(Картинка8, Изображение8);
// Изображение8 - ссылка на картинку ...
26. Eiiko2 22.12.22 14:52 Сейчас в теме
можно ведь сделать проще


&НаКлиенте
Процедура КартинкаДляОтображенияНажатие(Элемент, СтандартнаяОбработка)
	    СтандартнаяОбработка = ложь;
		Оповещение = новый ОписаниеОповещения("ОбработатьВыборФайла",ЭтотОбъект);
		НачатьПомещениеФайла(Оповещение,,,Истина,УникальныйИдентификатор);
КонецПроцедуры


&НаКлиенте
Процедура ОбработатьВыборФайла(Результат,Адрес,ПомещаемыйФайл,ДополнительныеПараметры) Экспорт
	
	Если Результат = Ложь тогда
		Возврат;
	КонецЕсли;
	
	ЭтотОбъект.КартинкаДляОтображения = Адрес;
	Модифицированность = истина;
	
КонецПроцедуры

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
		Если ЭтоАдресВременногоХранилища(ЭтотОбъект.КартинкаДляОтображения) тогда
		ТекущийОбъект.Картинка = Новый ХранилищеЗначения(ПолучитьИзВременногоХранилища(ЭтотОбъект.КартинкаДляОтображения));
	КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	ЭтотОбъект.КартинкаДляОтображения = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"Картинка");
КонецПроцедуры
Показать
27. Evg-Lylyk 4842 22.12.22 14:55 Сейчас в теме
(26) Приветствую не вчитывался в ваш код, конечно можно сделать лучше. Публикация 2010 года ;)
28. Eiiko2 22.12.22 15:00 Сейчас в теме
(27) не обратил внимания :D
Оставьте свое сообщение