Импорт картинки в 1С

Публикация № 1825475 14.03.23

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

импорт

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

1. Добавляем реквизит "Картинка" к справочнику Тренеры тип "ХранилищеЗначения"

 

 

2. Создаем форму элемента в справочнике Тренеры.

 

 

На этой форме добавляем реквизит "СсылкаНаКартинку". И перетаскиваем на форму. Нажимаем на этот объект на форме и ставим свойства: Вид - поле картинки и устанавливаем свойство гиперссылка для возможности добавления картинки по нажатию 

 

 

3. Создаем процедуру нажатия на поле картинки. Выбираем "Создать на клиенте"

 

 

В данный обработчик вставляем следующий код, который будет вызывать диалог открытия файла с расширением jpg, png, jpeg

СтандартнаяОбработка = ложь;
    ДиалогОткрытия = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ДиалогОткрытия.ПолноеИмяФайла = "";
    ДиалогОткрытия.Фильтр = "Файл JPG, PNG, JPEG |*.jpg; *.png; *.jpeg";
    ДиалогОткрытия.МножественныйВыбор = ложь;
    ДиалогОткрытия.Заголовок = "Выбор изображения";
    ОписаниеОповещения = Новый ОписаниеОповещения("ПослеЗагрузкиФайла", ЭтаФорма); 
    ДиалогОткрытия.Показать(ОписаниеОповещения);

 

4. Опишем процедуру ПослеЗагрузкиФайла, которую указали в описании оповещения, в этой процедуре, если пользователь выбрал файл, мы будем помещать его во временное хранилище при помощи метода НачатьПомещениеФайлаНаСервер.

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

 

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

&НаКлиенте
Процедура ПослеПеремещенияФайлаНаСервер(Результат, Адрес)экспорт
    Если Результат = ложь Тогда
        Возврат;
    Иначе
        СсылкаНаКартинку = Результат.Адрес;
        Модифицированность = истина;
    КонецЕсли;    
КонецПроцедуры 

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

Для того, чтобы картинка хранилась в базе, нам необходимо сохранить картинку в реквизит объекта, делать мы это будем в событии формы ПередЗаписьюНаСервере. Создадим это событие. 

6. Через события формы создаем процедуру "ПередЗаписьюНаСервере". Соответственно выбираем "Создание на сервере" 

 

 

Чтобы картинка никуда не делась, после сохранения нужно получить адрес с реквизита объекта, поскольку у нас реквизиту формы присвоен адрес во временном хранилище

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

Последнее, что нам осталось сделать, это появление нашей картинки при открытии формы, если картинку мы уже добавили в базу


7.  Через события формы создаем процедуру "ПриСозданииНаСервере". "Создать на сервере"

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

 

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

 

Для редактирования масштаба отображаемой картинки необходимо в свойствах поля "Ссылка на картинку" указать подходящий масштаб. Например 30 

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. glek 117 14.03.23 16:19 Сейчас в теме
БСП не позволяет религия использовать? Обязательно изобретать велосипет?
SergeRSA; bilex; +2 1 Ответить
3. krisstya2000 8 14.03.23 17:15 Сейчас в теме
(1) примите к сведению, что на этом форуме ищут помощь не только опытные программисты, но и студенты, от которых требуют вначале именно этого "велосипеда")
4. glek 117 15.03.23 07:43 Сейчас в теме
(3) Вот и не надо обучать с велосипедов. Надо обучать правильно. А то потом приходят на работу и вместо БСП пишут "гибкие решения"
SergeRSA; bilex; +2 Ответить
5. romasna 311 19.03.23 10:59 Сейчас в теме
Вот ведь заели автора статьи.... :) Она права, не все начинают программировать с изучения БСП. Помню, как я рылся в интернете, выискивая информацию именно по добавлению картинок в БД через УФ, для меня это было актуально применительно к небольшой самописной конфигурации.
ЗЫ:Если бы товарищ Габец А.П. со своей книгой "1С-Предприятие8.1. Простые примеры разработки" держал равнение на опытных программистов, то и книги не было бы.
2. awk 738 14.03.23 16:36 Сейчас в теме
(0) Вы бы хотя бы код оформили согласно стандарту, что ли...
6. SergeRSA 22.03.23 09:02 Сейчас в теме
Такое решение подходит только, как элемент изучения 1С, но не как рабочий вариант.
7. user700522_lerner584 25.03.23 13:17 Сейчас в теме
К вопросу что это для начинающих. Хорошая «школа» сразу приучать людей двоичные данные в основном объекте хранить…
8. user1909675 27.03.23 15:35 Сейчас в теме
Процедура ДобавитьКартинку(Команда)
	
	ИмяФайла = "";
	
	Если ПоместитьФайл(ПутьКФайлу,,ИмяФайла,Истина) = Истина Тогда
		
		Картинка = ПутьКФайлу;
		УстановитьКартинку();   
		
	КонецЕсли;
	
