Вывод информации на второй дисплей (дисплей покупателя)

25.07.16

Интеграция - Периферийные устройства

Программа для обеспечения взаимодействия 1С со вторым дисплеем.

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

Наименование Файл Версия Размер
SecondMonitor.exe
.exe 43,50Kb
72
.exe 43,50Kb 72 Скачать
SecondMonitorXP.exe
.exe 43,50Kb
5
.exe 43,50Kb 5 Скачать

Столкнулся с необходимостью выводить информацию на второй дисплей для покупателей. Написал внешнюю программу для реализации данной задачи. Программа читает файл, находящийся в папке с программой 1.htm, и, если  дата записи файла была изменена с момента последнего отображения, то тогда отображает его на экране. При запуске программы она автоматически запускается на втором мониторе и через 10 секунд разворачивается во весь экран. Если второй монитор отключен, то запуск произойдет на основном мониторе. Тогда пользователь должен успеть включить второй и перетащить на него за десять секунд или закрыть программу и запустить ее после включение дополнительного монитора. Если не успели закрыть программу до ее разворачивания на весь экран, то закрыть можно через стандартную комбинацию клавишь Alt F4. Интервал проверки файла на изменения 1 секунда. Файл 1.htm созадется из табличного документа и это позволяет вывести любую информацию на дисплей стандартными средствами 1С, исключая, разве что видео(для этого уже нужно формировать файл вручную). Для работы программы необходим Net Frame Work (для XP версия 4.0, для Vista и выше 4.5.2), как правило, он в системе уже установлен при установке других прогрмм.

Пример вывода заказа покупателя для конфигурации 1С:УПП

Перем ВторойДисплей,МакетВторойДисплей,МакетРеклама;

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

Процедура ВывестиИнформациюНаВторойДисплей()
	Если Товары.Количество()+Услуги.Количество()=0 Тогда
		Возврат;
	КонецЕсли;	
	ТабДок=Новый ТабличныйДокумент;
	Область=МакетВторойДисплей.ПолучитьОбласть("Шапка");
	Область.Параметры.Ссылка=Ссылка;
	ТАбДок.Вывести(Область);
	Итого=0;
	НомерСтроки=1;
	Для каждого СтрокаТЧ из Товары Цикл
		Область=МакетВторойДисплей.ПолучитьОбласть("Строка");
		Область.Параметры.Заполнить(СтрокаТЧ);
		Область.Параметры.НомерСтроки=НомерСтроки;
		НомерСтроки=НомерСтроки+1;
		Итого=Итого+СтрокаТЧ.Сумма;
		ТабДок.Вывести(Область);
	КонецЦикла;
	Для каждого СтрокаТЧ из Услуги Цикл
		Область=МакетВторойДисплей.ПолучитьОбласть("Строка");
		Область.Параметры.Заполнить(СтрокаТЧ);
		Область.Параметры.НомерСтроки=НомерСтроки;
		НомерСтроки=НомерСтроки+1;
		Итого=Итого+СтрокаТЧ.Сумма;
		ТабДок.Вывести(Область);
	КонецЦикла;
	Область=МакетВторойДисплей.ПолучитьОбласть("Подвал");
	Область.Параметры.Итого=Итого;
	ТабДок.Вывести(Область);
        ТабДок.Вывести(МакетРеклама.ПолучитьОбласть("Реклама"));
	Попытка
		ТабДок.Записать("C:\secondmonitor\1.htm",ТипФайлаТабличногоДокумента.HTML);
	Исключение
		
	КонецПопытки;
КонецПроцедуры

Процедура ОбработкаВыбора(ЗначениеВыбора, Источник) Экспорт

	Если ВторойДисплей Тогда
		ВывестиИнформациюНаВторойДисплей();
	КонецЕсли;	
	
КонецПроцедуры // ОбработкаВыбора()

Процедура ПриЗакрытии()

	Если ВторойДисплей Тогда
		ТабДок=Новый ТабличныйДокумент;
                ТабДок.Вывести(МакетРеклама.ПолучитьОбласть("Реклама"));
		Попытка
			ТабДок.Записать("C:\secondmonitor\1.htm",ТипФайлаТабличногоДокумента.HTML);
		Исключение
			
		КонецПопытки;
	КонецЕсли;
	
КонецПроцедуры // ПриЗакрытии()

Процедура ТоварыПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
	
        Если ВторойДисплей Тогда
		ВывестиИнформациюНаВторойДисплей();
	КонецЕсли;	
		
КонецПроцедуры // ТоварыПриОкончанииРедактирования()

Процедура ТоварыПослеУдаления(Элемент)
	
        Если ВторойДисплей Тогда
		ВывестиИнформациюНаВторойДисплей();
	КонецЕсли;	

КонецПроцедуры // ТоварыПослеУдаления()

