Табло очереди заказов на экран телевизора
Связка из веб-приложения и расширения для 1С: Розница 2.3.
- Описание
- Подробнее
Описание
Данная разработка позволяет реализовать вывод на экран телевизора с веб-браузером (со smart tv или медиаприставкой) табло с очередью заказов.

Серверная часть — ASP NET 6, Web API приложение, веб-интерфейс реализован на Angular, динамическое обновление данных посредством SignalR. Сервер использует СУБД PostgreSQL, по запросу могу собрать под другие базы данных.
Расширение реализовано для 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 необходимо указать адрес, порт, пользователя и пароль PostgreSQL. База данных будет создана автоматически.
"ConnectionStrings": {
"OrderQueue": "Host=<address>;Port=<port>;Database=orderqueue;Username=postgres;Password=<password>"В разделе Cors — адрес сервера node.js с запущенным angular.
"Cors": {
"Host": "http://localhost:44448"
}В разделе Settings — время (в минутах) автоматического удаления готовых заказов (CleanReadyInterval) и находящихся в очереди (CleanProcessingInterval).
"Settings": {
"CleanReadyInterval": "10",
"CleanProcessingInterval": "720"
}
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 — приложение с закрытым кодом.
Тестировал на следующих конфигурациях:
Windows Server 2016, IIS 10/Windows 11, Kestrel.
1С:Предприятие 8.3 (8.3.20.1710), Розница, редакция 2.3 (2.3.10.61)
PostgreSQL 13

