INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Бобрышов Александр | Ведущий программист | ООО "Проф ИТ"

«Как организовать консолидацию данных из трёх десятков предприятий не привлекая программистов на местах?»

Давайте представим, что у нас есть "зоопарк" из разных конфигураций 1С, от разных организаций одного холдинга, занимающихся совершенно непохожей деятельностью (от промышленного производства до туристической деятельности). Бухгалтерские данные должны стекаться из этих предприятий в управляющую компанию, учет в которой ведется в системе, принципиально отличающейся от 1С. Некоторые дочерние организации работают на решениях без штатных программистов и находятся за 1000+ км. Я расскажу, какую архитектуру и технологии выбрать для такого обмена. Как наладить выгрузку данных по одной кнопке без изменения конфигурации предприятия. Как создавать и модифицировать правила обмена для разных предприятий из офиса управляющей компании. Как следить за состоянием обмена из единого центра управления.

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

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

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

Описание

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

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

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

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

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

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

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

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

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

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

Установка

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


2

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

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

Сергей, не понял... Как "зачем" - ? Как по другому? Ну, таймаут на бездействие, включился режим заставки, все так сейчас и есть. А выключить заставку и перейти к работе прайсчекера, как по таймеру?
А так, поднесли товар ШК к сканеру, "пикнуло", по внешнему событию заставка выключилась, отработала процедура поиска товара и вывела инфу на экран. Запустился опять таймер из обработки ожидания. Если за период, заданный в константе, внешних событий со сканера не последует, то по истечении времени, опять сработает процедура заставка. Пока заставка "ползает" по экрану, таймер остановлен, может до бесконечности ползать.
10. Gkmy 27 15.04.18 21:49 Сейчас в теме
(9) т.е. речь о выходе из режима: реклама, - в режим: сканировать - верно?
12. M_W_W 8 15.04.18 21:53 Сейчас в теме
(10)Да, именно так.
Входит в режим заставки сам, по таймеру. Принудительно ввести его в режим заставки нельзя никак, просто нечем(клавы и мыши нет, экран не сенсорный).
14. Gkmy 27 15.04.18 21:58 Сейчас в теме
(12) "Принудительно ввести его в режим заставки нельзя никак", - неверно.. заблуждаетесь.
15. 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. Gkmy 27 16.04.18 01:03 Сейчас в теме
(17)
ну и славно.. кстати, здесь за ответы только мне не начисляют?
19. Cooler 20 16.04.18 01:18 Сейчас в теме
(18)
здесь за ответы только мне не начисляют?
Не только - сообщения в комментариях к публикациям в принципе бесплатны.
20. 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. Gkmy 27 15.04.18 12:29 Сейчас в теме
(2)
Может чуть не по теме, а кто знает, как вообще "скринсейвер с рекламой" включить?
штатные сейверы для рекламы примитивны.. как вариант:
* прямо в 1с:предприятии рисовать,.. в окне без ничего, например так:



* или с браузером интегрировать, так еще шире возможности.
* если же есть возможность промежуточный сервер поднять - тогда вообще безграничные просторы для творчества.
3. etmarket 410 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. etmarket 410 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. Gkmy 27 15.04.18 21:57 Сейчас в теме
(12) к сожалению, здесь нет возможности вставить видео, чтобы показать разницу между
21. Bukaska 126 16.04.18 11:54 Сейчас в теме
(13)Вставка ссылки не работает?
22. Gkmy 27 16.04.18 13:56 Сейчас в теме
(21)
Вставка ссылки не работает?

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