Автоматизация добавления водяных знаков на фотографии в 1С

27.11.25

Разработка - Инструментарий разработчика

GraphicsMagick или ImageMagick. По сути одно и то же, но GraphicsMagick оказался стабильнее в моей задаче, поэтому остановился на нем. Что же это такое? Очень гибкий инструмент для редактирования, создания, обработки изображения, конвертации и т.д.

Файлы

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

Наименование Скачано Купить файл
Автоматизация добавления водяных знаков на фотографии в 1С
.epf 8,47Kb
0 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

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

Оформить подписку и скачать решение со скидкой

В системах windows работа ведется через powershell. Да да да, придется писать скрипты, и не всегда у вас это будет получаться быстро)) Инструкций на «винду» довольно мало, чаще вы будете натыкаться на linux подобные команды и полностью не родной язык статей (английский). Немного спасает ситуацию ImageMagick, он более популярен и команды между программами схожи в некоторых местах, но все это не отменяет попадания в тупик, где вот не работает и все….

Первое, с чем столкнулся, это установка самой программы, зайдя на офф сайт, нас перекинет на «sourceforge.net» и выбрав версию для windows, мы скачиваем «.exe».

 

 

Выбираем понравившуюся, мне приглянулась 1.3.42, скачиваем и устанавливаем.

 

 

Далее нам нужны непосредственно скрипты и понимание, как их писать. Начнем с простого, в большинстве инструкций есть команды для проверки того, что GM установился и работает. Например, такие:

gm convert logo: logo.miff

gm convert logo.miff win:

 

 

Чето не работает, да…. Скривив лицо от недоумения, тут я и остановился, когда пытался все сделать в первый раз, но если прописать прямой путь до exe…

& 'C:\Program Files\GraphicsMagick-1.3.42-Q8\gm.exe' convert logo: logo.miff

& 'C:\Program Files\GraphicsMagick-1.3.42-Q8\gm.exe' convert logo.miff win:

 

 

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

По ссылкам ниже, вы найдете ОФИЦИАЛЬНУЮ документацию, с которой вам придется жить)

http://www.graphicsmagick.org/GraphicsMagick.html

http://www.graphicsmagick.org/utilities.html

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

Animate - отображает анимацию (например, GIF-файл) на дисплее любой рабочей станции, на которой запущен X-сервер.

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

Benchmark - выполняет одну из других служебных команд (например, convert) в течение заданного количества итераций или времени выполнения и сообщает о времени выполнения и другой информации для профилирования, такой как загрузка процессора. Benchmark предоставляет различные режимы работы, включая выполнение команды с различным количеством потоков и альтернативные форматы отчетов, такие как значения, разделенные запятыми (CSV).

Compare - сравнивает два изображения и выдает статистику различий в соответствии с указанными показателями и/или выводит изображение с визуальным представлением различий. Это также может использоваться для проверки сходства изображений в определенном диапазоне и по указанному показателю, возвращая значение истинности в исполняющую среду.

Composite - объединяет изображения (смешивает или сливает воедино) для создания новых изображений.

Conjure - интерпретирует и выполняет сценарии на языке сценариев Magick Scripting Language (MSL).

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

Display - это независимое от архитектуры компьютера средство обработки изображений и отображения. Он может отображать изображение на любом дисплее рабочей станции, работающем под управлением X-сервера.

Identify - описывает формат и характеристики одного или нескольких файлов изображений. Программа также сообщает, является ли изображение неполным или поврежденным.

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

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

Montage - создает композицию путем объединения нескольких отдельных изображений. Изображения помещаются в виде мозаики на составном изображении, при этом название изображения может быть указано непосредственно под отдельным фрагментом.

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

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

 

Для решения нашей задачи интересна команда Composite, синтаксис ее выглядит следующим образом:

gm composite [ options ... ] change-image base-image [ mask-image ] output-image

Готовый скрипт выглядит уже вот так:

& 'C:\Program Files\GraphicsMagick-1.3.42-Q8\gm.exe' composite -gravity northwest C:\usr\логотип.png C:\usr\начальноеизображение.png C:\usr\конечноеизображение.png

& 'C:\Program Files\GraphicsMagick-1.3.42-Q8\gm.exe' composite – путь до исполняющего файла и команда GM для выполнения

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

C:\usr\логотип.png – путь до логотипа, должен быть в папке

C:\usr\начальноеизображение.png – путь до изображения на которое будут накладывать логотип, должно быть в папке

