[ОБУЧАЛОВКА] Каким макаром к номенклатуре привязать картинку...?

15.01.10

Разработка - Работа с интерфейсом

Последнее время, буквально в течение недели, выплывает постоянно один и тот же вопрос: как показать картинку в справочнике (товаров, сотрудников и т.д.)..? Странный вопрос... На дисках ИТС описано это наверное с начала 2000-х годов, плюс в ЗиК карточка сотрудника показывается... или я отстал от жизни...? Как всегда - парить себе мозги не будем, надо картинку - сделаем!
Делаем - как всегда - без лишней головной боли (глубокое имхо)...
1. Подготовим в глобальном модуле несколько вспомогательных процедур и функций...

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

При старте системы подготовим некоторые данные...
После того, как выполнили подготовительные "обслуживающие действия, приступим непосредственно к самому показу картинки. Пока делаем по-простому: картинку товара будем показывать в карточке товара (форма элемента справочника). Для этого откроем в конфигураторе форму элемента нужного справочника и сдизайнерим картинку в нужном месте: кладем на форму объект картинка, никакую реальную картинку на объект не назначаем, даем объекту "картинка" индентификатор (_имТовар) - по этому идентификатору будем далее "манипулировать" картинкой:

Карточка товара
Предусмотрим ситуацию необходимости смены картинки "на лету" при изменении кода товара:
(см.Потерявшуюся картинку в конце статьи)
Привязка картинки к товару идет по коду товара...
При открытии карточки товара (формы элемента справочника) дадим команду "привязать" картинку товара к текущей открытой карточке - вызовем процедуру чтения картинки из папки с картинками:

Привязываем картинку к товару при открытии карточки товара...
Непосредственно сами процедуры, показывающие картинку:

Процедуры показа картинки
Вот, собственно и все...
Напоследок обмолвимся: в дизайне карточки товара есть кнопарик "IMG" с пиктограмкой дискеты - эта кнопка предназначена для копирования текущей картинки товара в произвольную папку (за это отчечает процедура, повешенная на эту кнопку: _кнСохранитьКартинку()... ) Для чего? а для чего угодо: 1. чтоб было 2. чтоб в загашник отложить 3. чтоб потом прикрепить картинку ручками в аутлуке и отправить письмом назойливому клиенту... 4 и т.д.
Ниже приведен просто ряд картинок, на "живой базе" демонстрирующий описанные выше приемы...

Пример показа картинки
Незначительным усовершенствованием вносится функционал нескольких" альтернативных картинок для одной номенклатурной позиции... Кому будет интересно - заказывайте описание .. ;-)

На финише "урока" отмечу следующее: показ картинок - это один из "велосипедов", через которые проходит 1Сник на своем пути наряду с перенумерацями/сдвижками доков/поиском дубликатов и т.д.
Вышеприведенный материал никоим образом не претендует на универсальность/оригинальность/красоту... Просто маленький "урок-пример" - кому понравилось/пригодилось - хвалит и плюсует, кому не понравилось - тихо идет мимо... ;-)
мелкое развитие описанногй выше идеи - нескольо альтернативных картинок к одному товару...

без картинки

Основная картинка

выбор показываемой картинки

пример

пример

пример

пример

Потерявшаяся картинка

См. также

Работа с интерфейсом Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Создание и использование на формах в среде 1С 7.7 прогрессбара, индикатора, как в 1С 8.Х для контроля над длительными процессами. Реализовано средствами языка программирования 1С 7.7.

1 стартмани

06.06.2024    698    1    user1416274    17    

2

Работа с интерфейсом Логистика, склад и ТМЦ Системный администратор Программист Пользователь Платформа 1С v7.7 1С:Торговля и склад 7.7 Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Решение для разработчика и конечного пользователя для работы с фотографиями номенклатуры: систематизация, хранение, отображение, а также выгрузка на Яндекс-Диск и FTP (кроме версии лайт). Поддерживаются графические форматы: bmp, jpg, gif, tiff, а также png - не поддерживаемый штатными средствами 1С. Выполнено без использования внешних компонент (кроме функции выгрузки на FTP). Поставляется как в виде пустой конфигурации с набором объектов и модулей для работы с фото, так и в виде обновления к 1С:Торговля и склад 7.7. Выполнено в двух версиях: "полная" и "лайт".

