Табло очереди заказов на экран телевизора

09.12.22

Связка из веб-приложения и расширения для конфигурации 1С:Розница 2.3.

Область применения

Данная разработка позволяет реализовать вывод на экран телевизора с веб-браузером (со smart tv или медиаприставкой) табло с очередью заказов.

Табло

Технические требования

Серверная часть - ASP NET 6, Web API приложение, веб-интерфейс реализован на Angular, динамическое обновление данных посредством SignalR. Сервер использует СУБД SQLite, по запросу есть возможность собрать под другие базы данных.

Протестировано на следующих версиях:

  • Windows Server 2016, IIS 10/Windows 11, Kestrel.
  • 1С:Предприятие 8.3 (8.3.20.1710), 
  • 1С: Розница, редакция 2.3 (2.3.10.61)

Расширение формирует запросы к серверу Web API, для отображения новых заказов и отметки уже выполненных, также реализована возможность печати на ККТ чека с текущим номером заказа и его составом.

Веб-интерфейс на Angular позволяет самостоятельно (или по запросу) легко кастомизировать внешний вид табло.

Установка

Web API приложение

Серверная часть устанавливается на веб-сервер IIS.

Предварительно необходимо установить ASP.NET Core Runtime 6, Hosting Bundle по ссылке: https://dotnet.microsoft.com/en-us/download/dotnet/6.0

Для IIS необходимо добавить новое приложение (или создать отдельный пул, если сервер уже активен и необходимо запустить на отдельном порту). В созданную папку приложения поместить содержимое папки Server.
Возможно использование Kestrel-сервера - если нужно только локальное подключение для тестирование, то всего лишь запустить файл OrderQueue.exe в папке Server (по умолчанию использует порт 5000, можно будет увидеть в окне консоли). Иначе можно настроить проксирование через Apache/nginx.
В папке Server находится файл appsettings.json, в нем необходимо указать настройки работы серверной части.
В разделе ConnectionStrings указано расположение базы данных, при необходимости значение можно изменить. База данных будет создана автоматически.

Важно: так как в папке с приложением находится база данных Sqlite для хранения текущих заказов, нужно наличие прав на запись в данную папку у пользователя, под которым запущен экземпляр приложения. Если используется IIS и пул приложения запущен от пользователя Network Service, то нужно дать этому пользователю права на запись в эту папку.

