bdd2

VGA-эмулятор дисплея покупателя

Опубликовал Евгений Баинов (bainov) в раздел Программирование - Внешние компоненты

COM-объект предназначен для эмуляции дисплея покупателя на дополнительном экране компьютера.
Совместима с  "1С:Управление торговлей 10.3", "1C:Розница 1.0", "1C:Комплексная автоматизация 1.1".

Версия 1.1.4

COM-объект предоставляет возможность эмулировать дисплей покупателя на втором мониторе компьютера.

 

Возможности:

  • Отображение текущего времени и даты.
  • Показ слайд-шоу из указанного в настройках каталога с изображениями в формате JPG. По умолчанию показываются пейзажи озера Байкал.
  • Показ произвольного изображения из файла.

Плюсы: 

  • Нет необходимости покупать специализированный дисплей покупателя, если есть возможность подключить к компьютеру второй дисплей.
  • По стоимости это может оказаться дешевле, при этом выглядеть намного презентабельнее.
  • Можно отображать рекламу в режиме слайд-шоу. Это может повысить вероятность спонтанных покупок в прикассовой зоне.
  • Можно подключить к УТ 10 безо всяких доработок конфигурации.
  • Разработчик может организовать в своем решении возможность демонстрации на втором дисплее произвольных изображений.
  • Например, в нашем решении для общепита мы демонстрируем изображение блюда во время подбора блюд в заказ.

Порядок установки:

  1. Скачать файл RBSDisplayFree.dll
  2. Запустить командную строку от имени администратора, используя команду regsvr32, зарегистрировать файл RBSDisplayFree.dll
    Например: regsvr32  "путь к компоненте"\RBSDisplayFree.dll 
  3. Используя обработку обслуживания подключить компоненту к типовой конфигурации.

 

Пример использования 1:

Драйвер.SetDisplay(2); //Устанавливаем дисплей для управления. 1- основной дисплей , 2- второй дисплей и т.д. Номер дисплея как в настройках Windows
Драйвер.SetHeader("Торговый дом ""Комплексный""");//Заголовок с названием организации
Драйвер.SetPicturePath("C:\Pictures");//Каталог с картинками JPG для слайдшоу. Желательно предварительно подготовить для уменьшения искажения при растягивании.
//Картинки отображаются в нижней части дисплея и подгоняются под размер области отображения.
Драйвер.SetDelay(10);//ставим период обновления картинки в слайд-шоу. в данном случае 10 секунд.
Драйвер.Initialize();//Применяем настройки инициализации

//Выводим строки на дисплей
Сообщение = Новый Соответствие;
Сообщение.Вставить("Строка1","Вафли 450гр. 45-00р.");
Сообщение.Вставить("Строка2","Сумма       125-00р.");
Результат = Драйвер.ShowPage("",Сообщение);


Пример использования 2:

Драйвер.SetDisplay(2); //Устанавливаем дисплей для управления. 1- основной дисплей , 2- второй дисплей и т.д. Номер дисплея как в настройках Windows
Драйвер.SetHeader("Торговый дом ""Комплексный""");//Заголовок с названием организации
Драйвер.SetPicturePath("C:\Pictures");//Каталог с картинками JPG для слайдшоу. Желательно предварительно подготовить для уменьшения искажения при растягивании.
//Картинки отображаются в нижней части дисплея и подгоняются под размер области отображения.
Драйвер.SetDelay(10);//ставим период обновления картинки в слайд-шоу. в данном случае 10 секунд.
Драйвер.Initialize();//Применяем настройки инициализации

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

Результат = Драйвер.ShowLines("Вафли 450гр. 45-00р.","Сумма       125-00р.");


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

Наименование Файл Версия Размер
RBSDisplayFree.dll
.dll 4,72Mb
02.07.15
34
.dll 1.1.4 4,72Mb 34 Скачать
Обработка обслуживания для Компексной автоматизации 1.1, Розница 1.0, Управление торговлей 10.3
.epf 20,89Kb
22.05.15
32
.epf 1.0.1 20,89Kb 32 Скачать
Краткое руководство пользователя
.pdf 159,03Kb
02.07.15
24
.pdf 1.1.3 159,03Kb 24 Скачать

См. также

Добавить вознаграждение
Комментарии
2. Евгений Баинов (bainov) 99 09.03.15 09:42 Сейчас в теме
Документация.


ShowImage(imageDestination);
Функция вывода изображения на дисплей
Входные параметры:
imageDestination - строка (BSTR), путь к изображению, включая имя и расширения файла
Возвращаемое значение: TRUE (ИСТИНА) при успешном выполнении функции и FALSE (ЛОЖЬ) при возникновении ошибки

Close();
Функция освобождения захваченного дисплея
Возвращаемое значение: TRUE (ИСТИНА) при успешном выполнении функции и FALSE (ЛОЖЬ) при возникновении ошибки