5000 руб.

18.10.2022    5845    1    45    

4

Инструментарий разработчика Работа с интерфейсом Программист Платформа 1С v7.7 Абонемент ($m)

Обработка с фрагментами кода для программного использования набора цветов из коллекции WebЦвета 1с версии 8+ в 1с версии 77. Требуется предварительное подключение сторонней библиотеки FormEх. Будет полезно программистам 1с 77, 1с 8. Да и вообще при программировании на любом языке при потребности использовать коллекцию цветов WebЦвета.

1 стартмани

30.03.2022    4958    2    igor7777    4    

6

Работа с интерфейсом Программист Платформа 1С v7.7 Конфигурации 1cv7 Бесплатно (free)

Публикация имеет цель обратить внимание на возможность улучшения интерфейса.

15.12.2021    4835    71    Cерый    13    

7

Работа с интерфейсом Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Простая и удобная внешняя обработка для выбора цвета без применения внешних компонент.

1 стартмани

09.06.2020    7415    4    vap_pig    5    

4

Учет рабочего времени Работа с интерфейсом Программист Бухгалтер Пользователь Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Обработка производственного календаря с возможностью импорта и экспорта xls для 1С 7.7 (7.70.027) без изменения конфигурации.

1 стартмани

18.09.2019    12993    6    Jill    8    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ineoosaki 10.02.08 02:41 Сейчас в теме
Предлагаемое решение изменяет типовую конфу, хотя есть решения которые используют штатные функции современных типовых конфигураций 7.7.
Например здесь находиться одно из таких решений:
http://infostart.ru/forum/read.php?21,16144
3. CheBurator 2712 10.02.08 02:46 Сейчас в теме
(1) Полностью согласен, в своей конфигурации у меня через внешние печатные формы почти все делается...
А данная статья - в первую очередь как пример, "разжевывание" как это сделать...
39. CheBurator 2712 22.02.10 21:06 Сейчас в теме
создаешь печатную форму типа
	Таб = СоздатьОбъект("Таблица");
	Таб.ИсходнаяТаблица("Спецификация");

кладешь в печатную форму в ячейку объект "картинка", растягиваешь под нужный "типовой" размер, на обьекте правой кнопкой мыши, свойства, пишешь в закладке "Текст" так:
ИзображениеЗагрузить(Таб.ТекущийОбъект)
.
в коде пишешь функцию:
Функция ИзображениеЗагрузить(Куда)
	Куда.Загрузить(ТекущийФайлС);
    Куда.РежимРисования(3);
КонецФункции //ИзображениеЗагрузить()

.
перед выводом секции печатной формы определяешь содержание глобальной переменной ТекущийФайлС - должна содержать полный путь к файлу изображения.
57. alexx11-95 14.03.20 11:12 Сейчас в теме
Здравствуйте, уважаемые ! Все сделал как написано в статье, но картинка не открывается. Я ее открываю в отдельном слое справочника при выборе закладки пробовал и при открытии элемента справочника пробовал. Уже и конкретную картинку выставил назначил файлику конкретное имя. Все равно выдает ошибку
Общая файловая ошибка при доступе к D:\ИРИНА_ИВАНОВНА\Базы\Замки_11_03_2020_Кальк\IMAGE.DIR\00002184.png. У мня XP шка. Что делать дальше ? Куда "рыть" ? Подскажите пожалуйста кто может ?
Вот процедурка из статьи и + мой опус
// Показывает на основной закладке картинку товара
Процедура _сруЗагрузитьКартинку(_типКартинки = 1)
Попытка
_сруИмяТекущейКартинки = _глПутьКартинок + Код + _глИерархияТиповКартинок.Получить(""+_типКартинки);
_имТовар.Загрузить(_сруИмяТекущейКартинки);
//Форма._кнСохранитьКартинку.Доступность(1);
Исключение
Если _типКартинки <> 3 Тогда
_типКартинки = _типКартинки + 1;
_сруЗагрузитьКартинку(_типКартинки);
Возврат;
КонецЕсли;
//_сруИмяТекущейКолонки = "";
//_имТовар.Загрузить(_глПутьКартинок + "по.bmp");
Если ФС.СуществуетФайл(_глПутьКартинок + "00002184.png") = 1 Тогда
_имТовар.Загрузить(_глПутьКартинок + "00002184.png"); // Вылетает здесь
КонецЕсли;
//Форма.кнСоранитьКартинку.Доступность(0);
КонецПопытки ;
_имТовар.РежимРисования(3);
КонецПроцедуры

