Информационное табло на 1С: от формы с автообновлением до экрана в цеху

· 9 мин

Содержание

Табло 1С — это не отдельный объект платформы, а форма (обработка или отчёт), которая сама обновляет данные по таймеру через ПодключитьОбработчикОжидания() и показывает их крупно на отдельном экране. Работает табло так: клиент раз в N секунд делает один вызов сервера, получает свежую выборку из базы и перерисовывает таблицу или диаграмму.

Типичная боль — склад просит экран «что собирать прямо сейчас», руководитель хочет видеть выручку дня на телевизоре, а в типовой конфигурации готового механизма нет. Ниже — рабочая схема, настройка по шагам и то, как не положить сервер десятком таких экранов.

Что такое табло в 1С и какие задачи оно закрывает

Табло — это экран «только для чтения». На него смотрят издалека, с ним почти не взаимодействуют. Отсюда требования: крупный шрифт, минимум колонок, цвет вместо текста, обновление без участия человека.

Где табло на 1С реально нужно:

  • 📦 склад — очередь заданий на сборку и отгрузку, просроченные отмечены красным;
  • 🏭 производство — план и факт смены по участкам;
  • 🧾 отдел продаж — выручка дня, число заказов, выполнение плана;
  • 🍽 общепит и сервис — статусы заказов «готовится / готов», электронная очередь;
  • 💼 руководитель — сводные показатели: остатки денег, долги покупателей, продажи.

Для последнего сценария в 1С:Бухгалтерии 3.0 уже есть готовый отчёт «Монитор руководителя». Если нужны только финансовые показатели, начните с него. Для склада и производства придётся делать свою форму — типовые конфигурации такого экрана не содержат.

Архитектура табло: путь данных от регистра до экрана

Схема у любого табло на 1С одинаковая, меняется только источник данных.

ЗвеноЧто делаетГде выполняется
Источникдокументы, регистры накопления и сведенийбаза данных
Запросвыбирает строки за нужный период и с отборомсервер 1С
Реквизит формытаблица значений или динамический списокформа
Обработчик ожиданияраз в N секунд вызывает обновлениеклиент
Оформлениецвет, шрифт, порядок строкформа

Ключевой момент — граница клиент/сервер. Таймер живёт на клиенте, запрос выполняется на сервере. Каждое срабатывание таймера — это вызов сервера. Если в процедуре обновления три серверных вызова, а экранов пять и интервал 10 секунд, база получает полторы сотни обращений в минуту только от табло.

Правило одного вызова: вся работа с базой — в одной серверной процедуре. Клиентская часть только запускает её и ничего не читает из базы сама.

Второй важный момент: любой клиент 1С, открытый на экране табло, — это обычный сеанс. Он занимает клиентскую лицензию так же, как бухгалтер за компьютером. Это нужно учесть до закупки телевизоров.

Способы сделать табло в 1С: от готового отчёта до HTTP-сервиса

Вариантов четыре, по возрастанию трудозатрат.

СпособКогда подходитМинусы
Готовый отчёт «Монитор руководителя» (БП 3.0)финансовые показатели для директоране про склад и производство, обновление вручную
Динамический список с отборомпростая очередь документовмало контроля над оформлением и нагрузкой
Внешняя обработка с таймеромсклад, цех, продажи — основной вариантзанимает лицензию на каждый экран
HTTP-сервис + веб-страницаТВ без Windows, много экранов, внешние системынужна доработка конфигурации и веб-сервер

Динамический список

Самый быстрый путь: форма списка документов с отбором по статусу и сортировкой по дате. Динамический список умеет сам перечитывать данные, но читает порциями и под пользователя за компьютером. Для экрана в цеху его обычно не хватает: нет итогов, сложно сделать крупную вёрстку.

Внешняя обработка с таймером

Основной вариант. Обработку не нужно встраивать в конфигурацию: её подключают через Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки или открывают через Файл → Открыть. Обновления типовой при этом не ломаются.

HTTP-сервис

Конфигурация отдаёт JSON по адресу, а табло — это обычная HTML-страница в браузере телевизора. Об этом варианте — в разделе про внешние системы.

Пошаговая настройка табло на управляемой форме

Пример: табло очереди заданий на сборку. Объект Документ.ЗаданиеНаСборку и его реквизиты условные — подставьте документы своей конфигурации.

