Популярно, доступно, полезно

Картинки номенклатуры 1с 7.7


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

1. Папка для хранения картинок номенклатуры 1с

Создаю папку в директории с базой, называю «image_dir». Сейчас эта папка выглядит вот так:
картинки номенклатуры
Для нашей базы я сделала возможность добавления двух картинок к товарной позиции, потому что часто бывает, что одной картинки мало. Вы можете сделать для себя хоть три, сколько угодно.

2. Отображение картинки в 1с.

При просмотре справочника номенклатуры в списке или при ее выборе, 1с смотрит в соответствующую папку, ищет картинку номенклатуры с текущим кодом товара. Если находит ее — то соответственно, отображает на форме.
На формах списка и выбора номенклатуры добавляем 2 элемента диалога типа «Картинка» с идентификатором Фото и Фото2. Располагайте как вам удобно, у меня это выглядит примерно так:
картинки для номенклатуры
В модуле соответствующих форм в процедуре «СформироватьИнформационнуюСтроку» в конце добавляем следующий код:

ПустаяКартинка=СоздатьОбъект("Картинка");
// указываем наш каталог с картинками
КаталогФотографий = КаталогИБ() + "image_dir\";
// Ищем картинку
ФайлФото1 = КаталогФотографий + СокрЛП(Строка(ТекущийЭлемент().Код))+".jpg";
// Если нашли картинку с нужным именем
Если ФС.СуществуетФайл(ФайлФото1) = 1 Тогда
// отображаем
Фото.Загрузить(КаталогФотографий+ФС.НайтиПервыйФайл(ФайлФото1));
Фото.РежимРисования(3);
Форма.Фото.Видимость(1);
Иначе
// не нашли - очищаем, вдруг там была отрисована предыдущая картинка
Фото.УстановитьКартинку(ПустаяКартинка);
КонецЕсли;

Аналогичным будет код для отображения Фото2 или любого количества картинок номенклатуры, которое необходимо вам. Меняем только имя картинки, которую мы ищем, например:

ФайлФото2 = КаталогФотографий + СокрЛП(Строка(ТекущийЭлемент().Код))+"-2.jpg";

Проверяем:

3. Синхронизация картинок между распределенными ИБ.

Мы не храним никакой информации о картинках в базе, поэтому, если имеем распределенную иб, нужен какой то механизм синхронизации этих картинок между разными базами. Тут еще проще — устанавливаем Яндекс.Диск (теоритически, можно любое файловое облачное хранилище, но именно Яндекс дал указать конкретную папку для синхронизации). Вот и все!

Добавить комментарий

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