Приводится пример как можно в среде 1С 7.7 не просто выводить готовую картинку, а работать с ней по примеру графических редакторов и просмотрщиков. Можно открыть файл практически любого растрового формата, получить любые его атрибуты, переконвертировать, изменить размер, обработать фильтрами, даже создать с нуля - возможностей очень много, все описать страницы не хватит, лучше почитайте документацию. Обработки для 1С 8.* не привожу, но все делается по аналогии.
Бесплатные
ВНИМАНИЕ:
Файлы из Базы знаний - это исходный код разработки.
Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы.
Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных.
Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Узнавайте о новых бесплатных решениях в нашей телеграм-группе
Инфостарт БЕСПЛАТНО
Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
0% комиссии — оплата напрямую исполнителю;
Исполнители любого масштаба — от отдельных специалистов до команд под проект;
Прямой обмен контактами между заказчиком и исполнителем;
Безопасная сделка — при необходимости;
Рейтинги, кейсы и прозрачная система откликов.
Для реализации вышеописанного необходимо установить ActiveX-библиотеку GflAx, после этого возможно обращение к любым ее свойствам и методам. Привожу пример обработки, с помощью которой можно открыть файл картинки любого формата, поиграть ее масштабом, подвигать в разные стороны - то есть простейший вьюер графики на 1С. Среди файлов находится также сама библиотека, отдельным файлом лежит хэлп по ней, где описаны все ее богатые возможности (на английском).
Создайте свой функциональный интерфейс в любой конфигурации 1С с помощью расширения Infostart Dashboard.
Настраивайте панели виджетов с метриками, индикаторами и показателями на начальном экране.
Узнайте возможность внедрения подсистемы у себя в конфигурации с помощью бесплатной обработки "Анализ внедрения подсистемы 1С Infostart Dashboard"!
Расширение «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8».
Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.
Универсальный редактор картинок 1С предназначен для обработки изображений в режиме «Предприятие», с возможностью рисовать на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). В комплект поставки включены Расширения для легкого подключения данного функционала в БК, УТ, КА и ERP. Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Обработка будет особенно полезна тем, кто вносит картинки в базу. Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).
Знакомая ситуация? Пользователи, особенно менеджеры, уверены: отборов много не бывает. Идут пожелания добавить в форму списка еще один быстрый фильтр, еще два, еще пять...
В итоге интерфейс превращается в нагромождение полей отбора, а потребность в «самом главном» отборе, который «вот прямо сейчас нужен», все равно не закрыта.
Универсальное расширение, которое решает эту проблему элегантно и технологично. С его помощью в любую форму списка можно легко добавить панель настраиваемых кнопок-закладок, каждая из которых применяет сложный фильтр-запрос, а так же показывает актуальное количество элементов в реальном времени.
Разработка "Дизайнер форм 1С" реализована в виде расширения 1С и является универсальным инструментом для разработки прототипа форм с целью демонстраций, технических заданий и т.д. Без участия разработчика с возможностью экспорта в файл внешней обработки и генерации формы используя искусственный интеллект.
Это инструкция по дизайну форм в среде 1С. Гайд охватывает рекомендации и стандарты для оптимизации пользовательского интерфейса. В гайде содержатся указания по использованию элементов интерфейса, включая как основные, так и продвинутые аспекты. Предоставляются также примеры и антипримеры для наглядного понимания принципов дизайна
Можно к примеру прикрутить эту вещь к просмотрщику изображений товаров, фотографий сотрудников. Я лично писал с помощью 1С и этой библиотеки обработку, с помощью которой уменьшал размеры 10000 фотографий со своего форума в зависимости от различных условий.
Ой, забыл добавить что и в среде 1С 8.* можно также без проблем работать с этой библиотекой - ведь библиотека ActiveX, а значит не требует своей загрузки, следовательно и проблем быть не должно.
Здравствуйте, уважаемый автор!!!
Будьте добры!Помогите пожалуйста понять, что неправильно делаю, хотя вроде всё должно быть правильно!!!
У меня возникло впечатление, что данная компонента у меня подглючивает!!!
Если я создаю картинку допустим 1000*1000, то в некоторых участках вообще невозможно что-либо отобразить (элементарную линию или прямоугольник и т.д.), а в некоторых участках рисуется неадекватные параметрам фигуры!!!
Привожу элементарный пример построения прямоугольника, который несоответствует своим пропорциям и параметрам:
Функция ПолучитьЦвет(Красный,Зеленый,Синий)
Возврат Окр(Синий)*65536+Окр(Зеленый)*256+Окр(Красный);
КонецФункции
Создал ряд дополнительных процедур и функций для работы с графической библиотекой GflAx, значительно расширяющий ее возможности рисования. Пока самые нужные для построения столбчатых и линейных графиков, надеюсь что набор будет дополняться. В обработке содержится также пример графика, того что на скриншоте.
Для работы с картинками (получение атрибутов картинки, поворот, масштабирование, конвертация и прочие преобразования) можешь использовать функционал GflAx. Хранить картинку можно различными способами. Самый простой - во внешнем файле, а в одном из реквизитов номенклатуры держать название этого файла. Сложнее - хранить внутри самой базы, это не всегда нужно но бывает... При выводе на печать ты либо используешь то изображение товара что у тебя есть, либо на основании его подготавливаешь промежуточный файл с необходимым размером сторон (так как 1С не умеет нормально масштабировать картинки). Далее используешь штатные средства 1С для печати картинок.
1. В макет таблицы вставляешь картинку.
2. В свойствах картинки на закладке "Текст" пишешь:
СпрТовары=СоздатьОбъект("Справочник.Товары");
Таб=СоздатьОбъект("Таблица");
СпрТовары.ВыбратьЭлементы();
Пока СпрТовары.ПолучитьЭлемент()=1 Цикл
Файл=КаталогСКартинками+СпрТовары.ИмяКартинки;
Таб.ВывестиСекцию("Строка");
КонецЦикла
Таб.Показать();
(5)>Бит, я не настолько силен в английском,
"GFL SDK/GFLAx" is provided as Freeware for private non-commercial or educational use (including non-profit organization).
You must contact me for commercial use and distribution. webmaster@xnview.com
@GFL SDK/GFLAx" разработан как бесплатный для частного некоммерческого использования или использования в образовательных целях (включая не приносящие денежной выгоды организации)
Для использования в коммерческих целях или распространения программы вы должны связаться со мной по адресу
webmaster@xnview.com
+(6) Так что тут несколько двусмысленная ситуация... Использование ее программистом 1С, особенно, если он за эти "красотульки" возьмет с заказчика деньги, однозначно можно расценить, как коммерческое использование.
Плюс налицо распространение (distribution) Саш, это не в упрек тебе, просто для сведения ;)
(10)ИМХО убирать не обязательно, но ссылку на разработчика лучше дать,
вы лично не получаете ни каких денег за это.
НУ и не забывать про лицензию :)
А кто захочет, сам свяжется с разработчиком данного продукта.
А в общем повторюсь весч красивая.
Пример чуток кривовато написан - идет неправильная сдвижка картинки при двигании кнопками, +задумывается при перерисовке масгтабом > 100%, и движение картинки при больших масштабах не просматривается... - бум дотачивать...
При проверке не заметил отмеченных недостатков о двиганье картинки. Нормально двигается при масштабах 10%-100%, точнее двигается так как задумано, можно только скажем шаг увеличить - но это уж дело вкуса. Насчет ALS - ты блин загнул, давай теперь ко всем сторонним актив-иксам ALS-ки писать... Дока какая-никакая есть и то ладно.
выложен исправленный рабочий пример сюда:
(17) неа, неверно двигается - возьми картинку размера большего чем подложка...
а именно: сильно простое условие написано в процедуре сдвига - не все варианты отрабатывает правильно - если интересно будет - можешь код у меня глянуть - но это не суть важно! важно то, что есть хороший активикс! за что и спасибо!
Да все что угодно можно делать. Можно использовать любые алгоритмы для хранения и просмотра фотографий товаров или сотрудников, можно организовать к примеру пакетное наложение водяных знаков на изображения перед экспортом их скажем в интернет магазин. Можно использовать 1С для личных целей, если нужно скажем обработать свой фотоальбом с использованием различных преобразований или получением информации о фотках, а фоток скажем несколько тысяч. Вообще, если фантазией пораскинуть, можно очень много разных применений библиотечке найти, мне прочто сейчас некогда придумывать да и не к чему - кому нужно тот сам сообразит как использовать. Я в основном использую для работы с очень большими коллекциями фоток из тысяч и десятков тысяч штук - тут напишешь алгоритм как тебе нужно, да еще на привычном языке.
(22) > Можно использовать 1С для личных целей, если нужно скажем обработать свой фотоальбом с использованием различных преобразований или получением информации о фотках, а фоток скажем несколько тысяч.
-- Да, сюда можно прюкрутить, например, эх, когда руки дойдут:-)
Подскажите, как данную тему можно применить для вставки фотографии сотрудника в картучку сотрудника и чтобы она распечатывалась (фотография), например в форме Т2.
Самая моя серьезная работа с использованием библиотеки GflAx - ФОТОБРАУЗЕР (. Можно посмотреть, только разобраться в случае чего в 2000 строк кода будет непросто - код нормально структурирован, но мало откомментирован.
Спасибо за разработку. Давно искал нормальную DLL для картинок.
Эта обработка ведь для образовательных целей :).
Автор ведь денег не берёт, так и претензий по авторству и распространению быть не может.
Автору огромный респект! Настоящий профи!!! Данная разработка- очень серьёзный инструмент в 1с7.7 и мне просто необходима. И у меня, к сожалению, возникла проблемка- график (рис.2) выводится на ура, ну как его распечатать, когда
опция и меню принтера притушена, что делать?????
Подскажите пожалуйста!!! Заранее мегаспасибо!!!
(32) Перед выводом в форму график сохраняется как обычная картинка формата BMP. Соответственно не представляет никакого труда вывести эту картинку в любую печатную форму (смотрите пост №24).
Я только начал изучать 1с Предприятие 8.1. У меня есть проблема с использованием gflax в 8-й версии: выбираю Форма -> Вставить ActiveX -> и в диалогом окне отсутствует данный элемент. Он установлен, переустановлен на более позднюю версию и все же не отображается, несмотря на то что в 7.7 он работает, а так же успешно подключается и работает в VBA. Некоторые другие ActiveX после установки появляются там сразу. Пробовал через
Форма = Отчеты.Отчет1.ПолучитьФорму("Форма");
Форма.ЭлементыФормы.ДобавитьActiveX("GflAx.GflAx.1","gflax");
График = ЭлементыФормы.gflax;
Ошибки нет, но использовать gflax неудается.
Как поступить в данном случае?
И все же, как мне быть? Задача заключается в построении анимированного графика, если остальное мне как то видится еще, то главной задачей для меня сейчас является рисование линии на форме, или хотя бы точки. Подскажите пожалуйста пример рисования линии в 8 версии.
P.S.: в данный момент занимаюсь извращением: составляю линию из отдельных полей картинок с изображением черного квадрата 3х3 пикселя %)
(40) я в восьмерке не силен. тем не менее процесс мне представляется так:
1. кладешь на форму картинку.
2. создаешь объект gflax (в восьмерке это вроде Новый(), в семерке СоздатьОбъект()), идентификатор можешь посмотреть в примере для семерки.
3. с помощью объекта gflax рисуешь в буфере картинку, сохраняешь в bmp-файл.
4. загружаешь файл в лежащую на форме картинку.
5. при необходимости возврощаешься к п.3
Можешь посмотреть пример к семерке, по аналогии заточишь под себя. если ты ни в 7.7, ни в 8.1 не силен, то помочь не могу.
(41)
Меня смутило понятие идентификатор, google по запросу "идентификатор gflax" ничего не дал. Нашел в 7.7 это
Картинка=СоздатьОбъект("GFLAX.GFLAX");
Возможно имелся ввиду тип, но может быть я и ошибаюсь.
В разных вариациях потестил след. часть кода в 8.1 (Нарисовать Линию и Получить Цвет здесь не приводится)
Форма = Отчеты.Отчет1.ПолучитьФорму("Форма");
Форма.ЭлементыФормы.ДобавитьActiveX("GflAx.GflAx.1","GFLAX");
Картинка = Новый("GFLAX.GFLAX");
НарисоватьЛинию(Картинка, 1, 2, 3, 4, 1,ПолучитьЦвет(220,250,255));
Ошибки были, либо неверный тип "GFLAX.GFLAX", либо GFLAX не найдено поле (метод).
Пока что не нашел ни одного примера для 8.1 с использованием этого AX, и наводит на мысль, что поддержка 8.1 - пустые слова.
(42) насчет пустых слов не говори если не уверен. activex-библиотеки можно использовать где угодно хоть в VBScript хоть в delphi хоть в 1С 7.7/8.1. если я не могу написать тебе пример на 8.1 это не значит что это невозможно. ты я гляжу тоже не очень в восьмерке силен, так может не стоит пока залезать в дебри, потренируйся на чем попроще. кстати документация по функциям и свойствам gflax приводится, хотя она и не идеальна но я по ней учился.
(43)
Мб и поможет, но нужно рисование прямой линии, соединяющей произвольные две точки, здесь же только функция времени.
(44)
Документация достойная, сразу получилось подключить в VBA, а значит возможно я там смогу нарисовать то, что мне нужно, сохранить и открыть в 1с. Жаль, что я сразу не понял того, что в 1с это делается таким же путем (сохранение-открытие), а следовательно построение анимации будет хуже, чем я предполагал. Осталось получить ответ на важный вопрос: Можно ли использовать напрямую GFLAx в 8.1 и рисовать на встроенном элементе управления?
Извините, если вопрос покажется наивным. Я не потрудился разобраться со всеми функциями библиотеки. Однако первое впечатление от запуска обработки для вывода графиков в 1с 7.7 двойственное. С одной стороны, все очень красиво, просто супер, а если учесть что это сделано просто, и без всяких .net на открытой библиотеке моей любимой xnview, то хвалить можно бесконечно. Аналогов я не нашол. НО! в демонстрационной обработке омрачает впечатление очень медленный расчет. Быстродействие довольно слабенькое. Может можно его увеличить (в идеале сделать мгновенный вывод) если скажем снизить качество графики. Если это возможно, то как?
Дело в том, что для реализации всех красот (градиентов, полупрозрачности, сглаживания и т.д.) используется практически попиксельный расчет. Ну и сами можете представить, как напрягает 1С выполнить двойной цикл скажем 500х500 пикселей (250'000 точек), да еще с обращением к библиотеке для каждого пиксела. Пришлось расчет перенести из 1С в VBScript, что увеличило скорость в 4 раза, но все равно не достаточно для быстрого расчета (VBScript - тоже интерпретатор, только побыстрее 1С). Вариант вижу один - использовать GflAx для большинства функций графики, которые было бы крайне тяжело и долго реализовывать самому, но написать еще одну ActiveX-библиотеку на C++ для выполнения попиксельных расчетов. Тогда скорость возросла бы минимум раз в 100. Я пока нахожусь на стадии изучения Visual Studio 2008, когда научусь писать библиотеки - попробую реализовать, т.к. теоретически это должно быть несложно. Если конечно кто-нибудь меня не опередит.
..и кстати если координаты прямоугольника в вышеприведённом примере изменить на следующие, то плучается в принципе искомый прямоугольник 200*150- то есть, что хотел, однако, это ниесть хороший тон программирования
:)))))))))))))))))))))))))))))))))))))))))))))))))))))))))
Картинка.DrawRectangle(200,0,200,150);
(59)Здравствуйте мастер-профессионал!!!
Я кстати изучал Вашу серъёзную разработку, но не совсем разобрался как в ней можно в отчёте в печатной форме допустим сформировать график, а потом вывести его на принтер.
А на форме я выводил различные геом. фигуры легко, что конешн радует!!!
DrawRectangle(X As long, Y As long, Width As long, Height As long)
То есть в методе указываются не координаты начальной и конечной точек, у координаты начальной точки плюс ширина плюс высота. Во втором примере у вас как раз все правильно было указано.
(61)Здравствуйте почтенный автор!!!
Простите меня пожалуста, что я так "протормозил". Честно говоря не обратил внимание на параметры рисования прямоугольника и зациклился на координатах.
Впредь теперь буду тщательно изучать доку!!!
МегаСпасибо Вам за помощь и за ВАШ труд!!!
При помощи этой компоненты можно совместить две картинки;
Пример на 1с 7.7
Картинки=СоздатьОбъект("GFLAx.GFLAx");
Картинки.MergeAddFile("D:\12345.JPG",90,1,1);
Картинки.MergeAddFile("D:\123.JPG",20,1,1);
Картинки.Merge();
Картинки.SaveFormat = 1;
Картинки.SaveBitmap("D:\123456789_" + Строка(Y)+".JPG");
GflLib - это библиотека для использования в проектах на С/С++. GflAx - библиотека для использования в приложениях, поддерживающий COM (ActiveX), в том числе 1С 7.7, 1с 8.1, 1С 8.2. Работа с GflAx из 1с 8.1 и 1С 8.2 в обычном режиме практически ничем не отличается от 1С 7.7, разница только в команде инициализации объекта, поэтому смысла выкладывать отдельно примеры для них не вижу. 1С 8.2 в режиме управляемого приложения скорее всего не поддерживает GflAx, хотя могу и ошибаться.
Не знаю, может и не поддерживает, по крайней мере в методах не видел. Но всё же берет откуда-то DPI, с которым было сделано изображение, а это очень важно при печати сканированных бланков. А EXIF можно получить из 1С без GflAx, то ли WSH то ли FSO, не помню точно...
И вот такой еще вопрос.
При изменении масштаба, сдвиге картинке и т.д. каждый раз записывается на диск временная картинка.
В реальной работе не приведет ли это к тому, что у пользователей будут через несколько месяцев умирать жесткие диски?
Ну при условии, скажем, что просматривается в день около сотни фотографий + еще несколько операций по изменению масштаба и т.д.
(72) GSA3D, записывается потому что 1С 7.7 может взять и отобразить картинку только с диска, или как вариант использовать дополнительные ВК. Насчет 1С 8 не знаю, может она уже и способна взять картинку непосредственно из памяти. На жестком диске это никак не скажется, вы просто не представляете какое количество дисковых операций одна только Windows делает даже в режиме простоя, по сравнению с этим чтение/запись картинок это капля в море.
(78) CheBurator, скорее всего контент заблокирован по причине установленных настроек безопасности в IE. правой кнопкой мыши -> свойства -> разблокировать
(88) тут наоборот - с помощью Gflax готовишь картинку, которую понимает 77, и подсовываешь ее - эту картинку в штатный объект "картинка" 77. Полистай у меня в профиле, я по примеру Автора (Маляева) сделал смотрелку простенькую.
Год 2022 на дворе. На всякий случай, на Windows10/11 может работать инсталлятор GflAx.dll, который есть на или например ,
если не очень понятна инструкция