Иногда необходимо прямо в табличной части документов сразу видеть изображение товара. Например, при считывании штрихкода проконтролировать правильность выбора товара. Предлагаемое расширение (не требует изменения конфигурации поставщика) при установке отображает миниатюры товаров в документе "Заказ клиента", при необходимости легко переносится на другие документы.
Как реализован вывод изображений? Для каждого товара с картинкой необходимо создать миниатюру (которая влезает по размеру в колонку в табличной части документа). Эту миниатюру необходимо добавить в "присоединенные файлы" к номенклатуре с именем "мини" (так прописано в коде функции, но можно и поменять). Для упрощения создания миниатюр можно воспользоваться служебной обработкой.
В форме документа в дереве реквизита "Объект"
в табличной части "Товары"
добавляем реквизит "Фото", тип "Строка"
И перетаскиваем его на форму в нужное нам место:
Далее у колонки "Фото" устанавливаем свойства:
- Вид - "Поле картинки"
- Размер картинки - "Пропорционально" (если вдруг в миниатюру попадет большая картинка, строчки в документе не съедут, просто картинка отобразится не полностью)
- Ширина 10, Высота 4 - эти параметры измеряются в символах (т.е. получается 4 строчки по 10 символов)
У колонки "Номенклатура" также необходимо установить высоту в значение "4" - иначе отображение строчек будет "съезжать".
Далее в свойствах табличной части "Товары" указываем
- Вертикальная полоса прокрутки - "Использовать всегда"
А затем нам нужно в наш реквизит "Фото" табличной части "Товары" поместить двоичные данные картинки - миниатюры, а точнее адрес ссылки на двоичные данные во временном хранилище, в этом случае платформа вытаскивает из нее картинку.
А процедуру "ОтобразитьКартинки" мы уже вызываем в обработчиках:
- ОбработатьШтрихкоды
- ТоварыНоменклатураПриИзменении
- ПриОткрытии
- ОбработкаВыбораПодборНаКлиенте
- ОбработкаВыбораПодборНаКлиентеПослеВопроса
Есть более функциональные разработки, где также присутствует механизм отображения картинок товаров в списке номенклатуры:
- Номенклатура (Расширенная форма списка)
- Номенклатура (Расширенная форма списка) и Корзина [Расширение]
Про вывод картинок в динамический список можно почитать здесь: Изображения в динамическом списке
Обработка для загрузки миниатюр
Для упрощения создания миниатюр к данной публикации прилагается обработка. Предполагается, что в базе 1С уже содержатся изображения товаров.
В обработке указывается каталог для выгрузки изображений:
Также есть возможность отфильтровать выгружаемые картинки по номенклатуре. Для работы фильтра используется компоновщик настроек СКД и программное создание схемы компоновки
Далее выгруженные картинки необходимо уменьшить до нужного размера (30 - 40 пикселей в высоту). Для этого удобно использовать программу "Диспетчер рисунков Microsoft Office", или другую программу для пакетного изменения размера изображений. После изменения размера картинок грузим их обратно в 1С
Подключение расширения
Расширение для работы с картинками необходимо подключать с отключенным флажком "Безопасный режим".
Дело в том, что права на регистр сведений "Двоичные данные файлов", в котором хранятся картинки, есть только у роли "Полные права". А вся работа с картинками в типовой конфигурации построена таким образом, что в нужных местах вызывается команда
УстановитьПривилегированныйРежим(Истина);
А как раз таки вызов этой команды запрещен в расширениях, подключенных в безопасном режиме, поэтому он не срабатывает, и на получение данных картинок у пользователей не хватает прав.
Скачиваемый файл
В скачиваемом файле к публикации идет архив с:
- Расширением конфигурации
- Обработкой для загрузки миниатюр
Протестировано на платформе 8.3.10.2667 на релизе УТ 11.4.1.241.
Наша компания EComIntegrator специализируется на внедрении 1С УТ 11 и интеграциях 1С УТ 11 с другими ИТ-продуктами и сервисами.