КонецПроцедуры    

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Картинка = ПолучитьНавигационнуюСсылку(Объект.Картинка, "Файл");
	Элементы.Картинка.РазмерКартинки = РазмерКартинки.АвтоРазмер;
КонецПроцедуры
Показать
9. пользователь 18.05.23 07:41
Сообщение было скрыто модератором.
...
10. пользователь 21.05.23 18:19
Сообщение было скрыто модератором.
...
11. пользователь 24.05.23 05:28
Сообщение было скрыто модератором.
...
Оставьте свое сообщение

См. также

[Общий модуль] Динамическое формирование интерфейса

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

Библиотека готовых функций для разработки интерфейса формы и размещения на нём элементов формы с помощью программного кода.

28.08.2020    30739    rpgshnik    88    

284

Строим графы средствами 1С (без GraphViz)

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

Множество статей на Инфостарте описывают, как работать с компонентой GraphViz, чтобы построить ориентированный граф. Но практически нет материалов, как работать с такими графами средствами 1С. Сегодня я расскажу, как красиво строить графы с минимальным пересечением. Нам этот метод пригодился для отрисовки алгоритмов в БИТ.Финансе, т.к. типовой механизм не устраивал. Еще это может быть полезно для визуализации различных зависимостей: расчета себестоимости, графы аффилированности компаний и т.д. Надеюсь, эта статья поможет сделать мир 1С красивее и гармоничней:) Итак, поехали...

23.05.2018    27809    slozhenikin_com    20    

55

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

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

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

09.02.2015    53937    boogie    21    

41

Старые обработки в новом (Управляемом) интерфейсе

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

Многие разработчики привыкли использовать какие-либо обработки, разработанные для приложений с обычным интерфейсом. Но они не работают в приложениях на управляемых формах. Как вариант, эту обработку можно включить в состав конфигурации, указать в свойствах конфигурации, что возможно использование обычных форм

12.08.2016    61967    valerasv    7    

105

Идея или как сохранить ЦВЕТ, ШРИФТ, ОФОРМЛЕНИЕ пользователя

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

Простой и оригинальный способ сохранять ЦВЕТОВУЮ СХЕМУ и ОФОРМЛЕНИЕ пользователей. Как сохранить ЦВЕТ

22.06.2015    25745    Tatitutu    12    

25

Хранение и редактирование дополнительных параметров в регламентированном отчете. Для начинающих.

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление производственным предприятием Бухгалтерский учет Бесплатно (free)

Для начинающих. Как редактировать дополнительные параметры регламентированного отчета, изменив только модуль формы и модуль объекта. Как сохранить дополнительные параметры в данных отчета.

22.01.2014    21641    KapasMordorov    4    

16

Программное генерирование кнопочек для удобного управления уровнями группировки в отчетах (версия 2a).

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

В табличных документах 1С 8 имеется отличная возможность использования группировок, но управление уровнями группировок через контекстное меню не очень удобное. В своих отчетах для управления уровнями группировок я использую маленькие кнопочки на поле табличного документа - это намного удобнее и быстрее, чем через контекстное меню.

09.04.2011    48698    mtv:)    75    