"ConnectionStrings": {
    "OrderQueue": "Data Source=orderqueue.db"

В разделе Cors -  адрес сервера node.js с запущенным angular.

"Cors": {
    "Host": "http://localhost:44448"
  }

В разделе Settings - время (в минутах) автоматического удаления готовых заказов (CleanReadyInterval) и находящихся в очереди (CleanProcessingInterval).

 "Settings": {
    "CleanReadyInterval": "10",
    "CleanProcessingInterval": "720"
  }

Интерфейс Web API

Реализованы следующие функции WebAPI. Их можно использовать при самостоятельной интеграции в другие системы.

Команды передаются как http get запрос серверу. Например, запрос может выглядеть следующим образом:

http://192.168.1.210:5146/orderqueue/order/getcompleteorders

Где выделенная часть постоянная для всех запросов - адрес сервера, порт и имя приложения на IIS сервере.

Команда Описание
/order/addorder?number=<номер заказа> Добавление заказа в очередь
/order/removeorder?number=<номер заказа> Удаление заказа
/order/setordercomplete?number=<номер заказа> Отметка заказа, как готового
/order/getcompleteorders Возвращает готовые заказы
/order/getprocessingorders Возвращает заказы в очереди

 

<номер заказа> - параметр команды, который представляет собой числовое значение. Например, 001, 002.

Значения не обязательно должны быть числовыми, но следует учесть, что в приложенном расширении для 1С реализована печать чеков только с числовыми значениями заказов. Добавить другие символы не составляет труда.

Команды, возвращающие списки заказов, передают ответ в качестве json структуры вида:

[{"id":3,"number":"002","status":"Processing","orderDate":"2022-07-05T12:26:34.0481005"}]

Angular 

Для angular необходимо скачать node.js https://nodejs.org/en/

Тестировал на LTS версии 16.14.2

После установки необходимо перейти в папку ClientApp с веб-сервером.

В папке src\environments находится файл environment.prod.ts. В нем необходимо указать адрес сервера Web API. 

Адрес должен заканчиваться на '/'. Если сервер запущен на IIS, то не забыть указать имя приложения на сервере, например, http://192.168.1.100:5146/orderqueue/

export const environment = {
  production: true,
  baseUrl: 'http://localhost:5146/'
};

Далее в папке ClientApp запустить по очереди файлы install.bat и start.bat, либо вручную открыть командную строку в этой папке и выполнить команды npm install и npm start. Вторую команду необходимо добавить в автозагрузку системы.

Подключение расширения для 1С

В 1С необходимо подключить расширение ОчередьЗаказов.cfe.

Расширение добавит новый раздел - Очередь заказов. В этом разделе необходимо задать значения констант для работы расширения.

  • Сервер очереди заказов - адрес сервера Web API.
  • Ширина кассовой ленты - ширина ленты для печати чека.
  • Печатать второй экземпляр состава заказа - если нет необходимости ставить еще одно рабочее место у сборщика заказа, то есть возможность печатать два экземпляра чека с номером и составом заказа.

В РМК в разделе Меню добавлены две кнопки - В очередь и Открыть очередь.

РМК

Кнопка В очередь выводит на табло номер нового заказа и печатает чек с номером и составом заказа. Фискальный чек не печатается, процесс оплаты остался без изменений.

Кнопка Открыть очередь отображает окно со списком активных заказов, где их можно пометить как готовые к выдаче.

Очередь заказов

Ограничения на количество клиентов веб-сервера табло отсутствуют, соответственно можно подключить несколько телевизоров.

Код расширения и angular-приложения открыт, Web API - приложение с закрытым кодом.

Техническая поддержка и обновления

Бесплатный период техподдержки составляет 1 месяц со дня покупки.

Также после приобретения вы получаете 3 месяца бесплатных обновлений.

По окончании бесплатного периода вы можете приобрести услугу технической поддержки с доступом к обновлениям на платной основе.

Проверить наличие обновлений можно в личном кабинете. Если обновления недоступны - загрузить новую версию можно после покупки обновлений/технической поддержки.

Задать вопрос по программе можно по кнопке "Техподдержка" на странице описания.

При создании тикета необходимо предоставить:

  1. Номер заказа
  2. Описание вопроса. Если это ошибки - напишите порядок ваших действий с программой, которые к ней привели (приложите видео/скриншоты/отчеты об ошибке)
  3. Точную конфигурацию 1С, и версию платформы, на которой используете купленное решение (наименование и версию 1С можно взять из раздела "О программе"), версию купленной программы.

К созданной заявке подключается специалист. Дальнейшее обсуждение проблемы будет проходить в тикете техподдержки. Стандартный срок реакции - 24 часа в рабочие дни с момента обращения

Внимание! Техническая поддержка предоставляется исключительно в рамках переписки по обращению. В некоторых случаях для диагностики ошибок и/или вопросов, связанных с особенностями использования продукта в информационных базах покупателя, может потребоваться дополнительная платная диагностика с организацией удаленного доступа к информационной базе. Стоимость уточняется индивидуально.

Техподдержка
 

Вступайте в нашу телеграмм-группу Инфостарт

табло очередь заказов

См. также

Разработка внешних компонент WEB-интеграция Программист 1С:Предприятие 8 Абонемент ($m)

На Инфостарте много разработок, которые предназначены для отображения в обозревателе данных на связи из 1С. С разными способами подключения, на разных технологиях. Есть платные, есть бесплатные. В данной публикации я хочу показать, как можно сделать сопряжение 1С обозреватель своими 1Сными силами с базовыми навыками верстки с нуля за полчаса и бесплатно.

1 стартмани

02.05.2022    12599    135    Steelvan    0    

68