Рабочее окружение:
Розница, редакция 2.3 (2.3.10.61)
1С:Предприятие 8.3 (8.3.19.1264)
Для реализации было сделано расширение с http-сервисом и шаблон html ценника. (Приложены к публикации).
На фото в публикации результат, который отдает сервис пользователю.
Надеюсь, кто-нибудь покритикует, расскажет о своем (возможном решении).
Листинг кода
Функция startPrice(Запрос)
//http://127.0.0.1:33365/Ret/hs/unit/start/4810344008954
Штрихкод = СтрЗаменить(Запрос.ОтносительныйURL,"/start/","");
HTTPОтвет = Новый HTTPСервисОтвет(200);
HTTPОтвет.УстановитьТелоИзСтроки(Чтение(Штрихкод)); //Добавляем аргумент функции (Штрихкод)
HTTPОтвет.Заголовки["Content-Type"] = "text/html";
Возврат HTTPОтвет;
КонецФункции
Функция Чтение(Штрихкод)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Штрихкод",Штрихкод);
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ПРЕДСТАВЛЕНИЕССЫЛКИ(Штрихкоды.Владелец) КАК НаименованиеТовара,
| Штрихкоды.Характеристика КАК Характеристика,
| ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
|ИЗ
| РегистрСведений.Штрихкоды КАК Штрихкоды
| ПРАВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
| ПО (Штрихкоды.Владелец = ЦеныНоменклатурыСрезПоследних.Номенклатура)
|ГДЕ
| Штрихкоды.Штрихкод = &Штрихкод";
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
ЦенаТовара = 0;
НаименованиеТовара = "Товар отсутствует";
Иначе
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
ЦенаСтрокой = СтрЗаменить(Строка(Выборка.Цена),Символы.НПП,"");
РазмерСтроки = СтрДлина(ЦенаСтрокой);
СуммаЦелых = Лев(ЦенаСтрокой,РазмерСтроки-3);
ДробнаяЧасть = СтрНайти(ЦенаСтрокой,",");
Если ДробнаяЧасть = 0 Тогда
СуммаКопеек = "00";
СуммаЦелых = ЦенаСтрокой;
Иначе
СуммаКопеек = Прав(ЦенаСтрокой,2);
СуммаЦелых = Лев(ЦенаСтрокой,РазмерСтроки-3);
КонецЕсли;
ЦенаТовара = СтрШаблон("%1 руб. %2 коп.",СуммаЦелых,СуммаКопеек);
НаименованиеТовара = Выборка.НаименованиеТовара;
КонецЦикла;
КонецЕсли;
ЧтениеHTML = Новый ЧтениеHTML;
ЧтениеHTML.ОткрытьФайл("C:\Ценник2.html", "UTF-8"); //Размешение шаблона HTML ценника.
ПостроительDOM = Новый ПостроительDOM;
ДокументHTML = ПостроительDOM.Прочитать(ЧтениеHTML);
ЧтениеHTML.Закрыть();
АдресHTML = ПолучитьТекстHTML(ДокументHTML);
СтрокаЗаменыЦены = "Цена товара";
СтрокаЗаменыНаименование = "Карточка товара";
ЦенаHTML = СтрЗаменить(АдресHTML,СтрокаЗаменыЦены, ЦенаТовара);
КарточкаТовараHTML = СтрЗаменить(ЦенаHTML,СтрокаЗаменыНаименование,НаименованиеТовара);
Возврат КарточкаТовараHTML;
КонецФункции
Функция ПолучитьТекстHTML(ДокументHTML)
ЗапиcьHTML = Новый ЗаписьHTML;
ЗапиcьHTML.УстановитьСтроку();
ЗаписьDOM = Новый ЗаписьDOM;
ЗаписьDOM.Записать(ДокументHTML, ЗапиcьHTML);
Возврат ЗапиcьHTML.Закрыть();
КонецФункции
Текст HTML-Шаблона
<!DOCTYPE html>
<html>
<head>
<style>
.card {
box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.2);
max-width: 1000px;
min-height: 640px;
margin: auto;
text-align: center;
font-family: arial;
font-size: 48px;
}
.price {
color: grey;
font-size: 96px;
}
.card button {
border: none;
outline: 0;
padding: 12px;
color: white;
background-color: #000;
text-align: center;
cursor: pointer;
width: 100%;
font-size: 18px;
}
.card button:hover {
opacity: 0.7;
}
</style>
</head>
<body>
<div class="card">
<h1>Карточка товара</h1>
<meta charset="UTF-8">
<p class="price">Цена товара</p>
<p>Финские товары лучшего качества</p>
<p><button>ИП Плошкиш В.П.</button></p>
</div>
</body>
</html>