Процедура УслугиПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)

	Если ВторойДисплей Тогда
		ВывестиИнформациюНаВторойДисплей();
	КонецЕсли;	

КонецПроцедуры // УслугиПриОкончанииРедактирования()

Процедура УслугиПослеУдаления(Элемент)

	Если ВторойДисплей Тогда
		ВывестиИнформациюНаВторойДисплей();
	КонецЕсли;	

КонецПроцедуры // УслугиПослеУдаления()




В 

Второй дисплей второй экран второй монитор

См. также

Распознавание номеров автомашин с ip - камер, видео, фото

Распознавание документов и образов Периферийные устройства Автомобили, автосервисы Россия Платные (руб)

Программа считывает кадры с ip-камер (http - запрос к камере), видео, фото (источники кадров (нет ограничения на их количество) настраивается в конфигурационном файле), находит и распознает номера автомашин и сохраняет в базу db, с сохранением фото номера и автомашины, а также времени детекции.

20400 руб.

31.05.2023    3803    2    1    

3

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

Инструментарий разработчика Периферийные устройства Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Внешняя обработка получения изображения с веб-камеры с возможностью его кадрирования по произвольно выделенной области. Использует собственную внешнюю компоненту на основе библиотеки AForge. Содержит примеры интерактивного взаимодействия с полем HTML.

20.03.2024    326    1    AndSem    1    

3

Прямая печать на принтерах TSC из 1С

Периферийные устройства Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Прямая печать на принтерах TSC из 1С при вызове с сервера позволяет печатать из тонкого клиента, мобильного клиента и веб-клиента. Потребуется установка драйвера и библиотеки для отправки команд на этот драйвер.

1 стартмани

19.02.2024    533    3    realslavyan    0    

5

HotKeys на Python для 1С

Периферийные устройства Конфигурации 1cv8 Бесплатно (free)

Недавно прочитал статью на Инфостарте о KeyPad и вначале захотел себе такой, но через какое-то время я понял, что дополнительная даже маленькая клавиатура занимает место, и нужно все время держать ее под рукой. Это все создает дополнительные неудобства.

20.12.2023    4932    John_d    25    

70

Очистка очереди печати конкретного принтера

Периферийные устройства Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Очистка очереди печати выбранного принтера, перезапуск службы печати, вывод списка системных принтеров, открытие свойств принтера из 1С.

1 стартмани

07.11.2023    1257    1    vsnazarov    1    

26

Печать этикеток на DYMO LabelManager 280 через DYMO Connect Web Service

Периферийные устройства WEB-интеграция Этикетки, ценники Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

На сайте производителя принтера DYMO LabelManager 280 вместе с драйвером поставляется пакет DYMO Connect, который предлагает функционал вёрстки этикеток в фирменном формате и отправки их напрямую на принтер. Так же в этом пакете есть веб-сервис для взаимодействия с принтером через HTTP-запросы, о котором и пойдет речь в этой статье.

29.08.2023    1460    GeraltSnow    0    

3

Второй монитор в качестве дисплея покупателя

Розничная торговля Периферийные устройства Платформа 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Использование второго монитора в качестве дисплея покупателя. Выполнено в качестве расширения.

1 стартмани

02.02.2023    3192    25    windsurf    4    

5
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. zaliznyj 21.12.16 13:32 Сейчас в теме
Что бы вывести информацию на второй монитор достаточно скачать и установить файл SecondMonitor.exe ?
2. Bienko 212 21.12.16 21:14 Сейчас в теме
Добрый вечер! Не совсем! SecondMonitor.exe выводит html файл, который расположен в его папке. Сам же файл вам нужно формировать самостоятельно. Оптимальный вариант через табличный документ. В описании пример формирования такого файла для заказа конфигурации УПП.
3. zaliznyj 21.12.16 22:39 Сейчас в теме
(2)Если не подключон второй монитор то SecondMonitor.exe не запустится? Под рукой нету второго монитора не могу понять. все ли я правильно сделал
4. Bienko 212 22.12.16 07:15 Сейчас в теме
Она запуститься, но на основном дисплее. Через несколько секунд она развернется на весь экран. Крестика не будет (после развертывания). Закрыть можно через ATL-F4
5. zaliznyj 23.12.16 09:18 Сейчас в теме
(4)Доброе утро Максим! Спасибо за SecondMonitor.exe. Установил без особых проблем. Работает все супер. Дешево просто и еффективно. Очень хорошая получилась обработка для вывода на монитор покупателя. Очень доволен. Оправдала все мои надежды. Большое спасибо за решение мох проблем!!!!

