Информационный киоск для 1С 7.7

Оборудование - Сканер штрих-кода

Обработка превращает ПК с запущенной 1С в информационный киоск для вывода информации о товаре при сканирования штрих-кода.

Описание

Минимальное разрешение экрана для корректного вывода информации - 1024х768.

В конфигураторе, при желании, можно настроить под любое разрешение. 

Следующие параметры обработки автоматически устанавливаются из настроек пользователя:

  • Фирма - реквизит "Основная фирма"
  • Склад - реквизит "Основной склад"
  • Тип цен - реквизит "Основной тип цен продажи".
  • Валюта - реквизит "Основная валюта взаиморасчетов".
Данные параметры обязательно должны быть определены для пользователя.

ВНИМАНИЕ! Для разных релизов конфигурации Торговля и Склад отдельный файл обработки.

Можно организовать автозапуск обработки создав пользователя "Киоск" и добавив следующий код в процедуру глобального модуля конфигурации "ПриНачалеРаботыСистемы()":
Если (ИмяПользователя()="Киоск") Тогда
    ОткрытьФормуМодально("Отчет", ФлагЗапускаНастроек, КаталогИБ()+"\ExtForms\kiosk.ert");
КонецЕсли;

Когда пользователь "Киоск" будет заходить в систему, автоматически запустится обработка. Обратите внимание, что форма откроется модально, то есть остальной функционал 1С будет заблокирован до закрытия окна обработки.

В процедуре "обработка внешнего события" есть код:

Wsh = СоздатьОбъект("Wscript.shell");
Wsh.SendKeys("{RIGHT}");

Объект "Wsh" эмулирует нажатие стрелки на клавиатуре. Таким образом выключаем скринсейвер с рекламой :-)

Установка

Действия как для любого внешнего отчёта или обработки:
  • Поместить файл обработки в папку: "ПутьВашейИБ/ExtForms/"
  • Запустить 1С Предприятие
  • Открыть форму "Дополнительные возможности" во вкладке "Сервис"
  • Нажать клавишу "Изменить", далее "Внести в список", выбрать файл "PrintCen77.ert", ввести название для обработки и нажать"ОК"
  • Теперь обработка в списке "Дополнительные возможности" и ею можно пользоваться.


Скачать файлы

Наименование Файл Версия Размер
Киоск для ТиС 7.70.921
.ert 34,00Kb
28.11.14
1
.ert 1.3 34,00Kb 1 Скачать
Киоск для ТиС 7.70.973
.ert 38,00Kb
28.11.14
4
.ert 1.3 38,00Kb 4 Скачать

См. также

Комментарии
1. John Smith (PiccaHut001) 23.10.14 18:10 Сейчас в теме
Wsh = СоздатьОбъект("Wscript.shell");
Wsh.SendKeys("{RIGHT}");
Объект "Wsh" эмулирует нажатие стрелки на клавиатуре. Таким образом выключаем скринсейвер с рекламой :-)
Гениально, я считаю
7. Cepгей ... (Gkmy) 27 15.04.18 12:22 Сейчас в теме
(1) "... нажатие стрелки на клавиатуре. Таким образом выключаем скринсейвер с рекламой :-) Гениально, я считаю", - таймаут на бездействие.. зачем принудительное с клавиатуры, сканера (6).. наверное, тоже нужно, пригодится.. но зачем? - не понимаю
9. Владислав Медведев (M_W_W) 8 15.04.18 13:32 Сейчас в теме
(7)- таймаут на бездействие.. зачем принудительное с клавиатуры, сканера (6)..