SetTheme(themePath);
Функция установки пути к файлу темы
Входные параметры:
themePath - строка (BSTR), путь к файлу темы
Возвращаемое значение: TRUE (ИСТИНА) при успешном выполнении функции и FALSE (ЛОЖЬ) при возникновении ошибки

SetDisplay(displayNumber);
Функция установки номера захватываемого дисплея.
Входные параметры:
displayNumber - число (LONG), номер дисплея (отсчет начинается с единицы)
Возвращаемое значение: TRUE (ИСТИНА) при успешном выполнении функции и FALSE (ЛОЖЬ) при возникновении ошибки

GetVersion();
Функция возвращает версию компоненты
Возвращаемое значение: строка (BSTR), версия компоненты

Настройка стандартной темы:
SetFont1(fontName);
Функция установки шрифта для первой строки
Входные параметры:
fontName - строка (BSTR), имя шрифта
Возвращаемое значение: TRUE (ИСТИНА) при успешном выполнении функции и FALSE (ЛОЖЬ) при возникновении ошибки

SetFont2(fontName);
Функция установки шрифта для второй строки
Входные параметры:
fontName - строка (BSTR), имя шрифта
Возвращаемое значение: TRUE (ИСТИНА) при успешном выполнении функции и FALSE (ЛОЖЬ) при возникновении ошибки

SetHeader(headerLine);
Функция установки заголовка страницы
Входные параметры:
headerLine - строка (BSTR), заголовок страницы
Возвращаемое значение: TRUE (ИСТИНА) при успешном выполнении функции и FALSE (ЛОЖЬ) при возникновении ошибки

SetPicturePath(directoryPath);
Функция установки пути к каталогу с изображениями для слайд-шоу. Загружаются десять первых файлов в формате *.jpg
Входные параметры:
directoryPath - строка (BSTR), путь каталога с изображениями
Возвращаемое значение: TRUE (ИСТИНА) при успешном выполнении функции и FALSE (ЛОЖЬ) при возникновении ошибки