(56)
2. ineoosaki 10.02.08 02:45 Сейчас в теме
Кстати, одна из удачных реализаций привязки изображений к объектам в базе реализована в типовой конфе 1С:Деньги.
4. CheBurator 2712 10.02.08 02:54 Сейчас в теме
(2) а в чем там "фишка" удачной реализации...?
5. ineoosaki 10.02.08 03:21 Сейчас в теме
Насчет "удачной", то я конечно немного загнул. :)
Но, в приниципе, довольно удобно, ИМХО.
6. Abadonna 3968 10.02.08 05:25 Сейчас в теме
Можно сделать всё изложенное, совсем не трогая стандартную конфу
7. CheBurator 2712 10.02.08 12:20 Сейчас в теме
8. O-Planet 6443 11.02.08 19:57 Сейчас в теме
Мде... Если рейтинг этой
9. O-Planet 6443 11.02.08 19:59 Сейчас в теме
Я балдею!!! А почему по табуляции срабатывает "Добавить комментарий!? 0_о
10. O-Planet 6443 11.02.08 20:02 Сейчас в теме
Хотел сказать, что совсем не удивлюсь, если рейтинг этой статьи будет 500 и выше :) А что? Суть и "урок" предельно ясны, так что каждый может почувствовать себя гением:

Имя файла = код товара . bmp

11. O-Planet 6443 11.02.08 20:06 Сейчас в теме
Короче, оскудение нравов - налицо! Зря не назвал "Финт ушами с кодом товаров" ;)
12. logarifm 1122 13.02.08 23:16 Сейчас в теме
Я вообще не понял прикола...
13. logarifm 1122 13.02.08 23:16 Сейчас в теме
а... эта наверна автар от скуки пожестил ...
14. CheBurator 2712 13.02.08 23:27 Сейчас в теме
26. Enya_06 26.02.09 12:02 Сейчас в теме
...все сделала как написано..но что то не получаеся????? папка IMAGE.DIR должна содержать файл no.bmp?????
Вылазиет ошибка
_имТовар.Загрузить(_глПутьКартинок+"_no.bmp");
{Справочник.Номенклатура.Форма.Модуль(14)}: Общая файловая ошибка при доступе к C:\Программы\1С\Базы\Основная\IMAGE.DIR\_no.bmp
27. Ёпрст 1065 26.02.09 12:14 Сейчас в теме
(26) Вам же полный путь до файла картинки написан
"C:\Программы\1С\Базы\Основная\IMAGE.DIR\_no.bmp"

соответственно файло "_no.bmp "
15. Abadonna 3968 14.02.08 04:41 Сейчас в теме
>// ДОБАВЛЕНО НЕТИПОВОЕ
>_сруЗагрузитьКартинку()
_ссуЗагрузитьКартинку() - может по приличнее бы было ;)))))
wellsy; mazahaka-7; JohnyDeath; +3 Ответить
16. JohnyDeath 302 14.02.08 09:31 Сейчас в теме
17. miraj_mv 14.02.08 12:09 Сейчас в теме
а у меня чето не выходит. я не волшебник и только учусь, и не выходит
18. venger 2124 24.02.08 21:09 Сейчас в теме
Что-то подобное реализовано тут:
http://infostart.ru/projects/1528/