C:\usr\конечноеизображение.png – путь и имя итогового изображения, создастся по указанному пути

 

Итак, попробуем применить полученные знания:

& 'C:\Program Files\GraphicsMagick-1.3.42-Q8\gm.exe' composite -gravity northwest C:\usr\logo1c.png C:\usr\костыли.png C:\usr\1скостыли.png

 

 

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

 

 

Но для того, чтобы понять, что нам добавить\изменить, нужно найти правильный параметр. И тут нас тоже поджидает подстава. В одной документации под наши нужды подходят либо –resample либо –density, но нет, они не работают так, как нужно там))) А вот уже в другой есть такой параметр: -resize. Используем его в скрипте:

& 'C:\Program Files\GraphicsMagick-1.3.42-Q8\gm.exe' composite -gravity northwest -resize 600x600 C:\usr\logo1c.png C:\usr\костыли.png -resize 600x600 C:\usr\1скостыли.png

Новый параметр сразу в 2 местах.

composite -gravity northwest -resize 600x600 C:\usr\logo1c.png – все это относится к логотипу, который мы будем накладывать на нашу фотографию, лого теперь ужмется/увеличится до 600х600 пикселей.

C:\usr\костыли.png -resize 600x600 – это уже относится к изображению, которое мы обрабатываем, оно также изменит свои размеры.

Как мы видим, теперь все помещается «друг в друга», можем сделать действительно водный знак, еще уменьшив разрешение логотипа.

 

 

& 'C:\Program Files\GraphicsMagick-1.3.42-Q8\gm.exe' composite -gravity northwest -resize 200x200 C:\usr\logo1c.png C:\usr\костыли.png -resize 600x600 C:\usr\1скостыли.png

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

 

 

Что касательно работы с 1С, тут также имеются нюансы. Например, если скрипт не будет выглядеть вот так с переносами, вы замучаетесь с тем, что он не работает. Далее нюанс в том, что пока идет обработка фото, постоянно будет всплывать окно powershell, оно-то, конечно, сразу закроется, но работать за компом в этот момент не сможете….

Вот моя реализация текста скрипта в 1С, под мои задачи.

                ТекстСкрипта.УстановитьТекст("& 'C:\Program Files\GraphicsMagick-1.3.42-Q8\gm.exe' "

                + ""

                + "composite -gravity northwest "

                + "C:\usr\logo.png "

                + ""

                + путьдофайла

                + " "

                + ""

                + путьдофайла

                + ""

                );

                ТекстСкрипта.Записать(ИмяСкрипта, КодировкаТекста.UTF8);

 

Так же выкладываю обработку, которую НЕОБХОДИМО ДОДЕЛАТЬ ПОД СЕБЯ. Еще раз, обработка, вероятно, не запустится сама по себе в вашей базе, если понимаете, о чем я ;) В ней совсем немного буков, кто хочет разобраться, сможет за пару часов, но в свое время на ее создание было потрачено немало часов работы, и прошу уважать этот труд. Обработка представляет собой форму.

Для тех, у кого нет возможности скачать обработку, но очеееень хочется, принцип работы: в табличную часть заполняются (ссылка на фото номенклатуры, сама номенклатура). По кнопке «выполнить» из 1С фото скачивается в папку на ваш комп, далее фото обрабатывается логотипом с помощью скрипта, и обработанное фото загружается обратно в 1С, замещая собой старое. Все это работало в режиме тонкого клиента, в сервисе 1С ГРМ, конфа УТ 11.5.

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

Всем спасибо за внимание!!!

Проверено на следующих конфигурациях и релизах:

  • Управление торговлей, редакция 11, релизы 11.5.22.117

Вступайте в нашу телеграмм-группу Инфостарт

водные знаки GraphicsMagick GM разработка автоматизация

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

14400 руб.

20.08.2024    50141    286    143    

259

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    227997    1241    415    

1080

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданым 1С, справке синтакс-помошника и проверки синтаксиса.

9900 руб.

25.08.2025    24684    60    10    

67

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С:Предприятие 8 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Библиотека стандартных подсистем Платные (руб)

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

22200 руб.

06.10.2023    29855    78    30    

104

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

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

16000 руб.

10.11.2023    21031    86    42    

95

Инструментарий разработчика Программист 1С:Предприятие 8 Платные (руб)

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

9500 руб.

17.05.2024    42756    156    57    

191

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

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

36000 руб.

28.08.2025    2497    1    2    

4
Для отправки сообщения требуется регистрация/авторизация