Имя: Пароль:
1C
1С v8
Тонкий и Веб клиенты разница вывода
0 Snik_666
 
07.08.13
00:20
добрый вечер! Подскажите почему в тонком клиенте выводит картинки , а в веб-клиенте нет. Как исправить ?



&НаКлиенте
Процедура ПриОткрытии(Отказ)
    Состояние("Ожидейте идет формирование!");
    ПриОткрытииНаСервере();
    Состояние("Сформировано!");
КонецПроцедуры

&НаСервере
Процедура ПриОткрытииНаСервере()
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |    Номенклатура.Ссылка КАК Ссылка
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    |    Номенклатура.ИспользуетсяДляСайта
    |    И Номенклатура.ОсновноеИзображение <> &ПустаяСсылкаСпрХранилище
    |
    |СГРУППИРОВАТЬ ПО
    |    Номенклатура.Ссылка
    |ИТОГИ ПО
    |    Ссылка ИЕРАРХИЯ";
    
    
    Запрос.УстановитьПараметр("ПустаяСсылкаСпрХранилище",Справочники.ХранилищеДополнительнойИнформации.ПустаяСсылка());
    РезультатЗапроса = Запрос.Выполнить();
    
    ТабДокумент = ФормаТабличногоДокумента;
    
    ТабДокумент.Очистить();
    Макет = Обработки.sПрайсТоваровСФотографиями.ПолучитьМакет("ПрайсСФотографиями");
    
    ТабДокумент.НачатьАвтогруппировкуСтрок();
    Выборка = РезультатЗапроса.Выбрать();
    проскочить = ложь;
    Пока Выборка.Следующий() Цикл
        Если Выборка.Группировка() <> "" Тогда
            Если Выборка.Ссылка.ЭтоГруппа Тогда
                ОбластьМакета = Макет.ПолучитьОбласть("Группа0");
                ОбластьМакета.Параметры.Группировка = ПрефиксУровня(Выборка.Уровень())+Выборка[Выборка.Группировка()];
                ОбластьМакета.Параметры.РасшифровкаГруппировки = Выборка[Выборка.Группировка()];
            Иначе
                ОбластьМакета = Макет.ПолучитьОбласть("Группа1");
                ОбластьМакета.Параметры.Цена = Выборка.Ссылка.ЦенаРозничная;
                ОбластьМакета.Параметры.Группировка = ПрефиксУровня(Выборка.Уровень())+Выборка[Выборка.Группировка()];
                ОбластьМакета.Параметры.РасшифровкаГруппировки = Выборка[Выборка.Группировка()];
            КонецЕсли;    
        Иначе        
            ОбластьМакета = Макет.ПолучитьОбласть("Товар");
            ОбластьМакета.Параметры.Код = Выборка.Ссылка.Код;
            ОбластьМакета.Параметры.Артикул = Выборка.Ссылка.Артикул;
            ОбластьМакета.Параметры.Наименование = Выборка.Ссылка.Наименование;
            ОбластьМакета.Параметры.Полное = Выборка.Ссылка.НаименованиеПолное;
            ОбластьМакета.Параметры.ДляСайта = Выборка.Ссылка.НаименованиеДляСайта;
            ОбластьМакета.Параметры.Производитель = Выборка.Ссылка.ПроизводительТовара;
            ОбластьМакета.Параметры.НомерПроизводителя = Выборка.Ссылка.НомерПроизводителя;
            ОбластьМакета.Параметры.НомерОригинальный = Выборка.Ссылка.НомерОригинальный;
            ОбластьМакета.Параметры.Цена = Выборка.Ссылка.ЦенаРозничная;
            ОбластьМакета.Параметры.Остаток = "?";
            ОбластьМакета.Рисунки.ФотоТовара.Картинка = Выборка.Ссылка.ОсновноеИзображение.Хранилище.Получить();
            ОбластьМакета.Рисунки.ОписаниеТовара.Текст = Выборка.Ссылка.ДополнительноеОписаниеНоменклатуры;
        КонецЕсли;    
        ТабДокумент.Вывести(ОбластьМакета, Выборка.Уровень());
    КонецЦикла;
    ТабДокумент.ЗакончитьАвтогруппировкуСтрок();
    ТабДокумент.ПоказатьУровеньГруппировокСтрок(3);
    ТабДокумент.Защита = Истина;
    
КонецПроцедуры
1 Пират
 
07.08.13
00:29
могу предположить, что в веб клиенте двоичные данные получаются через ПоместитьВоВрХр и ПолучитьИзВрХр
2 Пират
 
07.08.13
00:31
создай макет на сервере, помести во ВрХр и получи на клиенти ИзВрХр и будет тебе счастье
3 Пират
 