А тут в доках:
http://infostart.ru/projects/1527/
19. CheBurator 2712 24.02.08 22:45 Сейчас в теме
2Venger: да, схожие задачи порождают схожие решения, как правило... Целью данной статьи были пошаговые инструкции одного из методов привязки номенклатуры...
20. maljaev 789 06.03.08 17:31 Сейчас в теме
Сhe Burashka, если ты к своему просмотру изображений прикрутишь еще эту вещь http://infostart.ru/projects/1747/ то круче решения для 1С 7.7 не найдешь наверное. :) А вот вопрос о том, как хранить картинки - спорный, т.к. в некоторых случаях (УРБД) картинки лучше хранить в базе, а не в файлах.
21. CheBurator 2712 07.03.08 00:43 Сейчас в теме
2Maljaev: cgc, за ценныую ссылку.. прошла мимо меня
22. dmv78 205 05.04.08 17:11 Сейчас в теме
Обмен при УРБД, обработка FTP - обмена, когда надо обновит каталог картинок! А хранить картинки на форме при наличии 22 000 наименований позиций, база может стать неподъемной!
23. CheBurator 2712 05.04.08 17:48 Сейчас в теме
невтыкнул... это про что? тут как раз картинки нигде в базе не храняться...
24. Alexin 05.01.09 13:42 Сейчас в теме
Все хорошо, _no.bmp отображается, но вот только не понятно как загружать картинку для товара?
25. CheBurator 2712 05.01.09 20:07 Сейчас в теме
(24) "...в качестве имени картинки используется код номенклатуры из справочника товаров."
"...изображения товаров будем хранить в отдельной папочке типа КаталогИБ\IMAGES.DIR\"
28. sergin 12.11.09 13:13 Сейчас в теме
А что надо сделать, чтобы картинки выводились не по Коду, а по Артикулу?

Простите, может это глупый вопрос, но у меня не выходит. С кодом все работает отлично, а с Артикулом нет :cry:
29. novinnik 14.01.10 16:40 Сейчас в теме
Сделал все как написано, скинул пару файлов *.png (00000047.png) в папку IMAGE.DIR но при открытии данных кодов в справочнике номенклатуры вывод картинку _no.bmp
30. CheBurator 2712 15.01.10 01:27 Сейчас в теме
(29) Формат PNG штатно 7.7 не поддерживается, в примере вставлен, так сказать, на будущее. Так что картинки в формате jpg размещать придется... Если очень критично и до зарезу надо в png - то придется допрограммить немного...
novinnik; +1 Ответить
31. novinnik 15.01.10 09:44 Сейчас в теме
разместил в jpg, все равно отображается только пустая картинка (_no.bmp)
32. westDimon 20.01.10 16:11 Сейчас в теме
не могу понять :oops: , виставь плиз весь прогр. модуль.
33. CheBurator 2712 20.01.10 16:57 Сейчас в теме
(32) что именно непонятно?
34. westDimon 20.01.10 17:07 Сейчас в теме
(33) при исп. примера появляются ошибки, виставь плиз весь код
35. CheBurator 2712 20.01.10 17:52 Сейчас в теме
код ошибки? - скорее всего недословно скопипастили...
36. kitaecina 22.02.10 20:41 Сейчас в теме
Не могли бы ответить копипастеру о том, как можно вывести в печати прайс-листа эти картинки?
37. CheBurator 2712 22.02.10 20:44 Сейчас в теме
(36) как обычно.. вставляешь объект "картинка" и при выводе назначаешь на объект текущую картинку.. что не получается?
38. kitaecina 22.02.10 20:55 Сейчас в теме
Я слабый специалист, как вставить картинку в печатную форму, чтобы её вывело на печать? нельзя ли поподробнее ...
P.S. Ваш метод понравился и желание большое настроить для использования у себя, хотелось бы самому...
40. kitaecina 22.02.10 21:28 Сейчас в теме
Забыл уточнить, применяю для ТиС 960
Так вот вопрос и возникает как определить перед печатью путь к файлу картинки,

