В подсистему Битрикс для 1С добавить Картинки и Файлы

Рейтинг: 0.5752  
Внедрено
Предложил Пользователь 289658 10.08.2015 15:49:24

В подсистему Битрикс для 1С добавить Картинки и Файлы

В подсистему Битрикс для 1С добавить Картинки и Файлы.

Путем добавления  справочника ХарактеристикиНоменклатурыПрисоединенныеФайлы и регистра сведений ПрисоединенныеФайлыХарактеристики.

Аналогичные типовому функционалу для хранения картинок и файлов. После чего переписать обмен с сайтом добавив в процедуру СформироватьВременныеТаблицыПоИнформацииОТоварахПакета
в ЗапросПоКартинкамИФайлам запрос именно к этим метаданным.

для себя именно так решаю задачу. но проблема в обновлениях модулей и при следующем обновление модуль обмена надо обновлять руками.
Рейтинг: 0  
Ответил 21.08.2015 13:06:54
Здравствуйте Влад.

Интересная идея, попробуем реализовать в ближайшее время, следите за выпуском обновлений нашего модуля 1С на сайте: http://1c.1c-bitrix.ru/ecommerce/download.php

Спасибо за идею!

Рейтинг: 0  
Пользователь 289658 21.08.2015 13:45:06
Да забыл указать что необходимо сделать еще интерфейс для ввода картинок, т.к. в карточке характеристики она отображаться не будет. Если будет потребность могу выслать обработку добавления картинок на mail.
Рейтинг: 0  
Пользователь 289658 10.10.2015 12:41:40
Спасибо за функционал очень удобно даже не ожидал что реализуете, польщен.

Но есть пожелание в обработку внесения фото можете добавить функции drag and drop события перетаскивания и сделать групповое добавление фотографии, а то для одной характеристики повесить несколько фотографии становится несколько сложновато.

Еще раз спасибо.
Рейтинг: 0  
Пользователь 289658 10.10.2015 12:41:54
Да немного можно улучшить ОбщуюФорму ФормаУстановкиКартинокИФайловХарактеристикамНоменклатуры

для реквизита
ПрисоединенныеФайлыХарактеристик включить свойство РазрешитьПеретаскивание

и добавить два события ПроверкаПеретаскивания и Перетаскивание

И добавить обработчики событии в модульформы



&НаКлиенте
Процедура ПрисоединенныеФайлыХарактеристикПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле)

СтандартнаяОбработка = Ложь;

КонецПроцедуры

&НаКлиенте
Процедура ПрисоединенныеФайлыХарактеристикПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле)

СтандартнаяОбработка = Ложь;

МассивИменФайлов = Новый Массив;

Если ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("Файл";);
  И ПараметрыПеретаскивания.Значение.ЭтоФайл() = Истина Тогда
 
лИмяФайла = ПараметрыПеретаскивания.Значение.ПолноеИмя;

лФайл = Новый Файл(лИмяФайла);

ПараметрыФайла = Новый Структура;
ПараметрыФайла.Вставить("Номенклатура" , Элементы.Товары.ТекущиеДанные.Ссылка);
ПараметрыФайла.Вставить("ХарактеристикаНоменклатуры", Элементы.ХарактеристикиНоменклатуры.ТекущиеДанные.Ссылка);
ПараметрыФайла.Вставить("Наименование" , лФайл.ИмяБезРасширения);
ПараметрыФайла.Вставить("ПутьКФайлу" , лИмяФайла);
ПараметрыФайла.Вставить("Расширение" , лФайл.Расширение);
ПараметрыФайла.Вставить("Размер" , лФайл.Размер());

лПрисоединенныйФайл = ПолучитьНовыйПрисоединенныйФайл(ПараметрыФайла);


ПараметрыФайла = Новый Структура;
ПараметрыФайла.Вставить("ПрисоединенныйФайл", лПрисоединенныйФайл);
ПараметрыФайла.Вставить("ИмяФайла" , лИмяФайла);

ЗаписатьПрисоединенныйФайл(ПараметрыФайла);

ИначеЕсли ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("Массив";) Тогда

Если ПараметрыПеретаскивания.Значение.Количество() >= 1
  И ТипЗнч(ПараметрыПеретаскивания.Значение[0]) = Тип("Файл";) Тогда

Для каждого Значение Из ПараметрыПеретаскивания.Значение Цикл

Если ТипЗнч(Значение) = Тип("Файл";) И Значение.ЭтоФайл() Тогда

лИмяФайла = Значение.ПолноеИмя;

лФайл = Новый Файл(лИмяФайла);

ПараметрыФайла = Новый Структура;
ПараметрыФайла.Вставить("Номенклатура" , Элементы.Товары.ТекущиеДанные.Ссылка);
ПараметрыФайла.Вставить("ХарактеристикаНоменклатуры", Элементы.ХарактеристикиНоменклатуры.ТекущиеДанные.Ссылка);
ПараметрыФайла.Вставить("Наименование" , лФайл.ИмяБезРасширения);
ПараметрыФайла.Вставить("ПутьКФайлу" , лИмяФайла);
ПараметрыФайла.Вставить("Расширение" , лФайл.Расширение);
ПараметрыФайла.Вставить("Размер" , лФайл.Размер());

лПрисоединенныйФайл = ПолучитьНовыйПрисоединенныйФайл(ПараметрыФайла);


ПараметрыФайла = Новый Структура;
ПараметрыФайла.Вставить("ПрисоединенныйФайл", лПрисоединенныйФайл);
ПараметрыФайла.Вставить("ИмяФайла" , лИмяФайла);

ЗаписатьПрисоединенныйФайл(ПараметрыФайла);

КонецЕсли;
КонецЦикла;
КонецЕсли;

КонецЕсли;

Если МассивИменФайлов.Количество() > 0 Тогда

ПрисоединенныеФайлыСлужебныйКлиент.ДобавитьФайлыПеретаскиванием(
Параметры.ВладелецФайла, УникальныйИдентификатор, МассивИменФайлов);
КонецЕсли;

ОбновитьИнформациюОПрикрепленныхФайлах();
ОбновитьКартинку();

КонецПроцедуры