Шаг 1. Создайте обработку и форму

  1. Откройте Конфигуратор, Файл → Новый → Внешняя обработка.
  2. Добавьте основную форму.
  3. В реквизитах формы создайте Очередь с типом ТаблицаЗначений и колонки: Номер, Покупатель, Позиций, Срок, Просрочено (булево).
  4. Перетащите реквизит на форму. В свойствах таблицы отключите командную панель и изменение данных.

Шаг 2. Напишите серверное обновление

&НаСервере
Процедура ОбновитьНаСервере()

	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ ПЕРВЫЕ 20
	|	Задание.Номер КАК Номер,
	|	Задание.Покупатель КАК Покупатель,
	|	Задание.КоличествоПозиций КАК Позиций,
	|	Задание.Срок КАК Срок,
	|	Задание.Срок < &ТекущееВремя КАК Просрочено
	|ИЗ
	|	Документ.ЗаданиеНаСборку КАК Задание
	|ГДЕ
	|	Задание.Проведен
	|	И Задание.Дата >= &НачалоПериода
	|	И Задание.Статус = &СтатусВРаботе
	|
	|УПОРЯДОЧИТЬ ПО
	|	Срок";

	Запрос.УстановитьПараметр("ТекущееВремя", ТекущаяДатаСеанса());
	Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(ТекущаяДатаСеанса()) - 86400 * 2);
	Запрос.УстановитьПараметр("СтатусВРаботе", Перечисления.СтатусыЗаданий.ВРаботе);

	ЗначениеВРеквизитФормы(Запрос.Выполнить().Выгрузить(), "Очередь");
	ВремяОбновления = Формат(ТекущаяДатаСеанса(), "ДФ=HH:mm:ss");

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

Отбор по дате обязателен. Без него запрос со временем начнёт перебирать всю историю документов, и каждое обновление будет тяжелее предыдущего. ПЕРВЫЕ 20 — столько строк всё равно не поместится на экран крупным шрифтом.

ВремяОбновления — строковый реквизит формы. Выведите его в углу: по нему видно, что табло живое, а не зависло час назад.

Шаг 3. Подключите таймер

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	ОбновитьТабло();
	ПодключитьОбработчикОжидания("ОбновитьТабло", 30, Ложь);
КонецПроцедуры

&НаКлиенте
Процедура ОбновитьТабло() Экспорт
	Попытка
		ОбновитьНаСервере();
	Исключение
		ВремяОбновления = "нет связи";
	КонецПопытки;
КонецПроцедуры

Третий параметр Ложь означает многократный вызов: процедура срабатывает каждые 30 секунд, пока форма открыта. Процедура-обработчик должна быть клиентской и без параметров.

Попытка нужна, чтобы кратковременный обрыв связи с сервером не оставил на экране окно ошибки, которое некому закрыть.

Шаг 4. Оформление под экран

  • 🎨 Условное оформление формы: правило «Очередь.Просрочено = Истина» → красный фон строки.
  • 🔠 Шрифт таблицы — крупный, жирный; высота строк — 2-3 строки текста.
  • 👁 Колонка Просрочено нужна только для оформления — скройте её.
  • 🧹 Лишнее — заголовок окна, командные панели — уберите в свойствах формы.

Шаг 5. Отдельный пользователь и автозапуск

  1. Создайте пользователя, например «Табло склад», с ролью только на чтение нужных объектов.
  2. На компьютере у экрана сделайте ярлык запуска с параметрами базы и пользователя:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"srv1c\trade" /N"Табло склад" /P"пароль" /C"tablo"
  1. В модуле приложения или в обработчике при начале работы проверяйте ПараметрЗапуска: если там tablo, открывайте форму табло. Для внешней обработки тот же эффект даёт добавление её в автозапуск через дополнительные обработки — если ваша конфигурация это поддерживает.

Пароль в ярлыке виден любому, кто подойдёт к компьютеру. Поэтому у пользователя табло — только права на чтение и никаких прав на изменение данных. Ещё лучше — аутентификация операционной системы для отдельной учётной записи Windows.

Перед запуском табло в работу
Выполнено: 0 / 6

Типичные ошибки при настройке табло и как их не допустить

Диагностика: выберите симптом