При установке возникло две маленьких проблемы:
1. Я как чайник не сообразил что ( ПолучитьОбщийМакет("ВторойДисплей");) Макеты нужно создать самому.
2. В описании примера В строке кода МакетРекама=ПолучитьОбщийМакет("Реклама") в процедуре Процедура ПриОткрытии() пропущена буква Л. Долго не мог открыть Макет реклама. Говорю что ЧАЙНИК. Поэтому не удивляйтесь.

Есть еще одна проблемка при запуске SecondMonitor.exe
- ЗапуститьПриложение("C:\secondmonitor\secondmonitor.exe")
Приложение открывается но URL-Адрес указывается не правильно Берется из каких то предварительных настроек. Поэтому запустить его можно только вручную
Нельзя ли Исправить?

6. Bienko 212 23.12.16 14:02 Сейчас в теме
Добрый день! По поводу ЗапуститьПриложение("C:\secondmonitor\secondmonitor.exe"). У меня везде прописано в автозапуске операционной системы. Менеджеры приходят на работу и при включении компьютера программа сразу запускается и целый день работает. Так запускается нормально. Сам путь берется из пути запуска программы. В самой команде ЗапуститьПриложение(<СтрокаКоманды>, <ТекущийКаталог>, <ДождатьсяЗавершения>, <КодВозврата>) есть ТекущийКаталог. Попробуй его указать "C:\secondmonitor\". Самой простой вариант (кто его знает как 1с запускает, может и в темп копирует предварительно или еще чего) запускать не саму программу тогда, а bat файл, а уже из него запускать программу. Так должно работать, даже если 1с будет этот батник куда-то копировать.
7. Bienko 212 23.12.16 14:04 Сейчас в теме
Еще может быть на момент запуска файл в папке программы не существует (если вы его программно удаляете в каких-то случаях)
8. zaliznyj 23.12.16 15:09 Сейчас в теме
Спасибо. Открывается програмно без проблем.
9. hajiyevrr 23.02.17 14:37 Сейчас в теме
10. TODD22 18 09.08.17 09:18 Сейчас в теме
Здравствуйте.