SetDelay(interval);
Функция установки интервала смены изображений слайд шоу.
Входные параметры:
interval - число (LONG), время в секундах
Возвращаемое значение: TRUE (ИСТИНА) при успешном выполнении функции и FALSE (ЛОЖЬ) при возникновении ошибки
3. Arshat Amirzhan (Amirzhan) 16.03.15 20:45 Сейчас в теме
4. Бесёнок Инфостарта (Бесёнок Инфостарта) 16.03.15 21:49 Сейчас в теме
5. Николай Борисов (omenfarsh) 57 10.04.15 08:54 Сейчас в теме
У меня драйвер в УТ почему-то не видит?
6. Евгений Баинов (bainov) 99 14.04.15 20:54 Сейчас в теме
(5) omenfarsh, COM-объект создается? Если dll по какой то причине не зарегистрировался - то надо будет руками зарегистрировать.
7. Сергей Дуганов (rounder) 161 26.04.15 21:56 Сейчас в теме
А в терминале будет работать?
8. Евгений Баинов (bainov) 99 28.04.15 17:42 Сейчас в теме
(7) rounder, Должно работать. Только управлять будет дисплеем, подключенном к серверу.
9. Николай Борисов (omenfarsh) 57 28.04.15 20:59 Сейчас в теме
Получилось подключить обработку, всё супер! Никаких дописок и сложных настроек! Полная эмуляция стандартного дисплея покупателя)
Прикрепленные файлы:
10. Sergey Bryuhanov (Bryuhanov) 06.05.15 16:31 Сейчас в теме
Попробовал, классная вещь!!!
11. Евгений Баинов (bainov) 99 09.05.15 03:40 Сейчас в теме
(10) Bryuhanov,
Глюки могли быть из-за несоответствия версий обработки и компоненты.
12. Sergey Bryuhanov (Bryuhanov) 09.05.15 18:53 Сейчас в теме
(11) bainov,
Так, в том то и дело, что регистрировал именно dll из архива с обработкой.
Хотя, может действительно при установке свежей либы старая dll, скачанная из вашей публикации не была удалена.
Dll при установке только в Program Files распаковывается?
Или баг из-за того возник, что дисплей я к Рознице, а не к УТ цеплял, но там различий по работе с ТО, никаких вроде-бы не должно быть?
15. Евгений Баинов (bainov) 99 28.05.15 04:47 Сейчас в теме
Убрали с публикации инсталятор.
Опубликовали новую версию dll и обработку.
16. Сергей Лунин (prolan) 05.06.15 19:21 Сейчас в теме
Отображение, как я понял, идет на весь экран. А если нужно в отдельном окне?
17. Евгений Баинов (bainov) 99 08.06.15 06:40 Сейчас в теме
(16) В следующей версии будет добавлена возможность настройки стиля окна.
также запланирована обратная связь с 1С. Можно будет получать в 1С события от объектов, когда по ним кликают мышкой.
18. Александр М (buka99999) 10.06.15 22:28 Сейчас в теме
bainov А есть версия библиотеки которая будет работать в 1С77. Здесь команда посылается через соответствие, а семерка не знает что это такое.
19. Евгений Баинов (bainov) 99 11.06.15 06:44 Сейчас в теме
(18) Не думали что на 77 понадобится. :)
Добавим в ближайшее время функцию.
20. Александр М (buka99999) 11.06.15 10:05 Сейчас в теме
bainov Былобы неплохо, т.к. на семерке еще много народу работает.
21. mishaPH (mishaPH) 17.06.15 12:07 Сейчас в теме
22. Евгений Баинов (bainov) 99 17.06.15 19:58 Сейчас в теме
(21)(20)
Добавили функцию вывода строк, совместимую с 1С 7.7.
Применение:
//Выводим строки на дисплей
Результат = Драйвер.ShowLines("Вафли 450гр. 45-00р.","Сумма       125-00р.");
23. Константин (Fisherru) 79 24.06.15 08:39 Сейчас в теме
Вопрос. А можно вывести только 2 строки?
И еще, может кто знает сеть "Красное и Белое"? мы уже почти по всей России...
Нами уже несколько лет назад реализован подобный монитор покупателя для 7.7.
Зайдите посмотрите ;-)
Там на мониторе организовано 3 зоны :
с левой стороны отображается прайс на сигареты (можно обновлять в реальном времени).
на правой стороне экрана - сверху реклама (можно как статику так и видео показывать),
а в нижней части отображается накладная - товары приобретаемые на кассе.
Список товаров автоматически прокручивается с выделением цветом товаров без скидки,
там же присутствует сведения о дисконтной карте и сумма накладной меняющаяся с каждым новым товаром
пробитым по кассе...
Да, когда покупок нет какое-то время на весь экран выводится реклама (можно как статику так и видео показывать)
Как только новая накладная - возвращаемся на экран с продажами
Всё самописное :-)
Пример прикреплен.
База чисто рабочая тренировочная так что цены могут быть не корректны и в названиях сигарет - ляпы...
Сигаретная часть серая согласно закона. Раньше была красиво расцвечена также с выделением цветом
различных акционных товаров
Прикрепленные файлы:
24. Константин (Fisherru) 79 24.06.15 08:41 Сейчас в теме
Да, и еще, пропорции зон можно менять программно ;-)
25. Евгений Баинов (bainov) 99 30.06.15 12:30 Сейчас в теме
Бесплатная версия эмулирует работу двухстрочного дисплея покупателя. Полнофункциональная версия может отображать произвольную информацию (таблицы, картинки, графики, анимация). Поддерживается темизация, т.е. пользователь может произвольно настроить внешний вид на свое усмотрение.
Например страницы из тем наших клиентов:
Прикрепленные файлы:
26. Евгений Баинов (bainov) 99 01.07.15 06:07 Сейчас в теме
Пример работы с компонентой в C#:

public partial class Form1 : Form //Описание класса формы
    {
        dynamic component; //создание глобальной переменной без проверки типа
        public Form1() //конструктор формы
        {
            InitializeComponent(); //создание интерфейса формы
            Type display = Type.GetTypeFromProgID("Rbsoft.RBSDisplay2"); //получение типа по заданному ProgId
            component= Activator.CreateInstance(display); //создание экземпляра заданного типа
            component.setDisplay(2); //вызов метода компоненты - установка номера дисплея
            component.Initialize(); //вызов метода компоненты - инициализация параметров
            component.SetPicturePath(@"C:\Users\user\Pictures\Cafe\Ad"); //вызов метода компоненты - установка пути хранения изображений
            component.ShowLines("Вафли 450гр. 45-00р.","Сумма       125-00р."); //вызов метода компоненты - отобразить строки на экране
        }
    }
...Показать Скрыть
27. Евгений Баинов (bainov) 99 02.07.15 08:50 Сейчас в теме
Пример работы компоненты в C++

