Рубрика: 1C
Разработки на платформе 1С
Жизнь замечательных грибов
Разработки на платформе 1С
Данная обработка может пригодится тем, кому необходимо в справочнике номенклатуры массово поменять реквизит «Вид номенклатуры». Мне например это понадобилось, чтобы в разделе «Дополнительно», для каждого вида номенклатуры были заданы свои характеристики.
Код:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
&НаКлиенте Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора) ОбработкаВыбораПодборНаСервере(ВыбранноеЗначение); КонецПроцедуры &НаКлиенте Процедура ПодборНоменклатуры(Команда) ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("РежимПодбораБезСуммовыхПараметров", Истина); ПараметрыФормы.Вставить("Дата", ТекущаяДата()); ОткрытьФорму("Обработка.ПодборТоваров.Форма", ПараметрыФормы, ЭтаФорма, УникальныйИдентификатор); КонецПроцедуры &НаСервере Функция ОбработкаВыбораПодборНаСервере(ВыбранноеЗначение) ТаблицаТоваров = ПолучитьИзВременногоХранилища(ВыбранноеЗначение.АдресТоваровВХранилище); для каждого стр из ТаблицаТоваров цикл сс=объект.СписокНоменклатуры.Добавить(); сс.номенклатура=стр.номенклатура; конеццикла; КонецФункции &НаСервере Процедура изменитьвид(ном,вид) об=ном.ПолучитьОбъект(); об.ВидНоменклатуры=вид; об.Записать(); КонецПроцедуры &НаКлиенте Процедура ИзменитьВидНоменклатуры(Команда) если объект.ВидНоменклатуры=объект.ВидНоменклатуры.Пустая() тогда сообщить("Не выбран вид номенклатуры!"); иначе для каждого стр из объект.СписокНоменклатуры цикл изменитьвид(стр.номенклатура,объект.ВидНоменклатуры); конеццикла; сообщить("Готово!"); конецесли; КонецПроцедуры |
Задача: загрузить в справочник номенклатуры изображения, ссылки на которые находятся в файле csv.
Решение: пишем универсальный загрузчик изображений из csv. Изображения могут располагаться как в папке на жестком диске, так и в сети.
1) Выбираем разделитель csv, стартовую строку (например первую строчку — обычно это названия колонок, нужно пропустить)
krana-ot-2018-05-16-17-02-27.png»>
krana-ot-2018-05-16-17-04-37.png»>
здесь
Присоединенные к номенклатуре файлы можно выгрузить например так:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
&НаСервереБезКонтекста Процедура ПолучитьФайлыНаСервере() ном=Справочники.Номенклатура.НайтиПоКоду("1534 "); сообщить(ном.ФайлКартинки); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | НоменклатураПрисоединенныеФайлы.Ссылка КАК Ссылка, | НоменклатураПрисоединенныеФайлы.ПутьКФайлу КАК ПутьКФайлу, | НоменклатураПрисоединенныеФайлы.ТипХраненияФайла КАК ТипХраненияФайла, | НоменклатураПрисоединенныеФайлы.Том КАК Том, | НоменклатураПрисоединенныеФайлы.ФайлХранилище КАК ФайлХранилище |ИЗ | Справочник.НоменклатураПрисоединенныеФайлы КАК НоменклатураПрисоединенныеФайлы |ГДЕ | НоменклатураПрисоединенныеФайлы.ВладелецФайла.Ссылка = &ном" ; Запрос.УстановитьПараметр("ном", ном); файлы=Запрос.Выполнить().Выбрать(); n=0; Пока файлы.Следующий() Цикл сообщить(файлы.ПутьКФайлу); сообщить(файлы.ТипХраненияФайла); сообщить(файлы.Том); сообщить(файлы.ФайлХранилище); картинка=ПрисоединенныеФайлы.ПолучитьДвоичныеДанныеФайла(файлы.Ссылка); картинка.Записать("c:\temp\"+n+".jpg"); n=n+1; конеццикла; КонецПроцедуры &НаКлиенте Процедура ПолучитьФайлыКлиент(Команда) ПолучитьФайлыНаСервере(); КонецПроцедуры |