07.08.13
00:34
вот так надо

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    Состояние("Ожидейте идет формирование!");
    ТАБДОК = ПОЛУЧИТЬИЗВРХР(ПриОткрытииНаСервере());
ТАБДОКФОРМЫ = ТАБДОК;
    Состояние("Сформировано!");
КонецПроцедуры

&НаСервере
Функция ПриОткрытииНаСервере()
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |    Номенклатура.Ссылка КАК Ссылка
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    |    Номенклатура.ИспользуетсяДляСайта
    |    И Номенклатура.ОсновноеИзображение <> &ПустаяСсылкаСпрХранилище
    |
    |СГРУППИРОВАТЬ ПО
    |    Номенклатура.Ссылка
    |ИТОГИ ПО
    |    Ссылка ИЕРАРХИЯ";
    
    
    Запрос.УстановитьПараметр("ПустаяСсылкаСпрХранилище",Справочники.ХранилищеДополнительнойИнформации.ПустаяСсылка());
    РезультатЗапроса = Запрос.Выполнить();
    
    ТабДокумент = ФормаТабличногоДокумента;
    
    ТабДокумент.Очистить();
    Макет = Обработки.sПрайсТоваровСФотографиями.ПолучитьМакет("ПрайсСФотографиями");
    
    ТабДокумент.НачатьАвтогруппировкуСтрок();
    Выборка = РезультатЗапроса.Выбрать();
    проскочить = ложь;
    Пока Выборка.Следующий() Цикл
        Если Выборка.Группировка() <> "" Тогда
            Если Выборка.Ссылка.ЭтоГруппа Тогда
                ОбластьМакета = Макет.ПолучитьОбласть("Группа0");
                ОбластьМакета.Параметры.Группировка = ПрефиксУровня(Выборка.Уровень())+Выборка[Выборка.Группировка()];
                ОбластьМакета.Параметры.РасшифровкаГруппировки = Выборка[Выборка.Группировка()];
            Иначе
                ОбластьМакета = Макет.ПолучитьОбласть("Группа1");
                ОбластьМакета.Параметры.Цена = Выборка.Ссылка.ЦенаРозничная;
                ОбластьМакета.Параметры.Группировка = ПрефиксУровня(Выборка.Уровень())+Выборка[Выборка.Группировка()];
                ОбластьМакета.Параметры.РасшифровкаГруппировки = Выборка[Выборка.Группировка()];
            КонецЕсли;    
        Иначе        
            ОбластьМакета = Макет.ПолучитьОбласть("Товар");
            ОбластьМакета.Параметры.Код = Выборка.Ссылка.Код;
            ОбластьМакета.Параметры.Артикул = Выборка.Ссылка.Артикул;
            ОбластьМакета.Параметры.Наименование = Выборка.Ссылка.Наименование;
            ОбластьМакета.Параметры.Полное = Выборка.Ссылка.НаименованиеПолное;
            ОбластьМакета.Параметры.ДляСайта = Выборка.Ссылка.НаименованиеДляСайта;
            ОбластьМакета.Параметры.Производитель = Выборка.Ссылка.ПроизводительТовара;
            ОбластьМакета.Параметры.НомерПроизводителя = Выборка.Ссылка.НомерПроизводителя;
            ОбластьМакета.Параметры.НомерОригинальный = Выборка.Ссылка.НомерОригинальный;
            ОбластьМакета.Параметры.Цена = Выборка.Ссылка.ЦенаРозничная;
            ОбластьМакета.Параметры.Остаток = "?";
            ОбластьМакета.Рисунки.ФотоТовара.Картинка = Выборка.Ссылка.ОсновноеИзображение.Хранилище.Получить();
            ОбластьМакета.Рисунки.ОписаниеТовара.Текст = Выборка.Ссылка.ДополнительноеОписаниеНоменклатуры;
        КонецЕсли;    
        ТабДокумент.Вывести(ОбластьМакета, Выборка.Уровень());
    КонецЦикла;
    ТабДокумент.ЗакончитьАвтогруппировкуСтрок();
    ТабДокумент.ПоказатьУровеньГруппировокСтрок(3);
    ТабДокумент.Защита = Истина;
    
ВОЗВРАТ ПОМЕСТИТЬВОВРХР(ТАБДОК);

КонецФункции
4 Пират
 
07.08.13
00:36
В тонком клиенте двоичные данные гуляют без проблем между клиентом и сервером.

В веб клиенте надо помещать во временное хранилище на сервере и брать их из хранилища на клиенте.
5 Пират
 
07.08.13
00:37
Если я жутко не прав - поправьте меня
6 Snik_666
 
07.08.13
00:43
Спасибо что поделились очень ценным опытом!
7 Snik_666
 
07.08.13
00:46
Только жаль группировки теряются... плюсиков развертки нету
а может и группировки можно доделать ?
Закон Брукера: Даже маленькая практика стоит большой теории.