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




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

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

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

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

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

Плюсы:

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

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

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

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

Минусы:

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

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

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

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

10 Comments

  1. VSKIF

    УправлениеФормой = СоздатьОбъект («УправлениеФормой»);

    {Обработка._ГалереяИзображений.Форма.Модуль(86)}: Неудачная попытка создания объекта (УправлениеФормой)

    Reply
  2. unichkin

    На всякий случай перекачал и проверил, с 1 запуска все работает.

    1. Возможно используете устаревшую версию 1С++

    2. В конфигурации есть обработка для регистрации классов — DefCls. Проблема могла возникнуть из-за ее изменения, либо если была попытка объявить классы в внешнем DefCls.prm.

    Попробуйте распаковать архив в пустой каталог, и запустить оттуда конфу, ничего не изменяя (Все необходимые ВК там уже есть).

    Reply
  3. unichkin

    + В функции «ЗагрузкаВнешнихКомпонент()» — сначала загружаются ВК из каталога с программой, и только в том случае, если их нет — из каталога с базой. Если используете старый 1С++, и ВК находится по адресу КаталогПрограммы() + «dll1СPP.dll», попробуйте и

    Reply
  4. Гость

    Да, конфигурация скачанная работает. DLL заменил. Попробовал вставить в свою. Проблема в DefCls. Что с ней делать?

    Reply
  5. unichkin

    Если есть внешний DefCls.prm, то дописать в него обьявления необходимых классов, сами классы тоже вынести во внешний файл.

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

    Reply
  6. Гость

    Внешнего DefCls.prm нет, а как его сделать?

    Reply
  7. unichkin

    (6) Если хотите использовать готовое решение, возьмите обработки из конфигурации (Классы — обработки с префиксом «_я_Класс_», и обработку описания классов — DefCls).

    Все ответы на вопросы работы с классами ищите на http://www.1cpp.ru/forum.

    Reply
  8. Гость

    Попробовал разобраться с 1С++. Сделал как в http://www.script-coding.com/1cpp.html, однако, аналогичная ошибка, как с Галлереей. Может 1CPP.DLL не грузится? В глобальном модуле все описано… Не понимаю….

    Reply
  9. VSKIF

    Спасибо. Разобрался. Была проблема с файлом DefCls. Работает. А что делать с Form.htm?

    Reply
  10. unichkin

    (8) Эта ошибка связана с неверным описанием класса в DefCls. Я уже писал, что проще — возьмите из конфы обработки все, там уже все что надо есть.

    Иначе в 1С, Помощь -> О программе -> Закладка 1С++ — посмотрите загруженные классы, посмотрите то-же самое в конфе галереи.

    (9) Ничего не делать. Form.htm нужен для отображения картинки в актив-икс броузер.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *