Загрузка данных


Процедура ПриОткрытии()

    ЗагрузитьКаталог();

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


Процедура ЗагрузитьКаталог()

    // получаем макет
    Макет = ПолучитьОбщийМакет("МакетКаталога");
    HTML = Макет.ПолучитьТекст();

    // запрос
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |   Ссылка,
    |   Наименование,
    |   Цена,
    |   Картинка
    |ИЗ
    |   Справочник.Номенклатура";

    Результат = Запрос.Выполнить().Выбрать();

    HTMLТовары = "";

    Пока Результат.Следующий() Цикл

        Base64 = КартинкаВBase64(Результат.Картинка);

        HTMLТовары = HTMLТовары +
        "<div class=""card"" onclick=""selectItem('" + Строка(Результат.Ссылка) + "')"">" +

            "<img class=""img"" src=""data:image/png;base64," + Base64 + """ />" +

            "<div class=""name"">" + Результат.Наименование + "</div>" +

            "<div class=""price"">" + Формат(Результат.Цена, "ЧДЦ=2") + " ₽</div>" +

        "</div>";

    КонецЦикла;

    // вставляем товары в макет
    HTML = СтрЗаменить(HTML, "%ТОВАРЫ%", HTMLТовары);

    // выводим
    Элементы.HTMLКаталог.ДокументHTML = HTML;

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


Функция КартинкаВBase64(Хранилище)

    Если Хранилище = Неопределено Тогда
        Возврат "";
    КонецЕсли;

    ДвоичныеДанные = Хранилище.Получить();

    Если ДвоичныеДанные = Неопределено Тогда
        Возврат "";
    КонецЕсли;

    Возврат СтрКодироватьBase64(ДвоичныеДанные);

КонецФункции


Процедура ВыбратьТовар(СсылкаСтрокой) Экспорт

    Сообщить("Выбран товар: " + СсылкаСтрокой);

    // сюда потом можно открыть карточку товара

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