Архив метки: номенклатура

Загрузка изображений в справочник номенклатуры из csv файла Розница 2.2

Задача: загрузить в справочник номенклатуры изображения, ссылки на которые находятся в файле csv.

Решение: пишем универсальный загрузчик изображений из csv. Изображения могут располагаться как в папке на жестком диске, так и в сети.

1) Выбираем разделитель  csv, стартовую строку (например первую строчку — обычно это названия колонок, нужно пропустить)

2) Выбираем колонки, где что находится в файле csv. Соответствие номенклатуры базы и файлу  идет по артикулу. Предусмотрена загрузка до 4-х картинок за один проход, которые располагаются в колонках «Ссылка 1..4». Если в колонке значение-1,  значит файла картинки нет в этой колонке.

3) Нажимаем кнопку «Загрузить CSV» и выбираем файл. После чего он будет загружен в табличную часть

Если  соответствие артикула и номенклатуры найдено в базе — будет заполнена колонка «Номенклатура».

4) Нажимаем кнопку «Прикрепить изображение». Обработка скачает картинку, сохранит его в базе или на томах, и прикрепит к номенклатуре:

Скачать обработку можно здесь

Читать далее Загрузка изображений в справочник номенклатуры из csv файла Розница 2.2

Программное присоединение изображения к номенклатуре. 1С Розница 2.2

Этот код присоединяет картинку к номенклатуре, и делает её «по умолчанию».

	ИмяВременногоФайла="c:\temp\minion.jpg";                        
    ном=Справочники.Номенклатура.НайтиПоКоду("1536       ");            
                                    
	ПараметрыФайла=Новый Структура;
	ПараметрыФайла.Вставить("Автор",Пользователи.НайтиПоИмени("Администратор"));
	ПараметрыФайла.Вставить("ВладелецФайлов",ном.Ссылка);
	ПараметрыФайла.Вставить("ИмяБезРасширения","бла-бла-3");
	ПараметрыФайла.Вставить("РасширениеБезТочки","jpg");
	ПараметрыФайла.Вставить("ВремяИзмененияУниверсальное",ТекущаяУниверсальнаяДата());	
		
	ДвоичДанные = Новый ДвоичныеДанные(ИмяВременногоФайла);
	АдресВременногоХранилищаФайла = ПоместитьВоВременноеХранилище(ДвоичДанные);
	
	фс=ПрисоединенныеФайлы.ДобавитьПрисоединенныйФайл(ПараметрыФайла,АдресВременногоХранилищаФайла,,,);
	
	об=ном.ПолучитьОбъект();
	об.ФайлКартинки= фс;
	об.Записать();

1С Розница 2.2, сохранить присоединенные к номенклатуре картинки

Присоединенные к номенклатуре файлы можно выгрузить например так:

&НаСервереБезКонтекста
Процедура ПолучитьФайлыНаСервере()
	ном=Справочники.Номенклатура.НайтиПоКоду("1534       ");
	сообщить(ном.ФайлКартинки);
	Запрос = Новый Запрос;
		Запрос.Текст = 		
"ВЫБРАТЬ
|	НоменклатураПрисоединенныеФайлы.Ссылка КАК Ссылка,
|	НоменклатураПрисоединенныеФайлы.ПутьКФайлу КАК ПутьКФайлу,
|	НоменклатураПрисоединенныеФайлы.ТипХраненияФайла КАК ТипХраненияФайла,
|	НоменклатураПрисоединенныеФайлы.Том КАК Том,
|	НоменклатураПрисоединенныеФайлы.ФайлХранилище КАК ФайлХранилище
|ИЗ
|	Справочник.НоменклатураПрисоединенныеФайлы КАК НоменклатураПрисоединенныеФайлы
|ГДЕ
|	НоменклатураПрисоединенныеФайлы.ВладелецФайла.Ссылка = &ном"	;
		
	 Запрос.УстановитьПараметр("ном", ном);					
	 файлы=Запрос.Выполнить().Выбрать();			
	 n=0;
	 Пока файлы.Следующий() Цикл		
		 сообщить(файлы.ПутьКФайлу);
		 сообщить(файлы.ТипХраненияФайла);
		 сообщить(файлы.Том);
		 сообщить(файлы.ФайлХранилище);
		 картинка=ПрисоединенныеФайлы.ПолучитьДвоичныеДанныеФайла(файлы.Ссылка);
		 картинка.Записать("c:\temp\"+n+".jpg");
		 n=n+1;
	 конеццикла;	 
КонецПроцедуры

&НаКлиенте
Процедура ПолучитьФайлыКлиент(Команда)
	ПолучитьФайлыНаСервере();
КонецПроцедуры