Почему может не отображать содержимое?
В каталоге C:\secondmonitor\ есть файл 1.htm. Браузером открывается.
Но после запуска открывается окно в котором написано что не удалось отобразить страницу, не верный путь ли попробуйте обновить и тд.
В чём может быть проблема?
11. Bienko 212 09.08.17 13:36 Сейчас в теме
Добрый день! По вашему описанию все должно работать. Пришлите файл 1.htm, - я его у себя проверю.
12. TODD22 18 11.08.17 07:05 Сейчас в теме
Всё отлично заработало. Проблема была в том что файл secondmonitor лежал не в той же папке что и файл 1.htm.
13. TODD22 18 11.08.17 08:16 Сейчас в теме
А чем сделано отображение html файла?
У меня в браузере файл выглядит не так как в secondmonitor.
Между табличной частью и картинкой у меня есть отступ. В браузере(хром и IE) он меньше. А когда открываю монитором то отступ увеличивается в 2 раза....
14. maipochta 10.05.18 18:19 Сейчас в теме
видео пробовал кто-нибудь выводить? Попробовал несколько способов в hml файле, не сработало.
15. unknown181538 151 01.10.20 21:43 Сейчас в теме
Спасибо! Все получилось!
Прикрепленные файлы:
16. vis_tmp 32 11.08.21 09:21 Сейчас в теме
Скачал, проверил - работает!
Большое спасиоб автору.
17. vitaliysv 13.08.21 15:59 Сейчас в теме
Спасибо, работает. Только вот запускается всегда на 1 мониторе. Так и на понял как переделать
18. Bienko 212 14.08.21 09:42 Сейчас в теме
(17), Странно, операционная система должна запоминать на каком мониторе закрывалось приложение и восстанавливать его на нем. На десятке и семерке у нас нормально работает. Может приложение не закрывали, а просто выключали монитор или компьютер и он не запоминает...
19. TimkoNzt 16.11.22 10:57 Сейчас в теме
Приветствую. Не планируете ли исходники выложить в открытый доступ? Утилита хорошая, но немного доработав её можно сильно расширить её возможности. Например задавать через параметры варианты отображения - полноэкранный/без рамки/обычный, напрямую указывать координаты отображения, задавать напрямую номер дисплея для отображения, открывать в оконном режиме поверх других окон, прикреплять картинку к одному из углов экрана, закрывать по таймауту и т.д. Понимаю, что и сам смогу сделать это за два вечера, но зачем если уже есть наработки.
20. Bienko 212 16.11.22 20:21 Сейчас в теме
Добрый вечер! Их уже нет, - давно это было. Уже компа два с тех пор поменял, да и не имеет это смысла. Там в коде может строк на тридцать... На форме кинута компонента веб браузера. Поставлен таймер для вывода в эту компоненту с определенным интервалом файла с диска. И, наверное, самый большой кусок кода относиться к разворачиванию на втором дисплее. Без авто разворачивания на втором дисплее, так и вообще, несколько строк кода. Примеры кода по выводу формы на второй дисплей легко ищется в поисковике. Я ее написал минут за тридцать на C# и это при этом, что до этого на шарпе вообще ничего не писал. А в школе учил бейсик и паскаль.
TimkoNzt; +1 Ответить
21. decide 22.12.22 12:41 Сейчас в теме
Супер, благодарю автора.
Реализовали на POS-терминалах Атол с дисплеем покупателя настоящий чекаут =) все интерактивно при работе с покупателем.
При оплате BNPL отображаем QR для оформления оплаты, после пробития чека QR на электронный чек.
Прикрепленные файлы:
tishin2015; +1 Ответить
23. tishin2015 04.01.23 13:56 Сейчас в теме
(21)Добрый вечер, интересует данное решение. На кассе крутится фронтол 6. Можно как нибудь данное решение к фронтолу прикрутить. Думал поставить эмулятор дисплея на СОМ. Собирать инфу в файл потом выдавать. Может есть у кого нибудь готовое решение. Буду благодарен.
30. user750796 22.06.23 16:05 Сейчас в теме
(23) Добрый день! Подскажите, нашли ли вы решение под Frontol? Только меня используется xPOS3
31. tishin2015 26.06.23 09:29 Сейчас в теме
(30) Добрый день, средствами Фронтол 6 всё реализовал. На ХПОС не знаю. Нужен второй видеовыход на компе. В документации к фронтолу всё описано было
(23)
(30)
22. tishin2015 02.01.23 17:28 Сейчас в теме
Добрый вечер, интересует данное решение. На кассе крутится фронтол 6. Можно как нибудь данное решение к фронтолу прикрутить. Думал поставить эмулятор дисплея на СОМ. Собирать инфу в файл потом выдавать. Может есть у кого нибудь готовое решение. Буду благодарен.
24. TimkoNzt 26.02.23 19:33 Сейчас в теме
Всем привет. Моё решение для отображения на втором мониторе на гитхаб
Особенности:
1) Больше возможностей по выводу через командную строку: на любой монитор, в развернутом виде или в любое место на экране (координаты задаются в абсолютных значениях независимо от пользовательского масштаба)
2) Есть отображение поверх остальных окошек. У нас например на втором мониторе уже крутится реклама в режиме поверх всех окон.
3) Закрытие по таймауту и/или принудительно через отдельный ключ.
4) Можно показывать заранее подготовленный html или изображение по любому заданному пути. При подмене изображения это сразу будет отражено в окне приложения. Таким образом можно что-то рисовать при успешной операции.
25. SpideRus 09.04.23 16:09 Сейчас в теме
26. TimkoNzt 15.04.23 22:13 Сейчас в теме
(25) Претензии к редиректу инфостарта. Попробуйте так github.com/TimkoNZT/ShowQRCodeApp/releases
27. SpideRus 17.04.23 19:44 Сейчас в теме
(26) По ссылке програ для показа QR кода. ShowQRCodeApp - это оно?
TimkoNzt; +1 Ответить
28. YA_1130000057973079 24.04.23 08:56 Сейчас в теме
У нас клиент-серверная база, и мы в магазинах работаем с тонкого клиента. Подскажите, пожалуйста, как указать путь на тонком клиенте.
29. Bienko 212 24.04.23 12:24 Сейчас в теме
(28) Если работаете с тонкого клиента на локальном компьютере (а не RDP или RemoteAPP), то проблем нет. Папку с программой размещаете на каждом компьютере. В коде нужно сохранять табличный документ в процедуре c директивой &НаКлиенте. Формирование же самого табличного документа проводить на сервере (так как нужны данные) и передача уже готового табличного документа на клиент для сохранения. Собственно говоря, у нас так в отделе продаж и работает.
32. Imv 19.10.23 08:53 Сейчас в теме
Классно !!!
А можно сделать задержку разворачивания на полный эхкран меньше ?!
Или сразу разворачивать на полный экран !
33. Bienko 212 19.10.23 21:48 Сейчас в теме
Добрый вечер! Как я уже писал раньше, - у меня уже и исходников нет. Если бы были, то изменить задержку было бы не сложно.
34. Imv 21.10.23 09:53 Сейчас в теме
:) Есть повод повториь подвиг !!! Тем более, что тема, по всему, востребована...
35. dvoryadkin_sa 03.12.23 22:59 Сейчас в теме
Здравствуйте! Хочу реализовать дисплеи покупателей у себя на ТТ но не совсем понятно как правильно это сделать ? Может кто нибудь помочь ?
36. map4uk 07.12.23 15:44 Сейчас в теме
Ох, тоже думаю как реализовать в магазине такое.
Оставьте свое сообщение