302

Хитрости компоновки данных: программное формирование заголовков отчета и колонок без использования макетов.

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

Хитрости компоновки данных: программное формирование заголовков отчета и колонок без использования макетов. Очень часто необходимо программно сформировать заголовок отчета, например добавить туда наименование валюты, в которой формируется отчет. Можно использовать макеты, но во многих случаях это не оправданно.

27.07.2012    34732    milkers    9    

81

Рабочее место кассира для touch-screen и программируемой клавиатуры продавца в «1С: Розница»

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

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

29.11.2012    50045    aavolkoff    49    

35

Бухгалтерия предприятия 3.0 интерфейс, аналогичный 1С:Бухгалтерии 7.7;

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

Бухгалтерия предприятия, редакция 3.0, версия 3.0.14. Добавлена возможность использовать интерфейс, аналогичный 1С:Бухгалтерии 7.7;

20.09.2012    38848    dour-dead    18    

26

Выбор вариантов отчета в "Управление торговлей" ред. 11

Работа с интерфейсом Учет ТМЦ Платформа 1С v8.3 1С:Управление торговлей 10 Россия Бухгалтерский учет Бесплатно (free)

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

27.05.2012    50932    1cUserAndrew    25    

40

Форма выбора (подбор) в управляемых формах

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

Разбор небольших примеров того, как правильно открывать форму выбора (подбора) в управляемых формах, не прибегая к модальным окнам.

08.05.2020    178474    user5300    40    

288

Загрузка картинки в 1С 8.3

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

В этой статье я расскажу, как программно работать на управляемой форме с картинкой в 1С 8.3: загружать их на форму, хранить в базе и выводить картинку при открытии формы.

07.04.2023    2274    ISChaplagin    7    

16

Чистка пользовательских настроек динамического списка после удаления полей

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

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

20.02.2023    845    dovolos    0    

15

Использование языковой модели GPT3 для создания интерфейса 1С на естественном языке

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

Я взял типовую конфигурацию УТ редакции 11.5 Немного доработал запрос к языковой модели GPT-3 и получил возможность обращаться к учетной системе на естественном языке

15.01.2023    10542    mkalimulin    122    

77

Визуализация таблицы значений на управляемой форме

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

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

02.11.2022    1576    bvb    2    

9

Динамическая кнопка VS Комбинация клавиш

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

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

08.08.2022    5744    sapervodichka    33    

76

Разбор ошибок заполнения реквизитов формы объекта (мой топ-3)

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

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

30.08.2022    2162    zeltyr    6    

18

[Шпаргалка] Программное создание элементов формы

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

Программное создание практически всех популярных элементов формы.

06.09.2019    206835    rpgshnik    87    

859

{UI/UX} Свой всплывающий информер у элемента формы

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

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

12.08.2022    4906    rpgshnik    37    

82

Как увеличить размер шрифта в 1с 8.3 (обычные формы)

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

Казалось бы тривиальная задача - увеличить шрифт в 1С 8.2. Можно уменьшить разрешение рабочего стола, что не всегда есть гуд. Можно увеличить шрифт в Windows. Тоже свои минусы, отразится везде. Да и в терминальном режиме с этим туго, особенно в Windows Server 2008 R2.

23.09.2012    173727    asg1975    65    

249

Как читать чужой код? Часть 4. Программный интерфейс. Исправление чужих доработок

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

Во всех вакансиях есть требование - умение читать чужой код. Но ни на одних курсах специально этому не учат. Чтобы устранить это противоречие, пишу данную статью. Рассмотрю случаи, в которых нам необходимо разбирать чужой код, поймём, чей код мы пытаемся разобрать, зачем и, главное, как. В статье описан личный опыт длиною в 18 лет начиная с версии платформы 7.7. Статья будет большой, набираемся терпения). Статья содержит в себе описание сценариев разбора кода, т.е. набор шагов. В статье не получится показать это на практике. Для этого планирую сделать онлайн или оффлайн курс, где на примерах будет показан разбор незнакомого кода. Статья разбита на 4 публикации для удобства изучения.