Отдельно про обработчик ожидания: модальные окна (вопросы, предупреждения) внутри него не используйте. На табло никто не нажмёт «ОК», и обновление встанет.

Интеграция табло с внешними системами и экранами

Когда экранов больше двух-трёх или на стене висит Smart TV без Windows, держать на каждом полноценный клиент 1С неудобно. Схема меняется: 1С публикует данные, а показывает их кто угодно.

HTTP-сервис в конфигурации

  1. В конфигурации (или в расширении) создайте HTTP-сервис, например tablo, с шаблоном URL /queue и методом GET.
  2. В обработчике выполните тот же запрос, что в шаге 2, и верните результат в JSON через ЗаписьJSON.
  3. Опубликуйте HTTP-сервис на веб-сервере (IIS или Apache) через Администрирование → Публикация на веб-сервере в Конфигураторе.
  4. На стороне экрана — простая HTML-страница, которая раз в 30 секунд запрашивает адрес вида https://srv/base/hs/tablo/queue и перерисовывает таблицу.

Страницу открывают в браузере телевизора или мини-ПК. В Chrome для этого есть режим киоска — запуск с ключом --kiosk открывает страницу во весь экран без панелей.

Расширение конфигурации для HTTP-сервиса лучше, чем правка основной конфигурации: типовая остаётся на поддержке и обновляется без ручного сравнения.

Что ещё подключают к табло

  • 📡 Бегущая строка и светодиодные табло — у многих есть свой контроллер с HTTP или COM-протоколом; 1С отправляет текст через HTTPСоединение.
  • 📊 BI-системы — забирают те же JSON-данные и строят дашборды; 1С остаётся источником.
  • 🔔 Электронная очередь — внешняя система присылает номер талона в 1С через тот же HTTP-сервис методом POST.

Для HTTP-сервиса нужен отдельный пользователь базы с правами на чтение — тот же принцип, что и для клиентского табло.

Как ускорить табло и снизить нагрузку на сервер 1С

Само табло лёгкое. Тяжело становится, когда экранов много, а каждый из них считает одно и то же.

Подберите интервал под задачу

СценарийРазумный интервал
Очередь сборки, статусы заказов15-30 секунд
План-факт смены1-5 минут
Выручка и финансовые показатели5-15 минут

Обновление каждые 3 секунды не делает табло полезнее: склад всё равно не собирает заказ за 3 секунды.

Считайте один раз — показывайте много раз

Если пять экранов показывают одну очередь, пусть расчёт делает регламентное задание раз в 30 секунд и пишет результат в регистр сведений . Табло читают готовую маленькую таблицу без соединений и группировок. Нагрузка от числа экранов почти перестаёт зависеть.

Держите запрос простым

  • ⏱ отбор по периоду и статусу — всегда;
  • 🔢 ПЕРВЫЕ N — по числу строк, которые помещаются на экран;
  • 🧮 итоги и проценты — в запросе, а не циклом на клиенте;
  • 🚫 без разыменования длинных цепочек ссылок вида Покупатель.ОсновнойДоговор.Организация — каждая точка добавляет соединение.

Проверить, сколько реально занимает обновление, удобно замером производительности в режиме отладки: он покажет время каждой строки серверной процедуры.

Частые вопросы о табло 1С

Сколько лицензий нужно под табло?
Каждый открытый клиент 1С на экране — одна клиентская лицензия. В варианте с HTTP-сервисом экраны идут через веб-сервер, и занятых лицензий столько, сколько одновременно открыто сеансов сервиса, а не сколько висит экранов.
Работает ли табло в веб-клиенте?
Да. Обработчик ожидания работает и в веб-клиенте, поэтому форму табло можно открыть в браузере через опубликованную базу. Лицензию такой сеанс тоже занимает.
Табло на 1С подходит для файловой базы?
Подходит при одном-двух экранах. Файловая база хуже переносит частые обращения с нескольких компьютеров, поэтому интервал лучше ставить от минуты.
Можно ли выводить на табло диаграмму вместо таблицы?
Да. На форму помещают элемент типа «Диаграмма» и заполняют его серии и точки в той же серверной процедуре обновления.
Как вывести табло на второй монитор?
Окно клиента 1С перетаскивают на второй монитор и разворачивают. Windows запоминает позицию окна, но надёжнее отдельный мини-ПК под экраном со своим автозапуском.