Сергей, не понял... Как "зачем" - ? Как по другому? Ну, таймаут на бездействие, включился режим заставки, все так сейчас и есть. А выключить заставку и перейти к работе прайсчекера, как по таймеру?
А так, поднесли товар ШК к сканеру, "пикнуло", по внешнему событию заставка выключилась, отработала процедура поиска товара и вывела инфу на экран. Запустился опять таймер из обработки ожидания. Если за период, заданный в константе, внешних событий со сканера не последует, то по истечении времени, опять сработает процедура заставка. Пока заставка "ползает" по экрану, таймер остановлен, может до бесконечности ползать.
10. Cepгей ... (Gkmy) 27 15.04.18 21:49 Сейчас в теме
(9) т.е. речь о выходе из режима: реклама, - в режим: сканировать - верно?
12. Владислав Медведев (M_W_W) 8 15.04.18 21:53 Сейчас в теме
(10)Да, именно так.
Входит в режим заставки сам, по таймеру. Принудительно ввести его в режим заставки нельзя никак, просто нечем(клавы и мыши нет, экран не сенсорный).
14. Cepгей ... (Gkmy) 27 15.04.18 21:58 Сейчас в теме
(12) "Принудительно ввести его в режим заставки нельзя никак", - неверно.. заблуждаетесь.
15. Cepгей ... (Gkmy) 27 15.04.18 22:01 Сейчас в теме
(12) погодите.. так мы о "в режим заставки" (12) - о заставке или о скринсэйверах?
16. Владислав Медведев (M_W_W) 8 15.04.18 22:31 Сейчас в теме
(15)Назовите как хотите, скринсэйвер, заставка... Какая разница? Суть одна - вместо рабочего окна, появляется черный экран, по которому "плавает" строчка текста: "Отсканируйте ШтрихКод проверяемого товара", еще и изменяя свой цвет. По сути, это хранитель экрана, скринсэйвер. Или заставка, так в винде он называется.
И ничего я не заблуждаюсь, как можно что-то сделать принудительно, если банально нечем? Органов управления нет.
17. Владислав Медведев (M_W_W) 8 15.04.18 22:42 Сейчас в теме
(15)Еще раз повторюсь - у меня не было задачи выводить на прайс-чекер в период бездействия рекламу, или еще что-то. Какой смысл на малюсеньком 8-ми дюймовом мониторчике? Кто ее увидит? Поэтому, ограничился плавающей строкой, чисто как хранитель экрана. Если-бы это все хозяйство на локальной машине крутилось, то вообще бы ничего делать не стал-бы, штатного хранителя экрана Windows(закладка "заставка" в параметрах экрана) хватило-бы. Но, в терминале штатный хранитель не передается с сервера, просто чернеет экран. А просто черный экран - не понятно, включен он или выключен. Поэтому и пришлось делать в 1С.
18. Cepгей ... (Gkmy) 27 16.04.18 01:03 Сейчас в теме
(17)
ну и славно.. кстати, здесь за ответы только мне не начисляют?
19. Cooler Silent (Cooler) 20 16.04.18 01:18 Сейчас в теме
(18)
здесь за ответы только мне не начисляют?
Не только - сообщения в комментариях к публикациям в принципе бесплатны.
20. Cepгей ... (Gkmy) 27 16.04.18 09:54 Сейчас в теме
(19)
спасибо.. в таком случае продолжение здесь: https://forum.infostart.ru/forum9/topic190745/
2. Владислав Медведев (M_W_W) 8 01.04.18 15:48 Сейчас в теме
Может чуть не по теме, а кто знает, как вообще "скринсейвер с рекламой" включить? В RDP(Serwer 2003 r2), имеется в виду... Не могу добиться "рекламы"(ну, просто бегущая строка Отсканируйте ШтрихКод!), вместо этого черный экран, и все...По внешнему событию и Wscript пробуждается, тут вопросов нет.
8. Cepгей ... (Gkmy) 27 15.04.18 12:29 Сейчас в теме
(2)
Может чуть не по теме, а кто знает, как вообще "скринсейвер с рекламой" включить?
штатные сейверы для рекламы примитивны.. как вариант:
* прямо в 1с:предприятии рисовать,.. в окне без ничего, например так:



* или с браузером интегрировать, так еще шире возможности.
* если же есть возможность промежуточный сервер поднять - тогда вообще безграничные просторы для творчества.
3. Dmitry Vidmanov (etmarket) 386 02.04.18 14:10 Сейчас в теме
Здравствуйте. Почитайте в документации к публикации по ссылки: https://infostart.ru/public/317212/
Файл можно скачать бесплатно.
4. Владислав Медведев (M_W_W) 8 14.04.18 21:34 Сейчас в теме
Понятно.
В общем, я пошел по пути "изобретения велосипеда". Заставку написал на 1С. Цели выводить рекламную информацию, у меня не стояло. Да и какая может быть реклама на 8" мониторе? Просто "плавающая" строка "Отсканируйте ШтрихКод проверяемого товара". Плавно перемещается по всему экрану, меняя цвет.
Крутится это все в терминальной сессии, на "тонком" клиенте, собранном из "мусора" конца прошлого века, из самой 1С. С помощью Formexa, растянуто окно на весь экран и убрано все лишнее, в том числе рамка и заголовок окна, и курсор мыши. Клиент под WtWare, без жесткого диска, загрузчик с флешки, далее все по сети. На клиенте из средств ввода/вывода - только монитор. Ни клавы, ни мышки нет. Включается кнопкой, выключается сканированием ШК со специально напечатанной карточки. В общем, практически "аппаратный" прайс-чекер получился :-)
Основной экран:

Заставка:
5. Dmitry Vidmanov (etmarket) 386 14.04.18 23:48 Сейчас в теме
(4) отличное решение 👍 Прекрасное занятие для развлечения. Я тоже собрал из компьютерного хлама 3 прайс-чекера, которые вешаются на стену. С экраном, на котором крутится реклама, когда устройство висит без дела. Было весело :-) Напишите свою статью о реализации. С удовольствием прочитаю.
6. Владислав Медведев (M_W_W) 8 15.04.18 11:28 Сейчас в теме
Да что там писать в статье... ИМХО, на статью это не тянет.
Ставить полноценную машину, с операционной системой, под это дело, как-то не рационально показалось. Все равно все пользователи работают в терминальном режиме, через RDP. Стал изучать, как тонкого клиента из металолома собрать, и чтоб при этом он работал :-))))
Наткнулся поиском на вот это: http://wtware.ru/ . Попробовал установить, на сервер 2003 R2. Не ставится, ошибку выдает! Попробовал более раннюю версию - сразу получилось. Зарегился у них на форуме, обсудил с автором этого чуда, выяснилось, что 2003 сервак ему просто лень поддерживать: https://forum.wtware.ru/viewtopic.php?f=1&t=20363 - ссылка на тему на их форуме, где я это обсуждал. Ну, да ладно - функционала, который заложен в последней работающей на 2003 сервере версии, 5.6.24, мне для текущей задачи более, чем достаточно. Да, ВТварь - платная, но, даже если покупать одну(с количеством цена уменьшается) лицензию, всего 1000 руб. стоит. Это на порядок дешевле операционки для компа. Для "поиграться" есть демо-режим, полноценно работает, только банер по правому краю экрана.

По настройкам самой ВТвари, у них подробно расписано, пересказывать не вижу смысла. Единственное, надо обратить внимание на три момента:
1. Разрешение экрана, под тот монитор, который будет работать. В моем случае, это 800 Х 600, 8-ми дюймовый моник от кассы.
2. Параметр "shell" - в нем прописываем строку запуска 1С, вот в таком виде: "C:\Program Files\1Cv77\BIN\1cv7.exe" enterprise /DD:\1C_Base\KKS_molotok /NKiosk
это нужно для того, что-бы 1С сама стартовала, без рабочего стола.
3. Параметр "turnoffmenu" - ставим "poweroff", для того, что-бы при выходе из 1С, клиент завершал корректно терминальную сессию.
Ну, COM порт сканера пробрасывается на сервер штатно, в ВТваре все для этого есть.

В самой обработке(за основу взята Ваша) при открытии, подгружается Formex, и вот эти строчки добавлены:
Окно.НаПереднийПлан(Форма); 
   	Окно.Максимизировать(Форма);
  	Окно.ЦентрироватьОкно(Форма);
  	Окно.ПоказыватьСтрокуСостояния(0);
   	Окно.СтильОкна(Форма,2); // убираем заголовок окна и рамку
   	Расш.УстановитьКурсор(КаталогИБ() + "cur.cur"); // устанавливаем прозрачный курсор из файла, что-бы штатный не мешал.
 	Расш.ОбработкаОжидания("Заставка",1000 * Константа.ВремяЗастКиоска); // в константе задается время срабатывания заставки в секундах.


Процедура "Заставка()" сделана на основе одной из публикаций с ИнфоСтарта, "бегущая строка", только добавлено еще и вертикальное перемещение, плавает с лева на право, опускается вниз постепенно, доходит до низу, начинает подниматься вверх, и т.д.

Выключение:
Процедура ЗакрытьПринудительно()
	Форма.Закрыть(0);
	ЗавершитьРаботуСистемы(0);	
КонецПроцедуры

В обработку внешнего события добавлено:
	Если Штрихкод 	= "9999999999994" Тогда   // ШтрихКод для выключения терминала
		глСканерПосылкаДанных(1);
	    ЗакрытьПринудительно();
	КонецЕсли;
Показать

В общем-то, и все.
Да, кто не понял для чего пришлось "огород городить" с заставкой на 1С, почему нельзя было использовать заставку Windows...
Да все по тому, что в терминальную сессию заставка с сервера не транслируется, во всяком случае в 2003 сервере.
Если включаешь режим заставки на рабочем столе пользователя, то при консольном входе она есть, а при терминальном, на клиенте просто гаснет экран...
Как-то победить это мне не удалось, поэтому просто отключил заставку в Windows, и "нарисовал" ее в самой 1С. Соответственно, выходит из "спячки" просто по внешнему событию, и никакие скрипты для пробуждения из Вашей разработки не используются.
etmarket; Gkmy; +2 Ответить
13. Cepгей ... (Gkmy) 27 15.04.18 21:57 Сейчас в теме
(12) к сожалению, здесь нет возможности вставить видео, чтобы показать разницу между
21. Елена Пименова (Bukaska) 125 16.04.18 11:54 Сейчас в теме
(13)Вставка ссылки не работает?
22. Cepгей ... (Gkmy) 27 16.04.18 13:56 Сейчас в теме
(21)
Вставка ссылки не работает?

видео
23. Елена Пименова (Bukaska) 125 16.04.18 16:00 Сейчас в теме
(22)всё работает. А вы использовали тег цитаты, а не тег ссылки
24. Cepгей ... (Gkmy) 27 16.04.18 19:57 Сейчас в теме
(23)
спасибо.. позже проэкспериментирую с тегами
Оставьте свое сообщение