CoInitialize(NULL); // инициализация СОМ библиотеки
	CLSID clsid;
	HRESULT hr = CLSIDFromProgID(L"Rbsoft.RBSDisplay2", &clsid); // получаем CLSID по известному ProgID

	if (SUCCEEDED(hr)) //если выполнено успешно
	{
		IDispatch * pdisp = (IDispatch *)NULL; //создание указатель на интерфейс СОМ объекта

		hr = CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER, IID_IDispatch, (void **)(&pdisp)); // создание объекта по полученному ранее CLSID

		CComPtr<IDispatch> var = pdisp; //умный указатель для управления СОМ интерфейсом
		CComVariant varResult; //создаем класс-обертку VARIANT для хранения результата выполнения методов

		var.Invoke1(L"SetDisplay", &variant_t(2), &varResult); //вызываем метод SetDisplay с помощью метода Invoke класса IDispatch
		var.Invoke0(L"Initialize", &varResult); //вызываем метод SetDisplay с помощью метода Invoke класса IDispatch

		system("pause");

		var.Invoke1(L"SetPicturePath",&variant_t("C:\Users\vasya\Pictures\Wallpapers\SomeTest"), &varResult); //вызываем метод SetPicturePath
		var.Invoke2(L"ShowLines", &variant_t(L"Вафли 450гр. 45-00р."),&variant_t(L"Сумма       125-00р."),&varResult); //вызываем метод ShowLines

		system("pause");
	}
	CoUninitialize(); //закрываем СОМ библиотеку
...Показать Скрыть
28. Tigran Musayelyan (Tigra_N86) 09.03.16 11:22 Сейчас в теме
Добрый день.
Я не программирую в 1с, поэтому у меня возникли трудности с подключением вашего драйвера к 1С.
Можете выложить какую-нибудь инструкцию использования внешней обработки с Розница 2.1 или Управление Торговлей 11 ДЛЯ ЧАЙНИКОВ.
Спасибо
29. Евгений Баинов (bainov) 99 09.03.16 12:27 Сейчас в теме
(28) Для Розница 2.1 и УТ 11 надо писать модуль для подключения. Указанного в описании примера достаточно для этого.
Если Вам требуется готовый модуль - то это платная работа.
30. Вася пупкин (vacony) 31.03.16 13:52 Сейчас в теме
Добрый день
Подскажите стоимость платной версии , т.к. нужно выводить весь чек на доп. монитор , и варианты приобретения ?
Заранее спасибо
31. Евгений Баинов (bainov) 99 31.03.16 18:20 Сейчас в теме
(30) vacony, 5000р. на каждый компьютер
32. V. L. (Vladal) 409 20.04.16 16:41 Сейчас в теме
На скриншоте что за единица измерения "гр"?
33. Евгений Баинов (bainov) 99 21.04.16 03:31 Сейчас в теме
(32) Vladal, гр=грамм
Пример с товарами из типовой УТ
34. Евгений Васильченко (vas2005) 4 18.01.17 14:03 Сейчас в теме
Прошу прощения, но я не совсем понял....
Данное решение сможет работать с терминальным сервером..???

Возможно ли выводить на другой монитор изображения номенклатуры????

Пример: Есть терминальный сервер, там 1с 8.2 и работает 3-5 пользователей.
Могут ли пользователи выводить на отдельный монитор или телевизор в торговом зале изображения номенклатуры..??
35. Евгений Баинов (bainov) 99 18.01.17 17:04 Сейчас в теме
(34) Да, может работать с терминальным сервером.
Если непосредственно к серверу подключить несколько мониторов - то можно ими управлять из 1С.
Для вывода информации надо подготовить дизайны форм вывода - тему оформления.
Внутри темы можно разместить произвольное количество различных форм.
Из 1С при помощи внешней компоненты выбираем нужную форму, наполняем ее данными и выводим на нужном нам мониторе.
Можно выводить картинки.
Сейчас готова версия, работающая по сети.
В ней еще интереснее.
Приложение для управления мониторами реализует веб-службу для приема команд на вывод изображения.
Команды передаются по протоколу JSON.
Можно управлять с любого рабочего места любым монитором на любом компьютере, доступном по сети с терминального сервера.
Теперь можно еще и выводить видеоролики.
36. Евгений Баинов (bainov) 99 18.01.17 17:13 Сейчас в теме
(34)

Пример: Есть терминальный сервер, там 1с 8.2 и работает 3-5 пользователей.
Могут ли пользователи выводить на отдельный монитор или телевизор в торговом зале изображения номенклатуры..??


Новая версия как раз подойдет для такой цели.
1.Подключаете телевизор к мини-компьютеру с HDMI
2.Устанавливаете эмулятор дисплея версии 2.
3.Активируете лицензию. - появляется возможность использования тем оформления
Далее делаете интеграцию сами согласно документации, используя встроенные темы, или
4.Заказываете нам внедрение вашего дизайна.
5.Заказываете интеграцию решения в вашу конфигурацию.
37. Евгений Васильченко (vas2005) 4 18.01.17 17:21 Сейчас в теме
(36)
3.Активируете лицензию.
Что значит появится возможность использовать темы оформления..???
Тоесть сама лицензия на передачу изображения не влияет..???
Лицензия дает право оформить внешний вид..??
Я правильно вас понял..???
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа