Был не прав , правильно обновил модуль обмена с сайтом и все заработало
09.02.2011 12:42:13
Здравствуйте. Нужно выгрузить позицию товара на сайт так чтобы от отображался на сайте в разных группах. Добавить необходимые группы можно во вкладке "Свойства" элемента справочника "Номенклатура" . Скажите как настроить "ОбменССайтом",так что один товар на сайте отображался в разных группах. Заранее спасибо.
|
|
|
20.01.2011 12:09:42
У меня 1С:Предприятие 8.1 (8.1.15.14) , "Управление торговлей", редакция 10.3 (10.3.10.4). Возможности выгрузки дополнительных картинок не было. Когда ставил галочку выгружать картинки в обмене с web сайтом выгружалось только основное изображение
Сергей Кузнецов: У меня вроде нет таких проблем. Стоит УТ 10.3.12.3 и модуль к ней. В настройках модуля есть две галочки "Выгружать картинки" и "Выгружать файлы", ну с файлами, это как вым будет удобно, а вот изображения галка должна стоять, но раз у Вас грузится основное, значит все должно быть в норме. По крайней мере у меня так. А у вас выгружаются дополнительные изображения ? Возможно у меня проблема в более старой версии УТ(10.3.10.4) |
|
|
19.01.2011 16:50:05
Функция ВыгрузитьДопКартинки:
Функция ВыгрузитьДопКартинки(Номенклатура, КаталогНаДиске, Постфикс) СтруктураРезультата = Новый Структура; СтруктураРезультата.Вставить("Адрес", ""); СтруктураРезультата.Вставить("Размер", "0"); Картинка = Номенклатура.Хранилище.Получить(); Если ТипЗнч(Картинка) <> Тип("Картинка") Тогда Возврат СтруктураРезультата; КонецЕсли; ФорматКартинкиРазрешен = Истина; РасширениеФайлаКартинки = ""; #Если Клиент Тогда ФорматКартинкиОбъекта = Картинка.Формат(); Если ФорматКартинкиОбъекта = ФорматКартинки.НеизвестныйФормат Тогда ФорматКартинкиРазрешен = Ложь; Иначе Если НЕ (ФорматКартинкиОбъекта = ФорматКартинки.GIF ИЛИ ФорматКартинкиОбъекта = ФорматКартинки.JPEG ИЛИ ФорматКартинкиОбъекта = ФорматКартинки.PNG) Тогда Попытка ФорматКартинкиОбъекта = Картинка.Преобразовать(ФорматКартинки.JPEG); Исключение СообщитьОбИсключительнойОшибке(Истина, "Не удалось преобразовать формат картинки. Номенклатура: " + Номенклатура + ". Преобразование из " + Строка(ФорматКартинкиОбъекта) + " в JPEG"); Возврат СтруктураРезультата; КонецПопытки; КонецЕсли; РасширениеФайлаКартинки = Строка(ФорматКартинкиОбъекта); КонецЕсли; #Иначе // СЕРВЕР // На сервере проверка формата файла по сигнатуре файла: // JPEG: FF D8 xx xx xx xx 4A 46 49 46 00 // GIF: 47 49 46 // PNG: 89 50 4e 47 0d 0a 1a 0a // // -1 - значит байт игнорируется. // Код должен быть не более 127(dec) для совместимости Unicode-ASCII СигнатураJPEG = Новый Массив; СигнатураJPEG.Добавить(-1); СигнатураJPEG.Добавить(-1); СигнатураJPEG.Добавить(-1); СигнатураJPEG.Добавить(-1); СигнатураJPEG.Добавить(-1); СигнатураJPEG.Добавить(-1); СигнатураJPEG.Добавить(74); СигнатураJPEG.Добавить(70); СигнатураJPEG.Добавить(73); СигнатураJPEG.Добавить(70); СигнатураJPEG.Добавить(0); СигнатураGIF = Новый Массив; СигнатураGIF.Добавить(71); СигнатураGIF.Добавить(73); СигнатураGIF.Добавить(70); СигнатураPNG = Новый Массив; СигнатураPNG.Добавить(-1); СигнатураPNG.Добавить(80); СигнатураPNG.Добавить(78); СигнатураPNG.Добавить(71); СигнатураPNG.Добавить(13); СигнатураPNG.Добавить(10); СигнатураPNG.Добавить(26); СигнатураPNG.Добавить(10); РазрешенныеСигнатуры = Новый Соответствие; РазрешенныеСигнатуры.Вставить("GIF" , СигнатураGIF); РазрешенныеСигнатуры.Вставить("JPEG", СигнатураJPEG); РазрешенныеСигнатуры.Вставить("PNG" , СигнатураPNG); МаксДлинаСигнатуры = 0; Для каждого Сигнатура Из РазрешенныеСигнатуры Цикл ДлинаСигнатуры = Сигнатура.Значение.Количество(); Если МаксДлинаСигнатуры < ДлинаСигнатуры Тогда МаксДлинаСигнатуры = ДлинаСигнатуры; КонецЕсли; КонецЦикла; ИмяВремФайла = ПолучитьИмяВременногоФайла(); Попытка Картинка.Записать(ИмяВремФайла); Исключение СообщитьОбИсключительнойОшибке(Истина, "Не удалось записать файл " + ИмяВремФайла + " для определения формата картинки. Номенклатура: " + Номенклатура); Возврат СтруктураРезультата; КонецПопытки; ТекстФайлКартинки = Новый ЧтениеТекста; Попытка ТекстФайлКартинки.Открыть(ИмяВремФайла,,,Символы.ПС); Исключение СообщитьОбИсключительнойОшибке(Истина, "Не удалось прочитать файл " + ИмяВремФайла + " для определения формата картинки. Номенклатура: " + Номенклатура); Возврат СтруктураРезультата; КонецПопытки; ТекстКартинки = ТекстФайлКартинки.Прочитать(МаксДлинаСигнатуры); ТекстФайлКартинки.Закрыть(); Если ТекстКартинки = "" Тогда СообщитьПользователю("Не удалось получить сигнатуру файла картинки. Номенклатура: " + Номенклатура, Истина, СтатусСообщения.Информация); Возврат СтруктураРезультата; КонецЕсли; ФорматКартинкиРазрешен = Ложь; Для каждого Сигнатура Из РазрешенныеСигнатуры Цикл ДлинаСигнатуры = Сигнатура.Значение.Количество(); СигнатураРаспознана = Истина; Для Сч = 1 По ДлинаСигнатуры Цикл ТекБайтСигнатуры = Сигнатура.Значение[Сч - 1]; Если ТекБайтСигнатуры = -1 Тогда Продолжить; КонецЕсли; ТекБайтФайла = КодСимвола(ТекстКартинки, Сч); Если НЕ ТекБайтСигнатуры = ТекБайтФайла Тогда СигнатураРаспознана = Ложь; Прервать; КонецЕсли; КонецЦикла; Если СигнатураРаспознана Тогда ФорматКартинкиРазрешен = Истина; РасширениеФайлаКартинки = Сигнатура.Ключ; Прервать; КонецЕсли; КонецЦикла; #КонецЕсли Если НЕ ФорматКартинкиРазрешен Тогда СообщитьПользователю("Формат основного изображения неизвестен или запрещен. Номенклатура: " + Номенклатура, Истина, СтатусСообщения.Информация); Возврат СтруктураРезультата; КонецЕсли; ИмяФайлаКартинки = Строка(Номенклатура.Объект.УникальныйИдентификатор())+"Dop"+Постфикс+"." + НРег(РасширениеФайлаКартинки); КаталогПоИмени = Лев(ИмяФайлаКартинки, 9); КаталогКартинки = КаталогНаДиске + "\" + ПодкаталогКартинок + "\" + КаталогПоИмени; СоздатьКаталог(КаталогКартинки); ПолноеИмяФайлаКартинки = КаталогКартинки + "\" + ИмяФайлаКартинки; ФайлКартинкиНаДиске = Новый Файл(ПолноеИмяФайлаКартинки); Попытка Картинка.Записать(ПолноеИмяФайлаКартинки); Исключение СообщитьОбИсключительнойОшибке(Истина, "Не удалось записать файл картинки на диск. Номенклатура: " + Номенклатура); Возврат СтруктураРезультата; КонецПопытки; СтруктураРезультата.Адрес = ПодкаталогКартинок + "/" + КаталогПоИмени + "/" + ИмяФайлаКартинки; СтруктураРезультата.Размер = Формат(ФайлКартинкиНаДиске.Размер(), "ЧГ="); Возврат СтруктураРезультата; КонецФункции Пришлось увеличить длину создаваемой папки для выгрузки картинок с 2-х (как было сделанно разработчиками) до 9-ти , а то были задвоения !!! |
|
|
19.01.2011 16:45:02
Привет. Частично решил данную проблему , дополнительные картинки выгружаются при полной выгрузке , для этого дописал процедуру в модуле обработки "ОбменССайтом" стр.460-490. Вот обработка по выгрузке основного изображения:
Если ВыгрузитьДаннуюКартинку Тогда СтруктураДанныхКартинки = ВыгрузитьКартинку(Товар.НоменклатураСсылка, КаталогНаДиске); Если СтруктураДанныхКартинки.Размер <> "0" Тогда ДобавитьУзелCML(СписокЗначенийCML, "Картинка", СтруктураДанныхКартинки.Адрес); ВыгруженоКартинок = ВыгруженоКартинок + 1; КонецЕсли; Надо сделать выборку справочника "ХранилищеДополнительнойИнформации" и проверить совпадение реквизита "Объект" c ссылкой на текущий элемент спр. Номенклатура , если да добавить его в xml файл выгрузки , я сделал так: //Выгрузка дополнительных картинок Отбор=Новый Структура("Объект"); // Создаем структуру c реквизит для отбора, который будет исользоваться функцией ".Выбрать(,,Отбор);" Отбор.Объект=Товар.НоменклатураСсылка; ВыбратьИзХранилища=Справочники.ХранилищеДополнительнойИнформации.Выбрать(,,Отбор); Постфикс=0; Пока ВыбратьИзХранилища.Следующий() Цикл Если ВыбратьИзХранилища.Ссылка <>Товар.НоменклатураСсылка.ОсновноеИзображение Тогда Если ВыгружатьТолькоИзменения Тогда ВыгрузитьДаннуюКартинку = (СтруктураИзменений.Картинки.Найти(ВыбратьИзХранилища.Ссылка) <> Неопределено); Иначе ВыгрузитьДаннуюКартинку = Истина; КонецЕсли; Если ВыгрузитьДаннуюКартинку Тогда Постфикс=Постфикс+1; СтруктураДанныхКартинки = ВыгрузитьДопКартинки(ВыбратьИзХранилища, КаталогНаДиске,Постфикс); Если СтруктураДанныхКартинки.Размер<>"0" Тогда ДобавитьУзелCML(СписокЗначенийCML, "Картинка", СтруктураДанныхКартинки.Адрес); ВыгруженоКартинок = ВыгруженоКартинок + 1; КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; ВыгрузитьДопКартинки(ВыбратьИзХранилища, КаталогНаДиске,Постфикс) -переделанная функция "ВыгрузитьКартинку" в следующих обновленях будет ли реализована возможность выгрузки доп. изображений? |
|
|