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

19.06.15

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

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

Скачать файлы

Наименование Файл Версия Размер
База пример (8.2)
.dt 322,85Kb
529
.dt 322,85Kb 529 Скачать

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

p.s.

 

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

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

См. также

Богатый редактор картинок, хранимых в базе, с возможностью РИСОВАНИЯ. Редактор внешних файлов картинок. Объект, расширяющий возможности работы с картинками из встроенного языка (Три в одном) + Обработка «Стандартизация картинок»

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

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

6000 руб.

16.01.2015    61793    43    59    

80

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

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

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    54401    16    21    

42

Управление дашбордами

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

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

2400 руб.

29.06.2020    16695    21    4    

35

Новогоднее оформление для 1С

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

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

27.12.2023    10735    750    elcoan    45    

106

Конструктор HTML, CSS и javascript

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

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

2 стартмани

10.04.2023    9610    151    acces969    31    

118

Модель состояния для MVC

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

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    3665    kalyaka    2    

27

Табло очереди заказов на экран телевизора

WEB-интеграция Работа с интерфейсом Платформа 1С v8.3 1С:Розница 2 Платные (руб)

Связка из веб-приложения и расширения для 1С: Розница 2.3.

3600 руб.

29.04.2022    12079    1    5    

10
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Арчибальд 2706 05.08.10 16:19 Сейчас в теме
А что изображено на фотографии? :o
It-developer; +1 Ответить
2. Evg-Lylyk 4559 05.08.10 17:05 Сейчас в теме
3. Поручик 4670 05.08.10 18:15 Сейчас в теме
Спасибо, как раз сейчас разбираюсь с работой с изображениями
4. пользователь 05.08.10 18:23
Сообщение было скрыто модератором.
...
5. Evg-Lylyk 4559 06.08.10 00:12 Сейчас в теме
(4) Сообщает когда? Конфигурация исключительно под 8.2 у меня версия платформы 8.2.12.63 и 8.2.10 работает
6. пользователь 06.08.10 01:42
Сообщение было скрыто модератором.
...
9. Evg-Lylyk 4559 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 4559 05.10.10 21:12 Сейчас в теме
(10) Я не пробовал. По идее также только у функции ПолучитьНавигационнуюСсылку
через точку
Адрес3 = ПолучитьНавигационнуюСсылку(Объект.Ссылка,
"ТабличнаяЧасть1.Реквизит1", 10);
взято из справки
12. Evg-Lylyk 4559 05.10.10 21:15 Сейчас в теме
(10) Не делал, но аналогично особенность только в функции ПолучитьНавигационнуюСсылку посмотрите справку там написано про табличные части
13. Evg-Lylyk 4559 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 862 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 4559 22.12.22 14:55 Сейчас в теме
(26) Приветствую не вчитывался в ваш код, конечно можно сделать лучше. Публикация 2010 года ;)
28. Eiiko2 22.12.22 15:00 Сейчас в теме
(27) не обратил внимания :D
Оставьте свое сообщение