gifts2017

1С7: Галерея изображений для любого справочника

Опубликовал Роман Уничкин (unichkin) в раздел Программирование - Инструментарий

В публикации представлена конфигурация "Галерея изображений". В конфигурации показан метод связки любого элемента любого справочника с изображением, хранящемся в внешнем файле в галерее ИБ.
- Хранение изображений в структуре каталогов, сходной с иерархией элемента;
- Использование Active-x броузера для отображения связанного рисунка;
Используемые компоненты: 1SQLite, 1CPP, Formex.
Используемые классы: УправлениеФормой.Привязки (из набора классов http://www.1cpp.ru/forum/YaBB.pl?num=1273512019)

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

Пара замечаний:

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

 - Можно немножко допилить, и разделять в корне каталоги еще и по флагу "ЭтоГруппа", но я с группами ничего не делал и не экспериментировал, не было особой нужды...


Плюсы:

- Более гибкий функционал для просмотра изображения, по сравнению с штатным (благодаря броузеру Active-x)

- Формат загружаемых изображений не ограничен штатным.

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

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

Минусы:

- Если это для кого-то еще минус - используются ВК, используются классы.

Планируется: навряд-ли доберусь, но была идея вообще привязать какую-нибудь галерею на js или jquery.

В качестве бонуса?)) - обработка в конфигурации "_ГалереяИзображений" - пример табличного поля с использованием поставщика SQLiteDataProvider.

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

Скачать файлы

Наименование Файл Версия Размер
Галерея изображений 12
.rar 2,11Mb
10.07.13
12
.rar 2,11Mb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Виталий П (VSKIF) 14.07.13 17:45
УправлениеФормой = СоздатьОбъект ("УправлениеФормой");
{Обработка._ГалереяИзображений.Форма.Модуль(86)}: Неудачная попытка создания объекта (УправлениеФормой)
2. zhuravlik (unichkin) 14.07.13 17:58
На всякий случай перекачал и проверил, с 1 запуска все работает.
1. Возможно используете устаревшую версию 1С++
2. В конфигурации есть обработка для регистрации классов - DefCls. Проблема могла возникнуть из-за ее изменения, либо если была попытка объявить классы в внешнем DefCls.prm.
Попробуйте распаковать архив в пустой каталог, и запустить оттуда конфу, ничего не изменяя (Все необходимые ВК там уже есть).
3. zhuravlik (unichkin) 14.07.13 18:00
+ В функции "ЗагрузкаВнешнихКомпонент()" - сначала загружаются ВК из каталога с программой, и только в том случае, если их нет - из каталога с базой. Если используете старый 1С++, и ВК находится по адресу КаталогПрограммы() + "\dll\1СPP.dll", попробуйте изменить порядок загрузки ВК в конфе.
4. Гость 14.07.13 18:02
Да, конфигурация скачанная работает. DLL заменил. Попробовал вставить в свою. Проблема в DefCls. Что с ней делать?
5. zhuravlik (unichkin) 14.07.13 18:07
Если есть внешний DefCls.prm, то дописать в него обьявления необходимых классов, сами классы тоже вынести во внешний файл.
Но, имхо, так неудобно, всегда загонял классы в саму конфу (кстати, специально не экспериментировал но по-моему так они и работают быстрее).
6. Гость 14.07.13 20:08
Внешнего DefCls.prm нет, а как его сделать?
7. zhuravlik (unichkin) 14.07.13 20:22
(6) Если хотите использовать готовое решение, возьмите обработки из конфигурации (Классы - обработки с префиксом "_я_Класс_", и обработку описания классов - DefCls).
Все ответы на вопросы работы с классами ищите на http://www.1cpp.ru/forum.
8. Гость 15.07.13 14:25
Попробовал разобраться с 1С++. Сделал как в http://www.script-coding.com/1cpp.html, однако, аналогичная ошибка, как с Галлереей. Может 1CPP.DLL не грузится? В глобальном модуле все описано... Не понимаю....
9. Виталий П (VSKIF) 15.07.13 14:40
Спасибо. Разобрался. Была проблема с файлом DefCls. Работает. А что делать с Form.htm?
10. zhuravlik (unichkin) 15.07.13 14:46
(8) Эта ошибка связана с неверным описанием класса в DefCls. Я уже писал, что проще - возьмите из конфы обработки все, там уже все что надо есть.
Иначе в 1С, Помощь -> О программе -> Закладка 1С++ - посмотрите загруженные классы, посмотрите то-же самое в конфе галереи.
(9) Ничего не делать. Form.htm нужен для отображения картинки в актив-икс броузер.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа