1. Подготовим в глобальном модуле несколько вспомогательных процедур и функций...
Глоб.переменные и вспомогательные процедуры/функции
Теперь самое главное: я - сторонник простых решений (в моем понимании, а оно (мое понимание) - не обязано совпадать с чьим-то другим... Там, где возможно обойтись без изменения схемы данных конфигурации - я стараюсь так и сделать... Поэтому принимаем ключевое решение: связь номенклатуры с картинкой будет осуществляться "административно", т.е. работаем так КАК НАДО, по кривым ручкам - бьём палкой или, как говорится, "штраф - лопатой по е...у". А "как надо" в нашем случае означает следующее: в качестве имени картинки используется код номенклатуры из справочника товаров. Все. Никаких дополнительных записей. Не устраивает код - используйте артикул, ШК базовой единиц и прочие уникальные идентификаторы товаров, например, как описано здесь:
http://www.infostart.ru/profile/174/projects/1387/ - там же описаны и прочие соображения, относящиеся к излагаемому сейчас "решению", повторять здесь их не будем... отметим только следующее соображение: изображения товаров будем хранить в отдельной папочке типа КаталогИБ\IMAGES.DIR\
Дополнительно заметим, что картинка может быть задана в одном из нескольких поддерживаемых 1Ской форматов - зададим (на всякий случай - а они бывают разные... ;-) перечень таких форматов в порядке "удобства" форматов картинок...
Итак, некие начальные действия мы сделаем в самом конце процедуры ПриНачале работы системы:
При старте системы подготовим некоторые данные...
После того, как выполнили подготовительные "обслуживающие действия, приступим непосредственно к самому показу картинки. Пока делаем по-простому: картинку товара будем показывать в карточке товара (форма элемента справочника). Для этого откроем в конфигураторе форму элемента нужного справочника и сдизайнерим картинку в нужном месте: кладем на форму объект картинка, никакую реальную картинку на объект не назначаем, даем объекту "картинка" индентификатор (_имТовар) - по этому идентификатору будем далее "манипулировать" картинкой:
Карточка товара
Предусмотрим ситуацию необходимости смены картинки "на лету" при изменении кода товара:
(см.Потерявшуюся картинку в конце статьи)
Привязка картинки к товару идет по коду товара...
При открытии карточки товара (формы элемента справочника) дадим команду "привязать" картинку товара к текущей открытой карточке - вызовем процедуру чтения картинки из папки с картинками:
Привязываем картинку к товару при открытии карточки товара...
Непосредственно сами процедуры, показывающие картинку:
Процедуры показа картинки
Вот, собственно и все...
Напоследок обмолвимся: в дизайне карточки товара есть кнопарик "IMG" с пиктограмкой дискеты - эта кнопка предназначена для копирования текущей картинки товара в произвольную папку (за это отчечает процедура, повешенная на эту кнопку: _кнСохранитьКартинку()... ) Для чего? а для чего угодо: 1. чтоб было 2. чтоб в загашник отложить 3. чтоб потом прикрепить картинку ручками в аутлуке и отправить письмом назойливому клиенту... 4 и т.д.
Ниже приведен просто ряд картинок, на "живой базе" демонстрирующий описанные выше приемы...
Пример показа картинки
Незначительным усовершенствованием вносится функционал нескольких" альтернативных картинок для одной номенклатурной позиции... Кому будет интересно - заказывайте описание .. ;-)
На финише "урока" отмечу следующее: показ картинок - это один из "велосипедов", через которые проходит 1Сник на своем пути наряду с перенумерацями/сдвижками доков/поиском дубликатов и т.д.
Вышеприведенный материал никоим образом не претендует на универсальность/оригинальность/красоту... Просто маленький "урок-пример" - кому понравилось/пригодилось - хвалит и плюсует, кому не понравилось - тихо идет мимо... ;-)
мелкое развитие описанногй выше идеи - нескольо альтернативных картинок к одному товару...
без картинки
Основная картинка
выбор показываемой картинки
пример
пример
пример
пример
Потерявшаяся картинка