8.х Помогите сделать прайс-лист с картинками в УТ 11

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Alekzander, 19 дек 2012.

  1. TopicStarter Overlay
    Alekzander
    Offline

    Alekzander

    Регистрация:
    19 дек 2012
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Доброго всем дня. Задача стоит такая: в прайс-лист выводить картинку номенклатуры. Пытался делать на СКД - говорят, не получится запихнуть картинку в отчёт, теперь думаю, а можно ли сделать прайс без использования СКД?

    Сейчас пробую выбрать картинку запросом:


    Код:
     Запрос = Новый Запрос(
    "ВЫБРАТЬ
    | НоменклатураПрисоединенныеФайлы.Ссылка
    |ИЗ
    | Справочник.НоменклатураПрисоединенныеФайлы КАК НоменклатураПрисоединенныеФайлы
    |ГДЕ
    | НоменклатураПрисоединенныеФайлы.ПометкаУдаления = ЛОЖЬ
    | И НоменклатураПрисоединенныеФайлы.Зашифрован = ЛОЖЬ
    | И НоменклатураПрисоединенныеФайлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВТомахНаДиске)");
    
    Выборка = Запрос.Выполнить().Выбрать();
    
    Пока Выборка.Следующий() Цикл
    
    УникИдентификатор = Выборка.Ссылка.УникальныйИдентификатор();
    ДанныеФайла = ПрисоединенныеФайлы.ПолучитьДанныеФайла(Выборка.Ссылка, УникИдентификатор);
    ПрисоединенныйФайл_Объект = Выборка.Ссылка.ПолучитьОбъект();
    
    КонецЦикла;
    
    но чувствую, что выбираю не то. Поэтому у меня два вопроса - можно ли сделать прайс-лист без СКД и как сформировать правильный запрос на выборку картинок номенклатуры?
  2. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.984
    Симпатии:
    398
    Баллы:
    104
    Все можно
    Это зависит того, какие данные у Вас хранит этот справочник.
  3. TopicStarter Overlay
    Alekzander
    Offline

    Alekzander

    Регистрация:
    19 дек 2012
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Если Вы о справочнике НоменклатураПрисоединенныеФайлы, то он хранит как раз изображения номенклатуры. Я вот ещё решил по какому пути пойти: сделать выборку такого типа:

    Код:
    Запрос=Новый Запрос;
    Запрос.Текст=  "ВЫБРАТЬ
    | ЦеныНоменклатуры.Номенклатура,
    | ЦеныНоменклатуры.ВидЦены,
    | ЦеныНоменклатуры.Цена,
    | ЦеныНоменклатуры.Номенклатура.ФайлКартинки КАК Картинка
    |ИЗ
    | РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры";
    
    То есть пробую "достучаться" до изображения через реквизит ФайлКартинки спр-ка Номенклатура. Только когда я пробовал составить отчёт через СКД и использовал такой запрос, мне в отчёт в ячейке для картинки выводилось лишь её название. Вот я и думаю, может опять пошёл по ложному пути?
  4. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.984
    Симпатии:
    398
    Баллы:
    104
    С картинками не работал. Но предполагаю, что ее необходимо как-то открыть, а вашем случае отобразить. Просто на вывод он и показывает название. Попробуйте на обычном макете.
  5. TopicStarter Overlay
    Alekzander
    Offline

    Alekzander

    Регистрация:
    19 дек 2012
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Да, именно задача отображения картинки в отчёте сейчас и вызывает наибольшие трудности. Откуда её взять и куда затолкнуть - вот главный вопрос...
  6. VIPOS
    Offline

    VIPOS Опытный в 1С

    Регистрация:
    12 сен 2012
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    29
  7. TopicStarter Overlay
    Alekzander
    Offline

    Alekzander

    Регистрация:
    19 дек 2012
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Я пробовал уже... но это для обычного приложения, сейчас пытаюсь изменить внешний прайс с картинками для УНФ 1.4, подогнать под себя. Пока застрял на этапе выборки картинки - ругается

    {ОбщийМодуль.РаботаСФайламиВызовСервера.Модуль(1605)}: Поле объекта не обнаружено (Владелец)
    РабочийКаталогВладельца = ПолучитьРабочийКаталог(ДанныеФайла.Владелец);


    Причём в демонстрационной конфигурации УТ 11 всё отлично отрабатывает, а такая ошибка выходит на копии рабочей базы. Я так понимаю, система не находит привязку картинки к номенклатуре (то есть не находит владельца картинки), но как тогда его найти, чего же не хватает???
  8. TopicStarter Overlay
    Alekzander
    Offline

    Alekzander

    Регистрация:
    19 дек 2012
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Уффф... вроде что-то получается, теперь ошибка вылетает такая:

    Ошибка исполнения отчета
    по причине:
    Ошибка при выполнении обработчика - 'ПриКомпоновкеРезультата'
    по причине:
    {ОбщийМодуль.РаботаСФайламиВызовСервера.Модуль(1301)}: Ошибка при вызове метода контекста (Выполнить)
    Выборка = Запрос.Выполнить().Выбрать();
    по причине:
    {(23, 65)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
    неограниченной длины и поля несовместимых типов.
    ПО Файлы.ТекущаяВерсия = ВерсииФайлов.Ссылка ГДЕ Файлы.Ссылка <<?>>= &Файл

    Сам по себе запрос в общем модуле такой:

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

Поделиться этой страницей