20.09.2021    4951    biimmap    9    

53

Программный вывод таблицы значений в таблицу на управляемой форме

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

Функционал данного механизма служит для программного вывода "Таблицы значений" в реквизит управляемой  формы с типом "ДанныеФормыКоллекция". Может быть полезен в задачах, где состав колонок выгружаемой таблицы значений может меняться.

15.04.2022    5948    ns_bulatov    5    

11

Изменение размера картинок "на лету" с помощью NGINX

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

Пример использования nginx и image_filter для сжатия картинок.

26.05.2021    2993    malikov_pro    21    

29

Программный интерфейс для доработки форм

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

Реализовал простой способ программного создания новых элементов, команд и реквизитов на форме.

25.11.2021    6701    AtamanovYS    19    

122

Восстановление пропавшего меню в интерфейсе с обычными формами без полной чистки кеша

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

Как многим известно, пользователь в обычных формах может убрать любую панель из интерфейса так, что восстановить ее можно только чисткой кеша. Но как быть, если кеш жалко :?

21.12.2021    1781    bulpi    4    

13

Программно свернуть/развернуть узел динамического списка (с основной таблицей). Жирная точка над всеми "i".

Работа с интерфейсом Универсальные функции Платформа 1С v8.3 Бесплатно (free)

Какой пользователь не мечтал поменьше тыркать кнопкой? Особенно в малюсенькие +/- в "древесных" динамических списках. Если вас тоже озадачили, чтобы, при выборе узла дерева сами развернулись все его вложенные элементы , а при выборе другого узла - так же автоматом свернулась ранее развернутая ветка (причем эти узлы могут находится в разных "отношениях" друг с другом)... То вам - сюда.

08.10.2021    3837    e-9    13    

21

[Шпаргалка] Предустановка типа для составного реквизита

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

Для реквизита составного типа необходимо ограничить список выбора типов.

18.02.2020    13964    rpgshnik    6    

28

[mobile] Переносим HTML интерфейс на 1С

Работа с интерфейсом Мобильная разработка Платформа 1С v8.3 Мобильная платформа Конфигурации 1cv8 Бесплатно (free)

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

02.11.2020    13664    leobrn    82    

106

Перенос расшифровки в пользовательские настройки

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

Как перенести данные расшифровки в пользовательские настройки.

11.08.2021    1105    scientes    1    

9

Динамический список и поиск... неприятностей

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

Страх и ненависть в поиске по динамическому списку, или "Кое-что о неоптимальном отборе".

17.03.2021    11261    Yashazz    37    

51

Пример работы с диаграммой Ганта в 1С

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

Пример работы с очень нужным и важным, по моему мнению, объектом в 1С «Диаграммой Ганта».

24.02.2021    14672    JIEX@    5    

35

Программное условное оформление динамического списка, раскраска строк списка по цветам справочника или любым другим условиям (условное оформление)

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

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

30.11.2020    16650    SizovE    6    

46

Быстрая кодогенерация программной доработки форм

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

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

12.10.2020    3154    huxuxuya    29    

21

Cправочная информация. Картинки.

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

Справочную информацию мало кто любит писать, но вот захотелось. И что с этим делать?

06.06.2018    10378    aspirator23    2    

16

Цветовая схема конфигуратора в стиле OneScript

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

Цветовая схема конфигуратора 1С максимально приближенная к стандартной цветовой схеме OneScript в VS Code.

01.10.2020    2235    DmitrySinichnikov    4    

11

Рендеринг элементов управляемого интерфейса

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

Реализация отображения всего состояния формы проще, чем работа по изменениям. Однако использование идеи разделения алгоритмов на программные слои MVC и построения реактивных систем позволяет получить не только простые и масштабируемые решения, но и производительные интерфейсы. Рассмотрим примеры таких реализаций на основе использования фреймворка «Управление состоянием»: Информационная надпись, Заголовок формы, Свертываемая группа, Отключаемые панели.

22.09.2020    5053    kalyaka    5    

39