ТекущийФайлС= _глПутьКартинок+ТекЭлем.Код+_глИерархияТиповКартинок.Получить(""+_ТипКартинки<<?>>);
{}: Переменная не определена (_ТипКартинки)
При проверке модуля обнаружены синтаксические ошибки!

Понимаю что неправильно делаю что-то, а не могу понять что...
41. CheBurator 2712 22.02.10 21:39 Сейчас в теме
(40) тебе система написала: переменная не определена. ищи
42. kitaecina 23.02.10 08:55 Сейчас в теме
Спасибо, все получилось...
43. Yuvilon 06.06.10 12:16 Сейчас в теме
Спасибо, тема супер, оч помогла!!!
44. Yuvilon 06.06.10 13:10 Сейчас в теме
Что-то не соображаю, я новечек сдесь, и не представляю как описть эту функцию для отображения в подборе!! Оч буду рад в Помощи!!
45. sanich67 17.12.10 01:50 Сейчас в теме
Всё сделал, получилось очень красиво
вот только сохраненный прайс с картинками при открытии картинку искажает
46. sanich67 17.12.10 01:51 Сейчас в теме
Yuvilon,
ты сделал то что хотел?
47. pinachet 19.07.11 09:15 Сейчас в теме
ребят, сделал все как на картинках но почему то ничегоне получилось( пишет одни ошибки.
48. asverus 21.11.11 01:13 Сейчас в теме
Инструкция работает реально, провозился весь день... были непонятные моменты, т.к. я чайник в 1с'е (а хочется, что бы удобно было работать и мозги на всякую ерунду не парить, ни себе - ни другим).

Прошу продолжения банкета на предмет прикрепления нескольких изображений.

P.S. - это вообще вторая инструкция, которая запустилась и заработала; и нормально заработала только эта... возможно, платные модули, но честно говоря - уже натыкался на то, что и за деньги получаешь дохлого кота в мешке и ничего не вернешь. вставил в ТиС 7.7
Для программера и знатоков - проблем конечно нет, но для средних пользователей с "интуицией" вполне; для новичков - конечно непонятно будет что куда вставлять.
Спасибо.
49. ideapromotion 10.01.13 16:05 Сейчас в теме
Как скачать можно это решение?
51. piloturs 9 10.03.13 21:20 Сейчас в теме
(49) меню файл броузера, сохранить как: "[ОБУЧАЛОВКА] Каким макаром к номенклатуре привязать картинку.htm"
50. adm1nb3k 10.03.13 20:19 Сейчас в теме
Вопрос. Тут описано как сохранить фото. А есть ли обратный способ, то есть загрузить в каталог IMAGE.DIR? Спасибо.
52. CheBurator 2712 10.03.13 21:35 Сейчас в теме
(50) есть. Смотри мою обраьотку распихивания картинок по номенклатуре.
http://infostart.ru/public/15239/
53. adm1nb3k 10.03.13 22:35 Сейчас в теме
А описать всего одну процедуру в публику, религия не позволяет?!..
54. CheBurator 2712 11.03.13 03:22 Сейчас в теме
(53) видимо, не позволяет...
55. etmarket 910 14.11.14 00:30 Сейчас в теме
Нравится самобытность автора. Я не намекаю на неграммотность. Сам люблю оригинальные решения. Данный топик и приведенный код обилует подобными решениями. Подчеркнул для себя много полезного. Спасибо!
56. CheBurator 2712 14.11.14 02:02 Сейчас в теме
(55) ну хоть кому-то еще 7.7 пригодилась...
у меня этих всяких форм/обработок по манипуляции с картинками - вагон и тележка.
есть даже подбор в документ поступления не по списку товаров, а по картинкам...
Иваныч; Polievkt; +2 Ответить
58. Иваныч 23 14.03.20 17:15 Сейчас в теме
Che, подскажи пожалуйста, что может быть причиной: иногда выдается сообщение "ошибка общего доступа к файлу .jpg"
У меня привязка картинок к коду номенклатуры. И когда эта ошибка возникает, картинку не видно, а сообщение в окошко вываливается.
61. CheBurator 2712 14.03.20 22:04 Сейчас в теме
(58) Смотрите тщательно глубоко права доступа на файл, папки с файлами картинок, папки с каталогом и подкаталогами базы, права на темповые папки, используемые 1С, права на папки пользователя 1С.
.
Попробуйте картинку jpg перконвертировать в bmp - положите бпм в ту же папку что и джпег. проверьте - будет ли загружаться бмп.
.
попробуйте открыть джпег в каком-нить редакторе и пересохранить чуть исправив параметры картинки - будет ли загружаться пересохраненная джпег
Иваныч; +1 Ответить
64. Иваныч 23 13.05.20 12:32 Сейчас в теме
(61)Добрый день! Вот период отдыха навел на мысль: Попробовал сделать замену картинки на другую и эта ошибка
({Справочник.Номенклатура.ФормаСписка.ФормаСписка.Модуль(873)}: Общая файловая ошибка при доступе к D:\Рабочая с 15 января 2015 года\\Pic\13760.jpg Пикча.Загрузить(ИмяФ);[/B]) исчезла. Вот пробно изменил 3 картинки, ошибку не выбрасывает. Хотел попутно спросить: как вариант можно сделать, чтоб читала форматы и .jpeg и .bmp? Часто копирую картинки, а они с разными расширениями. Переименовывать нужно
65. CheBurator 2712 13.05.20 23:31 Сейчас в теме
(64) Модифицировать блок чтения файла для показа.
по типу:

Если ЕстьФайлДжпег Тогда ПоказатьФайлДжпег;
Иначе
   Если ЕстьФайлБМП Тогда ПоказатьФайлБМП;
Иваныч; +1 Ответить
66. Иваныч 23 14.05.20 08:28 Сейчас в теме
(65)Спасибо, окно будет - попробую
59. alexx11-95 14.03.20 21:01 Сейчас в теме
Высылаю скриншоты. У меня тоже привязка к коду. Все сработало. Смотри в прикрепленном файлике В дебри лезть не пришлось. Правда .jpg не проверял. Проверил .bmp Надо будет проверить и .jpg Пишите, если что не понятно. С уважением Ник. Алекс.
Прикрепленные файлы:
Ошибка вывода картинки.doc
Иваныч; +1 Ответить
60. alexx11-95 14.03.20 22:02 Сейчас в теме
Высылаю проверку по .jpg Все в прикрепленном файлике
Прикрепленные файлы:
Ошибка вывода картинки1.doc
Иваныч; +1 Ответить
62. CheBurator 2712 14.03.20 22:04 Сейчас в теме
(60) PNG штатно 1Ской не поддерживается
63. alexx11-95 15.03.20 01:28 Сейчас в теме
Спасибо за советы ! Все проверю. С уважением Ник. Алекс
67. shemchik 05.11.20 14:48 Сейчас в теме
(56) Добрый день! Очень очень нужна такая фишка как подбор в документ поступления не по списку товаров, а по картинкам. Можете помочь с этим?
68. CheBurator 2712 05.11.20 20:27 Сейчас в теме
(67) подбор в поступление по картинкам.
есть такое. видео смотреть будем? (делал давно,не знаю работает или нет, должно работать)се
написал в личку.
69. CheBurator 2712 05.11.20 20:35 Сейчас в теме
(67) проверил. в целом - работает.
70. CheBurator 2712 05.11.20 20:36 Сейчас в теме
делал давно, лет 10 назад. красотой не блежщет, бо делал как прототип
Оставьте свое сообщение