Как в справку 1с вставить картинку
Иногда полезно сделать скриншот и вставить его в справку. К счастью, картинку можно преобразовать в строку base64 и вставить в тег img. Выглядит это так: img jpg;base64,-=СТрокаИзображения=-" /img. Для редактирования можно использовать объект "форматированный документ" (реквизит формы). Данный объект может выгрузить свое содержимое в формате html и все картинки в структуру. Далее останется только преобразовать картинки в строку base64 и заменить исходные теги img.
Все преобразование выглядит до смешного простым. Благо разработчики платформы встроили весь функционал внутрь.
Весь код прокомментирован и трудностей не должно возникнуть даже у новичков. Сформированный html можно скопировать в буфер (средствами IE) и вставить в справку.
Открываем обработку из этой статьи пишем текст и вставляем картинку:
Преобразуем в формат html, копируем результат преобразования и открываем редактор справки :
И получаем результат:
Обработка, приложенная к статье в формате управляемой формы, версия платформы 8.3.13, но будет работать и с более старыми. В дополнение могу также упомянуть, что таким образом можно даже свой шрифт подгрузить в тело html страницы (css). СSS очень придирчив к переносам строк, так что чтобы все завелось, строка base64 должна быть без переносов.
Специальные предложения
Мне кажется, что вставлять скриншоты непосредственно в справку без преобразований менее трудозатратно. Или ошибаюсь?
(1) Получилось! Эврика!
попробовал через конфигуратор - в режиме редактирования - Меню Элементы - Картинка - вставляю любую картинку - и маленькую и большую. Все идеально. Тестировал на платформе 1С:Предприятие 8.3 (8.3.13.1513)
(8) Если пользоваться стандартами, даже если IE от них отходит то все отлично работает.
Очень хорошо что вы оказались неправы и в 8.3.14 справка переехавшая на Webkit у меня работает!
(13) Я искренне рад за вас. Желаю, чтобы вас не коснулись баги html-поля веб-клиента, где WebKit не используется. И чтобы при актуализации такой справки вы не испытывали проблем работы с картинками.
Стоит отметить одну неприятную особенность связанную с IE версии ниже 9 и base64. Размер строки base64 не должен превышать 32кб, в противном случае, картинка выводится обрезанной. Как будто не прогруженной полностью. Столкнулись уже с этим при выводе новостей для пользователей в ERP. В итоге вылилось в то, что до кого-то приказ по предприятию донесся, а кто-то ничего не увидел, пожал плечами и забыл.
(6) последняя картинка в публикации - как раз такой пример, Доня
я сам не сразу понял, но надо приглядеться.
Уже даже в CMS движках есть вставка изображений копированием. Но 1С никак не распрощается с инквизицией и крестовыми походами, земля плоская а небо твердое.
Просмотры 13212
Загрузки 23
Рейтинг 35
Создание 13.11.18 15:01
Обновление 13.11.18 15:01
№ Публикации 942011
Конфигурация Конфигурации 1cv8
Операционная система Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)
Код открыт Да
См. также
Альтернативный способ добавления элементов и реквизитов на формы Промо
Предлагаю альтернативный вариант добавления динамически создаваемых элементов и реквизитов на форму.
1 стартмани
09.09.2019 20430 39 bmk74 8
Выделение текущей строки в отчете (сделать сразу во всех отчетах и ничего не сломать)
Как за 10 минут упростить работу с отчётами программистам и пользователям. Добавить ВО ВСЕ ОТЧЁТЫ механизм автоматического выделения текущей строки отчёта (той, на которой установлен курсор). И ПРИ ЭТОМ НИЧЕГО НЕ СЛОМАТЬ.
1 стартмани
17.10.2021 5252 6 Патриот 48
Работа с картами в 1С на примере бесплатной библиотеки Leaflet
Разработка функционала отображения и выбора пунктов доставки на карте прямо в 1С с помощью бесплатной библиотеки Leaflet. Тестирование производилось на платформе 8.3.15.1534 на тонком клиенте.
1 стартмани
31.03.2021 14969 49 Parsec1C 18
Открыть форму внутри другой формы - наконец-то возможно!
Я давно мечтал о возможности открытия форм 1С внутри других форм, мне время от времени попадаются задачи, где это бы пригодилось. И вот в версии 8.3.16 наконец-то это можно реализовать! Конечно, это не совсем то, что я ожидал, но получилось все равно интересно. Давайте посмотрим.
1 стартмани
15.04.2020 25052 34 CyberCerber 66
Менеджер открытых форм [update 12.12.21] Промо
Обработка позволяет редактировать данные открытых форм и открывать новые с передачей параметров
1 стартмани
13.04.2017 27094 49 SeiOkami 19
Делаем из СКД Excel (ну, почти)
Несложный в использовании способ внедрить в обычный отчет СКД возможность редактировать значения ресурсов отчета (а-ля Excel) и получать отредактированные значения для дальнейшей обработки.
1 стартмани
26.01.2020 18486 29 herfis 16
Индикация прогресса выполнения фонового задания на управляемой форме внешней обработки
Внешняя обработка с фоновым выполнением и индикацией процесса для любой конфигурации на основе БСП >= 2.3 без изменения конфигурации и встраивания обработки в "Дополнительные отчеты и обработки".
1 стартмани
27.12.2019 24031 45 1sig 16
Декомпиляция условного оформления
Обработка автоматически генерирует полный код создания условного оформления формы любой сложности. Достаточно настроить для формы в конфигураторе условное оформление, а затем выбрать данную форму в обработке. В результате будет сгенерирован программный код создания условного оформления.
2 стартмани
23.12.2019 13918 62 XilDen 7
Расширенная настройка динамического списка УФ Промо
Открывая управляемую форму выбора и не увидев там видимых в форме списка элементов, часто хочется узнать причину их отсутствия там, т. е. какой наложен отбор. Но стандартная настройка списка управляемой формы показывает только пользовательские настройки, скрывая от пользователя фиксированный отбор. Предлагаю вам расширение конфигурации с расширенной настройкой динамического списка, отображающей пользователю кроме пользовательских настроек еще фиксированные.
1 стартмани
31.05.2017 41722 164 tormozit 25
Многоуровневые списки выбора с оформлением элементов
Данная статья - попытка решить один маленький кусочек большой проблемы платформы 1С, а именно - бедные и невыразительные пользовательские интерфейсы. Поскольку 1С в режиме управляемого приложения позволяет задействовать веб-клиент, то хочется реализовывать интерфейсы как у взрослых веб-приложений - красивые, дружелюбные для пользователя и, желательно, с положительным UX. Возможно, кто-то со мной не согласится и скажет, что учетные системы должны быть строгие и линейные. Но мы все знаем, что 1С - это уже не только про бухгалтерию. Небольшое отступление для разработчиков, работающих с типовыми конфигурациями. Я не знаю, использует ли фирма 1С что-то похожее в своих разработках. Если да, то данная статья навряд ли будет вам полезна.
1 стартмани
17.12.2019 14880 2 azhilichev 5
[Взрыв шаблона!] Новый способ программной настройки условного оформления
Условное оформление форм и списков это великолепная возможность их настройки по заданным условиям. Но существенным недостатком является трудоемкость написания и сопровождения программного кода. В публикации предлагается новый способ программной настройки условного оформления.
Иногда полезно сделать скриншот и вставить его в справку. К счастью, картинку можно преобразовать в строку base64 и вставить в тег img. Выглядит это так: img jpg;base64,-=СТрокаИзображения=-" /img. Для редактирования можно использовать объект "форматированный документ" (реквизит формы). Данный объект может выгрузить свое содержимое в формате html и все картинки в структуру. Далее останется только преобразовать картинки в строку base64 и заменить исходные теги img.
Все преобразование выглядит до смешного простым. Благо разработчики платформы встроили весь функционал внутрь.
Весь код прокомментирован и трудностей не должно возникнуть даже у новичков. Сформированный html можно скопировать в буфер (средствами IE) и вставить в справку.
Открываем обработку из этой статьи пишем текст и вставляем картинку:
Преобразуем в формат html, копируем результат преобразования и открываем редактор справки :
И получаем результат:
Обработка, приложенная к статье в формате управляемой формы, версия платформы 8.3.13, но будет работать и с более старыми. В дополнение могу также упомянуть, что таким образом можно даже свой шрифт подгрузить в тело html страницы (css). СSS очень придирчив к переносам строк, так что чтобы все завелось, строка base64 должна быть без переносов.
Специальные предложения
Мне кажется, что вставлять скриншоты непосредственно в справку без преобразований менее трудозатратно. Или ошибаюсь?
(1) Получилось! Эврика!
попробовал через конфигуратор - в режиме редактирования - Меню Элементы - Картинка - вставляю любую картинку - и маленькую и большую. Все идеально. Тестировал на платформе 1С:Предприятие 8.3 (8.3.13.1513)
(8) Если пользоваться стандартами, даже если IE от них отходит то все отлично работает.
Очень хорошо что вы оказались неправы и в 8.3.14 справка переехавшая на Webkit у меня работает!
(13) Я искренне рад за вас. Желаю, чтобы вас не коснулись баги html-поля веб-клиента, где WebKit не используется. И чтобы при актуализации такой справки вы не испытывали проблем работы с картинками.
Стоит отметить одну неприятную особенность связанную с IE версии ниже 9 и base64. Размер строки base64 не должен превышать 32кб, в противном случае, картинка выводится обрезанной. Как будто не прогруженной полностью. Столкнулись уже с этим при выводе новостей для пользователей в ERP. В итоге вылилось в то, что до кого-то приказ по предприятию донесся, а кто-то ничего не увидел, пожал плечами и забыл.
(6) последняя картинка в публикации - как раз такой пример, Доня
я сам не сразу понял, но надо приглядеться.
Уже даже в CMS движках есть вставка изображений копированием. Но 1С никак не распрощается с инквизицией и крестовыми походами, земля плоская а небо твердое.
Просмотры 13212
Загрузки 23
Рейтинг 35
Создание 13.11.18 15:01
Обновление 13.11.18 15:01
№ Публикации 942011
Конфигурация Конфигурации 1cv8
Операционная система Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)
Код открыт Да
См. также
Альтернативный способ добавления элементов и реквизитов на формы Промо
Предлагаю альтернативный вариант добавления динамически создаваемых элементов и реквизитов на форму.
1 стартмани
09.09.2019 20430 39 bmk74 8
Выделение текущей строки в отчете (сделать сразу во всех отчетах и ничего не сломать)
Как за 10 минут упростить работу с отчётами программистам и пользователям. Добавить ВО ВСЕ ОТЧЁТЫ механизм автоматического выделения текущей строки отчёта (той, на которой установлен курсор). И ПРИ ЭТОМ НИЧЕГО НЕ СЛОМАТЬ.
1 стартмани
17.10.2021 5252 6 Патриот 48
Работа с картами в 1С на примере бесплатной библиотеки Leaflet
Разработка функционала отображения и выбора пунктов доставки на карте прямо в 1С с помощью бесплатной библиотеки Leaflet. Тестирование производилось на платформе 8.3.15.1534 на тонком клиенте.
1 стартмани
31.03.2021 14969 49 Parsec1C 18
Открыть форму внутри другой формы - наконец-то возможно!
Я давно мечтал о возможности открытия форм 1С внутри других форм, мне время от времени попадаются задачи, где это бы пригодилось. И вот в версии 8.3.16 наконец-то это можно реализовать! Конечно, это не совсем то, что я ожидал, но получилось все равно интересно. Давайте посмотрим.
1 стартмани
15.04.2020 25052 34 CyberCerber 66
Менеджер открытых форм [update 12.12.21] Промо
Обработка позволяет редактировать данные открытых форм и открывать новые с передачей параметров
1 стартмани
13.04.2017 27094 49 SeiOkami 19
Делаем из СКД Excel (ну, почти)
Несложный в использовании способ внедрить в обычный отчет СКД возможность редактировать значения ресурсов отчета (а-ля Excel) и получать отредактированные значения для дальнейшей обработки.
1 стартмани
26.01.2020 18486 29 herfis 16
Индикация прогресса выполнения фонового задания на управляемой форме внешней обработки
Внешняя обработка с фоновым выполнением и индикацией процесса для любой конфигурации на основе БСП >= 2.3 без изменения конфигурации и встраивания обработки в "Дополнительные отчеты и обработки".
1 стартмани
27.12.2019 24031 45 1sig 16
Декомпиляция условного оформления
Обработка автоматически генерирует полный код создания условного оформления формы любой сложности. Достаточно настроить для формы в конфигураторе условное оформление, а затем выбрать данную форму в обработке. В результате будет сгенерирован программный код создания условного оформления.
2 стартмани
23.12.2019 13918 62 XilDen 7
Расширенная настройка динамического списка УФ Промо
Открывая управляемую форму выбора и не увидев там видимых в форме списка элементов, часто хочется узнать причину их отсутствия там, т. е. какой наложен отбор. Но стандартная настройка списка управляемой формы показывает только пользовательские настройки, скрывая от пользователя фиксированный отбор. Предлагаю вам расширение конфигурации с расширенной настройкой динамического списка, отображающей пользователю кроме пользовательских настроек еще фиксированные.
1 стартмани
31.05.2017 41722 164 tormozit 25
Многоуровневые списки выбора с оформлением элементов
Данная статья - попытка решить один маленький кусочек большой проблемы платформы 1С, а именно - бедные и невыразительные пользовательские интерфейсы. Поскольку 1С в режиме управляемого приложения позволяет задействовать веб-клиент, то хочется реализовывать интерфейсы как у взрослых веб-приложений - красивые, дружелюбные для пользователя и, желательно, с положительным UX. Возможно, кто-то со мной не согласится и скажет, что учетные системы должны быть строгие и линейные. Но мы все знаем, что 1С - это уже не только про бухгалтерию. Небольшое отступление для разработчиков, работающих с типовыми конфигурациями. Я не знаю, использует ли фирма 1С что-то похожее в своих разработках. Если да, то данная статья навряд ли будет вам полезна.
1 стартмани
17.12.2019 14880 2 azhilichev 5
[Взрыв шаблона!] Новый способ программной настройки условного оформления
Условное оформление форм и списков это великолепная возможность их настройки по заданным условиям. Но существенным недостатком является трудоемкость написания и сопровождения программного кода. В публикации предлагается новый способ программной настройки условного оформления.
Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.
В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "///// echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1.
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.
Собственно сам скрипт:
global $wpdb2;
global $failure;
global $file_hist;
///// echo '
Старт загрузки
';
$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
///// echo '
Файл обмена с сервисными книжками не существует.
';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
>
/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure) ///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
///// echo '
Попытка вставить запись в лог таблицу
';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
///// echo '
Возврат в начало.
';
return $failure;
>
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist); ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7]; ////получаем размер файла
$m_mtime_file=$masiv_data_file[9]; ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file
///// echo '
Размер файла: '.$m_size_file.'
';
///// echo '
Штамп времени файла: '.$m_mtime_file.'
';
///// echo '
Формирование запроса на выборку из лога
';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);
if ($results)
< foreach ( $results as $r)
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
///echo '
Возврат в начало, т.к. найдена запись в логе.
';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
>
>
>
////если данные новые, пишем в лог запись о начале загрузки
/////echo '
Попытка вставить запись о начале загрузки в лог таблицу
';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));
////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
///// echo '
Очистка таблицы сервисных книжек
';
if (empty($results))
///// echo '
Ошибка очистки таблицы книжек, завершение.
';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
>
////загружаем данные
$table='vin_history'; // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация // (путь от корня web-сервера)
$delim=';'; // Разделитель полей в CSV файле
$enclosed='"'; // Кавычки для содержимого полей
$escaped='\
В этой статье научимся добавлять в табличный документ картинки. Вы узнаете, как вставить конкретную картинку в табличный документ, а также как подгрузить картинку из общих картинок конфигурации и из хранилища значений.
Вставить картинку в табличный документ 1С
Научимся вставлять картинки в макет табличного документа 1С. Для того, чтобы вставить картинку в табличный документ необходимо воспользоваться командой «Картинка…» тогда, когда табличный документ открыть и на нем установлен фокус. Команда «Картинка…» находится по следующему пути в конфигураторе 1С: «Главное меню – Таблица — Рисунки».
Откроется окно «Выбор картинки».
В этом окне есть несколько вариантов выбора. В закладке «Из библиотеки» мы можем выбрать или общую картинку конфигурации, или стандартную картинку платформы 1С.
На закладке «Из файла» мы можем загрузить нужную картинку из файловой системы.
Вставим картинку из файла. Для этого на закладке «Из файла» следует нажать на кнопку «Выбрать файл».
Найти нужный файл в открывшемся окне «Выбор картинки».
После выбора рисунка, вы можете сделать белый цвет прозрачным. Для этого следует нажать на кнопку «Установить прозрачный цвет», после этого ваш курсор станет «карандашом», и этим курсором необходимо кликнуть по белому цвету картинки.
В результате, белый цвет уйдет.
После нажатия на кнопку «Ок» окна «Выбор картинки», картинка отобразится в табличном документе.
Заметьте, что вокруг вставленной картинки имеется рамка. Для того, чтобы убрать эту рамку, откроем палитру свойств картинки.
И в свойстве Линия установим значение «Нет линии».
В результате, рамки во круг картинки не станет.
Добавим макету область, создадим форму, команду формы, в которой будем выводить табличный документ на просмотр.
И посмотрим, как выведется наш табличный документ с картинкой.
Вывести картинку в табличный документ 1С
Приведенный выше способ отображение картинок статичен: мы вручную при создании макета выбираем ту или иную картинку, которая будет всегда в этом макете отображаться. Но, очень часто возникают ситуации, когда нужно картинку подгружать или из библиотеки картинок, или из хранилища значений.
В этой статье Вы узнаете, как загружать и хранить картинки в хранилище значений:
В учебной конфигурации у справочника Контрагенты был создан реквизит Логотип, тип которого Хранилище значения.
В этом реквизите хранятся картинки.
Теперь, сделаем табличный документ, на котором будет выводиться информация об контрагенте, а также картинка, которая привязана к этому контрагенту.
Есть несколько способов вывода картинки на табличный документ, разберем один из них.
Создадим макет табличного документа, в котором создадим область и зададим несколько параметров, в которые будем выводить информацию о контрагенте.
Теперь, в макет добавим пустую картинку. Нам следует выполнить команду «Рисунок…» по уже знакомому пути «Главное меню – Таблица — Рисунки», но не выбирать ни какую картинку ни где, а просто нажать на кнопку «Ок».
Будет добавлена пуста картинка (скорее всего, она будет маленького размера).
Откроем палитру свойств этой картинки, изменим имя, уберем рамку и установим авторазмер картинки.
Всё! Макет готов, теперь создадим на управляемой форме реквизит Контрагент, поле ввода контрагента, а также команду для вывода табличного документа.
Создадим обработчик команды и функцию, в которой будем выводить в табличный документ данные контрагента.
Мы получили данные контрагента через запрос. Обращаю ваше внимание на поле «Контрагенты.Логотип КАК Логотип», так мы получаем хранилище значения. Пока все вывели табличный документ без рисунка. Реализуем возможность вывода рисунка. Для этого, вставим после вывода параметров области (ИНН,КПП, название) следующий код.
В этом коде, из хранилища значений, которое в поле Логотип выборки, получим двоичный файл (//1). Потом создадим объект Картинка конструктором на основе двоичных данных (//2), вторым параметром Истина мы установили прозрачность картинки. И присвоим свойству Картинка рисунку области табличного документа, который мы добавили пустым, созданную картинку (//3).
По сути, мы программным способом «загрузили» картинку в свойство Картинка созданного нами пустого рисунка.
Если мы сейчас попробуем показать этот табличный документ, то на нем отобразится картинка.
Рассмотрим ещё, как программным способом вывести общую картинку. Например, в моей конфигурации имеется общая картинка под названием «Общий логотип».
Выведем эту картинку в уже созданный ранее табличный документ.
Для этого, также как и в первый раз, добавим на табличный документ пустую картинку, которую назовем ОбщийЛоготип, и у которой уберем обводку.
Нам осталось вывести эту картинку при формировании табличного документа. Делается это гораздо проще, чем с картинкой из хранилища значений: просто присваиваем свойству Картинка, вновь добавленному рисунку табличного документа, общую картинку из библиотеки картинок.
После этого, общая картинка будет выведена в табличный документ.
Другие статьи про табличные документы в 1С:
Более подробно и основательно разработка в 1С дается в моей книге: «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
Вывод изображения на управляемую форму
В тестовой конфигурации для элементов справочника "Сотрудники" был создан механизм прикрепления файлов изображений. Однако при открытии элемента текущее изображение можно посмотреть лишь открыв прикрепленный файл.
Наша задача будет заключаться в отображении на форме элемента текущего изображения. Главное условие - доработка осуществляется для управляемой формы.
Как это было раньше
Прежде чем перейти к решению задачи, рассмотрим, как это реализовывалось бы для обычной формы. В тестовой конфигурации для справочника "Сотрудники" созданы два реквизита:
- "Фото" - реквизит с типом "ХранилищеЗначений", в котором хранятся двоичные данные файла изображения.
- "ИмяФайла" - строковой реквизит, в который записывается имя файла прикрепленного изображения.
И, вуаля! При открытии отображается прикрепеленной ранее фото!
Вся задача решилась в два шага: добавляем поле картинки на форму, и перед открытием получаем картинку из реквизита элемента справочника и присваиваем элементу формы. С управляемой формой все немного сложнее.
На управляемой форме
На управляемой форме просто так получить картинку из хранилища значений не получится, а уж тем более поместить его на управляемую форму. Поскольку управляемые формы созданы для четкого разделения клиентской и серверной стороны, то и логика работы будет иной.
Для отображения изображения для начала добавим строковой реквизит формы "ФотоСотрудника", для которого на форме создадим элемент с типом "Поле картинки".
Теперь в обработчике формы "ПриСозданииНаСервере" добавим следующий программный код:
Здесь методом "ПоместитьВоВременноеХранилище" мы помещаем двоичные данные из реквизита "Фото" элемента справочника во временное хранилище. Метод возвращает адрес помещенных данных во временном хранилище в виде строки. Подробнее о временном хранилище, его назначении и примеров работы с ним Вы можете прочитать по ссылке .
В результате при открытии элемента мы увидим следующее:
На этом задача полностью решена!
Задача решена
Задачу мы решили, но есть куда оптимизировать! Файл лучше вынести в отдельную таблицу, чтобы время открытия элемента справочника не возросло при прикреплении изображений больших размеров. Но оптимизация уже выходит за рамки статьи.
Читайте также: