Итак, с чего начать. Естественно с 1С Предприятие|Документация|Описание встроенного языка 7.7. Глава 35 Работа с картинками. Те, кому разжёвывать не нужно, могут обратиться к встроенной справке - Картинка. Но это теория. Как говорится, лучше раз увидеть, чем сто раз прочитать.
Начнем с постановки задач.
- Требуется прикрепить картинки к элементам справочника «Номенклатура», а так же видеть картинку текущего справочника при перемещении по списку номенклатуры.
- Для первоначального прикрепления картинок к элементам справочника номенклатура, а так же для редактирования требуется менеджер картинок.
- Требуется показать картинки в отчете или печатной форме, например в прайсе.
- Требуется переименовывать картинки при изменении кодов и (или) атрибутов номенклатуры.
- Требуется выгружать картинки на сайт.
Прежде всего, требуется выбрать способ связи картинки с элементом справочника. Можно ввести дополнительный реквизит справочника типа строка, в котором задавать путь в картинке. Видимо такой подход, надежно связывает элемент с картинкой, но необходимо менять конфигурацию. Поэтому для связи можно использовать определенные договоренности. Например, считать, что файлы картинок находятся в подкаталоге ИБ, например, с именем «Фото», а имя файла картинки определять как код товара, полный код товара, штрих-код, штрих-код с кодом ну и так далее. Для простоты будем в дальнейшем использовать связь через код элемента.
Пункт 1. Здесь ничего сложного. Вот что должно находиться в процедуре ПриОткрытии() для элемента справочника.
Процедура ПриОткрытии()
    ПустаяКартинка=СоздатьОбъект("Картинка");
    КаталогФотографий = КаталогИБ() + "Фото\";
    ФайлФото = КаталогФотографий + СокрЛП(Строка(ТекущийЭлемент().Код))+".*";
    Если ФС.СуществуетФайл(ФайлФото) = 1 Тогда
        Фото.Загрузить(КаталогФотографий+ФС.НайтиПервыйФайл(ФайлФото));
        Фото.РежимРисования(3);
        Форма.Фото.Видимость(1);
    Иначе
        Фото.УстановитьКартинку(ПустаяКартинка);
    КонецЕсли;  
КонецПроцедуры
Аналогичный код д.б. и в форме списка. Конкретная реализация – в прилагаемой базе данных Демобаза.zip.
Пункт 2. Можно использовать приведенную выше обработку //infostart.ru/public/15239/. Кроме того, к статье прикреплены два файла МенеджерКартинок1, представляющий собой переработанную под прикрепленную базу данных приведенную выше обработку, и МенеджерКартинок2 – другая обработка, служащая тем же целям.
Пункт 3. Тоже ничего сложного. Достаточно создать в таблице колонку, в которой разместить рисунок и в свойствах которого будет указано ВывестиРисунок(Таб.ТекущийОбъект, Путь).
Код процедуры:
Процедура ВывестиРисунок(ОбъектКартинка, Путь)
    Картинка = СоздатьОбъект("Картинка");
    Картинка.Загрузить(Путь);
    ОбъектКартинка.РежимРисования(3);
    ОбъектКартинка.УстановитьКартинку(Картинка);
КонецПроцедуры 
Пример прайса приведен в файле ПрайсЛист.
Пункт 4. Готовой разработки не привожу, т.к. причины и алгоритмы перенумерации разные. Но ничего сложного здесь нет. Нужно лишь в том месте программы, где вы изменяете код элемента номенклатуры, добавить и переименование принадлежащей этому элементу картинки(не забудьте, что в таких программах код меняется три раза). К примеру, код перенумерации имеет вид
Если ПолучитьИД(сн.ТекущийЭлемент())<>ПолучитьИД(сп.ТекущийЭлемент()) Тогда  
    кс = сн.Код;
    сп.Код = МаксКод;
    Попытка
        сп.Записать();
    Исключение
        Сообщить("Элемент с максимально допустимым кодом существует");Возврат;
    КонецПопытки;
    сн.Код = нк;
    Попытка
        сн.Записать();
    Исключение
        Сообщить("Неудачная попытка записи элемента с кодом "+нк+" "+ОписаниеОшибки());Возврат;
    КонецПопытки;
    сп.Код = кс;
    Попытка
        сп.Записать();
    Исключение
        Сообщить("Неудачная попытка записи элемента с кодом "+кс+" "+ОписаниеОшибки());Возврат;
    КонецПопытки;  
КонецЕсли;
Достаточно вставить следующий код:
СтарыйКод = сн.код;
сн.Код = НовыйКод;
Попытка
    сн.Записать();
    КаталогФотографий = КаталогИБ() + "Фото\";
    ФайлСтарогоФото = КаталогФотографий + СокрЛП(Строка(СтарыйКод))+".jpg";
    ФайлНовогоФото = КаталогФотографий + СокрЛП(сн.код))+".jpg";
    Если ФС.СуществуетФайл(ФайлСтарогоФото) = 1 Тогда
        ФС.ПереименоватьФайл(ФайлСтарогоФото, ФайлНовогоФото,1);
    КонецЕсли;
Исключение
    Сообщить("Неудачная попытка записи элемента с кодом "+кс+" "+ОписаниеОшибки());Возврат;
КонецПопытки;  
Пункт 5. Работа с интернет магазином. Это конечно тема для отдельной статьи, поэтому дам только ссылку на первую из трех статей http://www.ibm.com/developerworks/ru/library/os-1C_OpenCart_01/ . Ссылки на остальные две находятся внутри первой. Здесь подробно рассмотрены все этапы обмена с сайтом, начиная с планирования и заканчивая конкретной реализацией.
Вступайте в нашу телеграмм-группу Инфостарт
 
                                 
                                 
                                 
                                 
                                     
                                     
                                     
                                     
                                     
                                    