0. Техподдержка 25.05.17 07:15

Медиадисплей. Дополнительный монитор вместо дисплея покупателя

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

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. pafftis 13 22.08.17 19:22 Сейчас в теме
так и не въехал как её в 1с прикрутить!
2. Техподдержка 22.08.17 19:25
(1) У вас какая конфигурация?
3. Intenso 07.12.17 15:39 Сейчас в теме
Расширение для УТ11 есть? В демо режиме работает чтобы понять стоит ли вобще разработка покупки и сколько там костылей если они есть?
4. Техподдержка 08.12.17 06:05
(3) Нет расширения для УТ. Его несложно сделать самому на примере расширения для розницы.

Текст модуля формы расширения для розницы (обработка РМКУправляемыйРежим):



&НаКлиенте
&Вместо("ВывестиИнформациюНаДисплейПокупателя")
Процедура rbs_ВывестиИнформациюНаДисплейПокупателя(Команда)
    
	Если Не ИспользоватьПодключаемоеОборудование Тогда
		Возврат;
	КонецЕсли;
	
	Если НЕ ЗначениеЗаполнено(НаборПравИНастроек.ШаблонРаботыДисплеяПокупателя) Тогда
		ВыводитьИтоги = Ложь;
		ТекстПриПростое = НСтр("ru = 'ДОБРО ПОЖАЛОВАТЬ!'");
		ТекстВНерабочемСостоянии = НСтр("ru = 'КАССА НЕ РАБОТАЕТ'");
	Иначе
		ВыводитьИтоги = НаборПравИНастроек.ВыводитьПромИтогНаДисплей;
		ТекстПриПростое = НаборПравИНастроек.ТекстПриПростое;
		ТекстВНерабочемСостоянии = НаборПравИНастроек.ТекстВНерабочемСостоянии;
	КонецЕсли;
	
	Строка1 = "";
	Строка2 = "";
	ВыровнятьВПраво = Ложь;
	
	Если Команда = "НачалоРаботы" Тогда
		Строка1 = ТекстПриПростое;
		
	ИначеЕсли Команда = "Оплата" Тогда
		Строка1 = НСтр("ru = 'ВНЕСЕНО:'") + " " + ДисплейПокупателяПараметры.Оплата;
		Строка2 = НСтр("ru = '  СДАЧА:'") + " " + ДисплейПокупателяПараметры.Сдача;
	ИначеЕсли Команда = "ОжиданиеОплаты" Тогда
		
		ДисплейПокупателяПараметры.СуммаВсего  = Формат(СуммаВсего, "ЧДЦ=2;ЧГ=;ЧН=0.00");
		ДисплейПокупателяПараметры.СуммаСкидки = Формат(СуммаСкидки, "ЧДЦ=2;ЧГ=");
		
		Если ПустаяСтрока(ДисплейПокупателяПараметры.СуммаСкидки) Тогда
			Строка1 = НСтр("ru = '  ИТОГО:'") + " " + ДисплейПокупателяПараметры.СуммаВсего;
		Иначе
			Строка1 = НСтр("ru = '  ИТОГО:'") + " " + ДисплейПокупателяПараметры.СуммаВсего;
			Строка2 = НСтр("ru = ' СКИДКА:'") + " " + ДисплейПокупателяПараметры.СуммаСкидки;
		КонецЕсли;
		
	ИначеЕсли Команда = "ОтменаОплаты" Тогда
		Строка1 = НСтр("ru = 'ОТМЕНА ОПЛАТЫ'");
		
	ИначеЕсли Команда = "ДобавлениеТовара" 
		ИЛИ Команда = "УдалениеТовара" 
		ИЛИ Команда = "ИзмененияКоличества" 
		ИЛИ Команда = "ИзмененияЦены" Тогда
		
		ИнформацияНаименование = ДисплейПокупателяПараметры.ТоварНаименование;
		
		Если ВыводитьИтоги Тогда
			
			Если Команда = "УдалениеТовара" Тогда
				Строка1 = НСтр("ru = 'СТОРНО:'") + " ";
			Иначе
				Строка1 = НСтр("ru = '  ЦЕНА:'") + " ";
			КонецЕсли;
			
			Если НЕ ДисплейПокупателяПараметры.ТоварКоличество = 1 ИЛИ  Команда = "ИзмененияКоличества" ИЛИ Команда = "УдалениеТовара" Тогда
				Строка1 =  Строка1 + Строка(ДисплейПокупателяПараметры.ТоварКоличество) + "x";
			КонецЕсли;
			
			Строка1 = Строка1 + Строка(ДисплейПокупателяПараметры.ТоварЦена);
			Строка2 = НСтр("ru = ' ИТОГО:'") + " " + ДисплейПокупателяПараметры.СуммаВсего;
			
		Иначе
			
			ВыровнятьВПраво = Истина;
			Строка1 = Строка(ДисплейПокупателяПараметры.ТоварНаименование);
			Строка2 = Строка(ДисплейПокупателяПараметры.ТоварЦена);
			Если Не ПустаяСтрока(Строка1) Тогда
				Если НЕ ДисплейПокупателяПараметры.ТоварКоличество = 1 ИЛИ Команда = "ИзмененияКоличества" ИЛИ Команда = "УдалениеТовара" Тогда
					Строка2 = Строка(ДисплейПокупателяПараметры.ТоварКоличество) + "x" + Строка2 +  "=" +  Строка(ДисплейПокупателяПараметры.ТоварСумма);
				КонецЕсли;
				Если Команда = "УдалениеТовара" Тогда
					Строка2 = "-" + Строка2;
				КонецЕсли;
			КонецЕсли;
			
		КонецЕсли;
	ИначеЕсли Команда = "Аннулирование" Тогда
		Строка1 = НСтр("ru = 'ЧЕК АННУЛИРОВАН'");
		
	ИначеЕсли Команда = "ОтложитьЧек" Тогда
		Строка1 = НСтр("ru = 'ЧЕК ОТЛОЖЕН'");
	
	ИначеЕсли Команда = "ВозвратТовара" Тогда
		Строка1 = НСтр("ru = 'ВОЗВРАТ ТОВАРА'");
		 
	 ИначеЕсли Команда = "Сервис" Тогда
		Строка1 = ТекстВНерабочемСостоянии;
	
	КонецЕсли;
	
	Описание = Новый ОписаниеОповещения("ВывестиИнформациюНаДисплейПокупателяЗавершение", ЭтотОбъект);
    //типовой вызов
	МенеджерОборудованияКлиент.НачатьВыводИнформацииНаДисплейПокупателя(Описание,,, Строка1 + Символы.ПС + Строка2);
	
	
	/////РБ-Софт

//Шаблон для заголовка JSON-запроса
		 ЗаголовокЗапроса = "{""ordertable"":{
		 |""addmode"":""0"",
		 |""rows"":
		 |[";
//Шаблон для строки вывода товара в JSON-запросе
		 СтрокаЗапроса="{""name"":""<Наименование>"",
		 |""count"":""<Количество>"",
		 |""summ"":""<Сумма>""
		 |}";
//Шаблон для подвала JSON-запроса
		 ПодвалЗапроса="],
		 |""rowheight"": ""<КоличествоВидимыхСтрок>""
		 |},
		 |""currentrow"": ""<НомерВыделеннойСтроки>"",
		 |""infocount"":""<КоличествоПозиций>"",
		 |""infoToPay"": ""<СуммаКОплате>"",
		 |""infoCashIn"": ""<СуммаПринято>"",
		 |""infoRest"": ""<СуммаСдачи>"",
		 |""infoPaymentType"": ""<ТипОплаты>""
		 |}
		 |";
		 
		 
		 
		 ТипОплаты="Наличные";
		  			 
		 
		 
		 НомерВыделеннойСтроки = ЭтаФорма.Элементы.Товары.ТекущаяСтрока;
		 
		 КоличествоВидимыхСтрок=30;

//Заполняем данными подвал запроса
		 
		 ПодвалЗапроса=СтрЗаменить(ПодвалЗапроса,"<КоличествоВидимыхСтрок>",Формат(КоличествоВидимыхСтрок,"ЧГ="));
		 ПодвалЗапроса=СтрЗаменить(ПодвалЗапроса,"<НомерВыделеннойСтроки>",Формат(НомерВыделеннойСтроки,"ЧГ="));
		 ПодвалЗапроса=СтрЗаменить(ПодвалЗапроса,"<КоличествоПозиций>",Формат(Объект.Товары.Количество(),"ЧГ="));
		 ПодвалЗапроса=СтрЗаменить(ПодвалЗапроса,"<СуммаКОплате>",ДисплейПокупателяПараметры.СуммаВсего);
		 ПодвалЗапроса=СтрЗаменить(ПодвалЗапроса,"<СуммаПринято>",ДисплейПокупателяПараметры.Оплата);
		 ПодвалЗапроса=СтрЗаменить(ПодвалЗапроса,"<СуммаСдачи>",ДисплейПокупателяПараметры.Сдача);
		 
		 ПодвалЗапроса=СтрЗаменить(ПодвалЗапроса,"<ТипОплаты>",ТипОплаты);
		 
		 
	
	
    ОповещениеПриЗавершении=Описание;
    ИдентификаторУстройства=Неопределено;
    СтрокиТекста=Строка1 + Символы.ПС + Строка2;
    
    ПодключенныеУстройства = МенеджерОборудованияКлиент.ПолучитьПодключенныеУстройства(глПодключаемоеОборудование.ПараметрыПодключенияПО, 
		ПредопределенноеЗначение("Перечисление.ТипыПодключаемогоОборудования.ДисплейПокупателя"), ИдентификаторУстройства);
        
    
    
	Если ПодключенныеУстройства.Количество() > 0 Тогда
        Для Каждого Устройство Из ПодключенныеУстройства Цикл
            Если Устройство.ИдентификаторОбъекта="AddIn.RBSoftMediaDisplay" Тогда
                //Нашли дисплей РБ-Софт
				
				Если Команда = "НачалоРаботы" Тогда
					
                                         //Установка темы "Магазин 2"
					ТекстЗапроса="{""theme"": ""3""}";
					Результат="";
					Если НЕ Устройство.ОбъектДрайвера.ВыполнитьЗапрос("SetTheme",ТекстЗапроса,Результат) Тогда
						ОписаниеОшибки="";
						КодОшибки = Устройство.ОбъектДрайвера.ПолучитьОшибку(ОписаниеОшибки);
						Сообщить("Код ошибки "+КодОшибки +" : "+ОписаниеОшибки);
					КонецЕсли;    
				
				ИначеЕсли Команда = "ДобавлениеТовара" 
					ИЛИ Команда = "УдалениеТовара" 
					ИЛИ Команда = "ИзмененияКоличества" 
					ИЛИ Команда = "ИзмененияЦены" 
					ИЛИ Команда = "Оплата" 
					ИЛИ Команда = "ОжиданиеОплаты" 
					
					Тогда
					//Заполняем текст запроса для отображения товаров

					
					СтрТоварыЗапроса="";
					Для Каждого Стр Из Объект.Товары Цикл
						
						
						
						СтрТовар=СтрЗаменить(Стр.ПредставлениеТабло,"""","'");
						СтрТовар=СтрЗаменить(СтрТовар,Символ(13)," ");
						СтрТовар=СтрЗаменить(СтрТовар,Символ(10)," ");
						СтрТовар=СтрЗаменить(СтрТовар,Символы.Таб," ");
						
						Если Цел(Стр.КоличествоУпаковок)=Стр.КоличествоУпаковок Тогда
							СтрКоличество = Формат(Стр.КоличествоУпаковок,"ЧЦ=15; ЧДЦ=0;ЧРГ=");
						Иначе    
							СтрКоличество = Формат(Стр.КоличествоУпаковок,"ЧЦ=15; ЧДЦ=3; ЧРД=.; ЧРГ=");
						КонецЕсли;    
						СтрКоличество=СокрЛП(СтрКоличество);
						
						СтрСумма = Формат(Стр.Сумма,"ЧЦ=15; ЧДЦ=2; ЧРД=.; ЧРГ=");
						
						ТекСтрокаЗапроса=СтрЗаменить(СтрокаЗапроса,"<Наименование>",СтрТовар);
						ТекСтрокаЗапроса=СтрЗаменить(ТекСтрокаЗапроса,"<Количество>",СтрКоличество);
						ТекСтрокаЗапроса=СтрЗаменить(ТекСтрокаЗапроса,"<Сумма>",СтрСумма);
						
						СтрТоварыЗапроса=СтрТоварыЗапроса+?(СтрТоварыЗапроса="","",",")+"
						|"+ТекСтрокаЗапроса;
					КонецЦикла;    
					
					
					//Собираем полный текст JSON-запроса
					ТекстЗапроса =ЗаголовокЗапроса+СтрТоварыЗапроса+ПодвалЗапроса;
					Результат="";
                                        //Отправляем JSON-запрос через метод компоненты
                                        //Можно отправлять и встроенным механизмом работы с JSON
					Если НЕ Устройство.ОбъектДрайвера.ВыполнитьЗапрос("SetParameters",ТекстЗапроса,Результат) Тогда
						ОписаниеОшибки="";
						КодОшибки = Устройство.ОбъектДрайвера.ПолучитьОшибку(ОписаниеОшибки);
						Сообщить("Код ошибки "+КодОшибки +" : "+ОписаниеОшибки);
					КонецЕсли;    
				КонецЕсли;    
                
            КонецЕсли;
    	КонецЦикла
	КонецЕсли;

	ПродолжитьВызов(Команда);
КонецПроцедуры

Показать
5. Intenso 08.12.17 14:27 Сейчас в теме
(4) То что можно самому написать это понятно, решение не бесплатное почему и спрашиваю. Т.к. отсутвие расширения понесет доп расходы на его разработку. Что на счет демо версии? она имеестя? можно как то попробовать как оно работает какую информацию и куда можно выводить и тд?
6. aGolosey 22.02.18 06:07 Сейчас в теме
Здравствуйте! Я скачал два файла, те, что бесплатные. Установил их. Программа запустилась, а вот драйвера не смог поставить в УТ 11. Выдает ошибку в настройке драйверов "Не установлен на текущем компьютере. Не определен тип: AddIn.RBSoftMediaDisplay". Как поправить ее?
8. Техподдержка 28.03.18 11:59
(6) 1С:Совместимый драйвер - это zip-архив.
Его можно подключить к 1С УТ11. Установить надо под правами администратора (запуск 1С под правами администратора).

Или просто разархивировать и запустить setup.exe под правами администратора.
Это как раз подходит, если хотим использовать для УТ 10, или ТиС 7.7.
9. user937909 30.04.18 10:50 Сейчас в теме
Добрый день. Можно ли на второй дисплей выводить прайс лист? Настраивается ли ширина области экрана для рекламы и ширина экрана для товаров из чека? Для использования полного функционала нужно ли вносить изменения в конфигурацию Розница 2.2? Работает ли с базовой версией Розницы 2.2?
10. Техподдержка 30.04.18 12:47
Здравствуйте. Прайс в виде таблицы можно выводить.
Ширина таблицы чека настраивается. Для использования полного функционала необходимо вносить изменения в конфигурацию. С базовой работает только двухстрочный режим дисплея покупателя.
11. user937909 18.11.18 20:09 Сейчас в теме
Добрый день. Установил медиадисплей - демонстрационную версию для 1с Розница 2.2.7.42. При подборе товаров чек с помощью теста медиадисплея список товаров отображается на медиадисплее. При подборе товара в РМК 1С Розницы список товаров не отображается, отображается только итоговая сумма (стоимость) всех товаров при расчете видно сколько внесено ДС и сдачу. Снимки прилагаю.
В чем может быть причина?
Можно сделать чтобы на мониторе с Медиадисплеем поверх Медидисплея не появлялись системные сообщение 1с типа "Классификатор банков устарел"? Медиадисплей отображается на втором мониторе который используется в качестве расширения рабочего стола.
Прикрепленные файлы:
12. Техподдержка 19.11.18 02:32
Здравствуйте. Для вывода всего чека необходимо подключить расширение для розницы. Можно скачать с сайта. На системные сообщения 1с мы не можем повлиять.
19. alexsey777 27.03.19 04:47 Сейчас в теме
(12)(18)Здравствуйте!
Не совсем понял. Для вывода всего чека нужно изменять конфигурацию или можно реализовать без изменения конфы с помощью расширений конфигурации?
Речь идет про конфигурацию 1С Розница 2.2.11.24
20. Техподдержка 27.03.19 06:03
(19) Изменения для 1С Розница 2.x реализуются при помощи расширения.
С программой идет демонстрационная утилита, отправляющая JSON запросы на медиадисплей.
Надо, чтобы 1С начала отправлять такие же запросы.
Так же в комплекте поставки есть пример программного кода для расширения к Рознице.
Код совместим с Розница 2.2.9.20
Для применения к вашей версии Розницы потребуется тестирование. И, возможно, придется подправить.
Код расширения:
// 090119
// Обработка обращения к не инициализированному полю Элементы.Товары.ТекущиеДанные
// Протестирована работа кода
// Розница 2.2.9.20
// Платформа 8.3.13.1644





&НаКлиенте
&Вместо("ВывестиИнформациюНаДисплейПокупателя")

Процедура rbs_ВывестиИнформациюНаДисплейПокупателя(Команда)
	
	Если Не ИспользоватьПодключаемоеОборудование Тогда
		Возврат;
	КонецЕсли;
	
	Если НЕ ЗначениеЗаполнено(НаборПравИНастроек.ШаблонРаботыДисплеяПокупателя) Тогда
		ВыводитьИтоги = Ложь;
		ТекстПриПростое = НСтр("ru = 'ДОБРО ПОЖАЛОВАТЬ!'");
		ТекстВНерабочемСостоянии = НСтр("ru = 'КАССА НЕ РАБОТАЕТ'");
	Иначе
		ВыводитьИтоги = НаборПравИНастроек.ВыводитьПромИтогНаДисплей;
		ТекстПриПростое = НаборПравИНастроек.ТекстПриПростое;
		ТекстВНерабочемСостоянии = НаборПравИНастроек.ТекстВНерабочемСостоянии;
	КонецЕсли;
	
	Строка1 = "";
	Строка2 = "";
	ВыровнятьВПраво = Ложь;
	
	Если Команда = "НачалоРаботы" Тогда
		Строка1 = ТекстПриПростое;
		
	ИначеЕсли Команда = "Оплата" Тогда
		Строка1 = НСтр("ru = 'ВНЕСЕНО:'") + " " + ДисплейПокупателяПараметры.Оплата;
		Строка2 = НСтр("ru = '  СДАЧА:'") + " " + ДисплейПокупателяПараметры.Сдача;
	ИначеЕсли Команда = "ОжиданиеОплаты" Тогда
		
		ДисплейПокупателяПараметры.СуммаВсего  = Формат(СуммаВсего, "ЧДЦ=2;ЧГ=;ЧН=0.00");
		ДисплейПокупателяПараметры.СуммаСкидки = Формат(СуммаСкидки, "ЧДЦ=2;ЧГ=");
		
		Если ПустаяСтрока(ДисплейПокупателяПараметры.СуммаСкидки) Тогда
			Строка1 = НСтр("ru = '  ИТОГО:'") + " " + ДисплейПокупателяПараметры.СуммаВсего;
		Иначе
			Строка1 = НСтр("ru = '  ИТОГО:'") + " " + ДисплейПокупателяПараметры.СуммаВсего;
			Строка2 = НСтр("ru = ' СКИДКА:'") + " " + ДисплейПокупателяПараметры.СуммаСкидки;
		КонецЕсли;
		
	ИначеЕсли Команда = "ОтменаОплаты" Тогда
		Строка1 = НСтр("ru = 'ОТМЕНА ОПЛАТЫ'");
		
	ИначеЕсли Команда = "ДобавлениеТовара" 
		ИЛИ Команда = "УдалениеТовара" 
		ИЛИ Команда = "ИзмененияКоличества" 
		ИЛИ Команда = "ИзмененияЦены" Тогда
		
		ИнформацияНаименование = ДисплейПокупателяПараметры.ТоварНаименование;
		
		Если ВыводитьИтоги Тогда
			
			Если Команда = "УдалениеТовара" Тогда
				Строка1 = НСтр("ru = 'СТОРНО:'") + " ";
			Иначе
				Строка1 = НСтр("ru = '  ЦЕНА:'") + " ";
			КонецЕсли;
			
			Если НЕ ДисплейПокупателяПараметры.ТоварКоличество = 1 ИЛИ  Команда = "ИзмененияКоличества" ИЛИ Команда = "УдалениеТовара" Тогда
				Строка1 =  Строка1 + Строка(ДисплейПокупателяПараметры.ТоварКоличество) + "x";
			КонецЕсли;
			
			Строка1 = Строка1 + Строка(ДисплейПокупателяПараметры.ТоварЦена);
			Строка2 = НСтр("ru = ' ИТОГО:'") + " " + ДисплейПокупателяПараметры.СуммаВсего;
			
		Иначе
			
			ВыровнятьВПраво = Истина;
			Строка1 = Строка(ДисплейПокупателяПараметры.ТоварНаименование);
			Строка2 = Строка(ДисплейПокупателяПараметры.ТоварЦена);
			Если Не ПустаяСтрока(Строка1) Тогда
				Если НЕ ДисплейПокупателяПараметры.ТоварКоличество = 1 ИЛИ Команда = "ИзмененияКоличества" ИЛИ Команда = "УдалениеТовара" Тогда
					Строка2 = Строка(ДисплейПокупателяПараметры.ТоварКоличество) + "x" + Строка2 +  "=" +  Строка(ДисплейПокупателяПараметры.ТоварСумма);
				КонецЕсли;
				Если Команда = "УдалениеТовара" Тогда
					Строка2 = "-" + Строка2;
				КонецЕсли;
			КонецЕсли;
			
		КонецЕсли;
	ИначеЕсли Команда = "Аннулирование" Тогда
		Строка1 = НСтр("ru = 'ЧЕК АННУЛИРОВАН'");
		
	ИначеЕсли Команда = "ОтложитьЧек" Тогда
		Строка1 = НСтр("ru = 'ЧЕК ОТЛОЖЕН'");
		
	ИначеЕсли Команда = "ВозвратТовара" Тогда
		Строка1 = НСтр("ru = 'ВОЗВРАТ ТОВАРА'");
		
	ИначеЕсли Команда = "Сервис" Тогда
		Строка1 = ТекстВНерабочемСостоянии;
		
	КонецЕсли;
	
	Описание = Новый ОписаниеОповещения("ВывестиИнформациюНаДисплейПокупателяЗавершение", ЭтотОбъект);
	//типовой вызов
	//МенеджерОборудованияКлиент.НачатьВыводИнформацииНаДисплейПокупателя(Описание,,, Строка1 + Символы.ПС + Строка2);	
	СтрокиЗаголовка=  Строка1 + Символы.ПС + Строка2;
	
	/////РБ-Софт
	
	Запрос = "{
	|	""Receivers"":[""<Receiver>""],
	|	""Containers"":[<Containers>]
	|}";
	
	Контейнер =	"{
	|	""Name"":""<name>"",
	|	""Text"":""<text>""
	| }";
	
	КонтейнерТаблицы = "{
	|	""Name"":""Table"",
	|   ""Table"": { 
	|      ""Rows"": [<Rows>] ,
	|      ""ColumnNames"": [ ""Id"", ""Name"", ""Price"", ""Count"", ""Sum"" ] ,
	|   ""Styles"": [ { ""RowNumber"": <activeRow>, ""Name"": ""ActiveRow"" }] 
	|      }
	|}";
	
	Позиция ="[""<id>"",""<name>"", ""<price>"", ""<count>"", ""<sum>""]";
	
	ОповещениеПриЗавершении=Описание;
	ИдентификаторУстройства=Неопределено;
	
	ПодключенныеУстройства = МенеджерОборудованияКлиент.ПолучитьПодключенныеУстройства(глПодключаемоеОборудование.ПараметрыПодключенияПО, 
	ПредопределенноеЗначение("Перечисление.ТипыПодключаемогоОборудования.ДисплейПокупателя"), ИдентификаторУстройства);
	
	
	Если ПодключенныеУстройства.Количество() > 0 Тогда
		Для Каждого Устройство Из ПодключенныеУстройства Цикл
			Если Устройство.ИдентификаторОбъекта="AddIn.RBSoftMediaDisplay2" Тогда
				//Нашли дисплей РБ-Софт
				Receiver = Устройство.ОбъектДрайвера.ПолучитьИдентификаторДисплея();
				
				Если Команда = "ДобавлениеТовара" 
					ИЛИ Команда = "УдалениеТовара" 
					ИЛИ Команда = "ИзмененияКоличества" 
					ИЛИ Команда = "ИзмененияЦены" 
					ИЛИ Команда = "Оплата" 
					ИЛИ Команда = "ОжиданиеОплаты" 
					
					Тогда
					
					Rows = "";
					лСуммаБезСкидки = 0;
					Для Каждого Товар Из Объект.Товары Цикл
						
						Если Цел(Товар.КоличествоУпаковок)=Товар.КоличествоУпаковок Тогда
							СтрКоличество = Формат(Товар.КоличествоУпаковок,"ЧЦ=15; ЧДЦ=0;ЧРГ=");
						Иначе    
							СтрКоличество = Формат(Товар.КоличествоУпаковок,"ЧЦ=15; ЧДЦ=3; ЧРД=.; ЧРГ=");
						КонецЕсли;    
						
						СтрНомер = Товар.НомерСтроки;
						СтрНаименование = Товар.Номенклатура;
						
						СтрНаименование  = СтрЗаменить(СтрНаименование,"""" ,"'");
						СтрНаименование  = СтрЗаменить(СтрНаименование,"\" ,"|");
						СтрНаименование  = СтрЗаменить(СтрНаименование,Символы.ПС ,"");
						СтрНаименование  = СтрЗаменить(СтрНаименование,Символы.Таб ,"");
						
						
						СтрКоличество=СокрЛП(Товар.Количество);
						СтрЦена = Формат(Товар.Цена,"ЧЦ=15; ЧДЦ=2; ЧРД=.; ЧРГ=");
						СтрСумма = Формат(Товар.Сумма,"ЧЦ=15; ЧДЦ=2; ЧРД=.; ЧРГ=");
						
						лСуммаБезСкидки = лСуммаБезСкидки + Окр(Товар.Количество * Товар.Цена,2,РежимОкругления.Окр15как20);
						
						Скидка = Товар.СуммаРучнойСкидки + Товар.СуммаАвтоматическойСкидки;
						
						
						Если Скидка <>0 Тогда 
							СтрСкидка  = Формат(Товар.Сумма,"ЧЦ=15; ЧДЦ=2; ЧРД=.; ЧРГ=");
							СтрСумма = СтрСумма+"\n"+"-"+Скидка;
						КонецЕсли;
						
						
						Row = СтрЗаменить(Позиция,"<id>",СтрНомер);
						Row = СтрЗаменить(Row,"<name>",СтрНаименование);
						Row = СтрЗаменить(Row,"<price>",СтрЦена);
						Row = СтрЗаменить(Row,"<count>",СтрКоличество);
						
						Row = СтрЗаменить(Row,"<sum>",СтрСумма);
						
						Rows = Rows + Row + ",";
					КонецЦикла;    
					// Удаление запятой
					Rows = Лев(Rows, СтрДлина(Rows)-1);
					
					Если Объект.ОперацияСДенежнымиСредствами И Объект.Товары.Итог("СуммаВсего") = 0  Тогда
						Сдача = 0;
					Иначе
						Сдача = Макс(Объект.Оплата.Итог("Сумма") - Объект.Товары.Итог("СуммаВсего"),0);
					КонецЕсли; 
					
					
						
					СуммаВсегоЛок =Формат(лСуммаБезСкидки,"ЧЦ=15; ЧДЦ=2; ЧРД=.; ЧРГ=");					
					СдачаЛок=Формат(Сдача, "ЧДЦ=2;ЧГ=;ЧН=0.00");
					
					ОплатаЛок = Формат(Объект.Оплата.Итог("Сумма"), "ЧДЦ=2;ЧГ=;ЧН=0.00");
					
					
					Скидка=Формат(СуммаСкидки,"ЧЦ=15; ЧДЦ=2; ЧРД=.; ЧРГ=");
					Коплате =  Формат(лСуммаБезСкидки-СуммаСкидки,"ЧЦ=15; ЧДЦ=2; ЧРД=.; ЧРГ=");
					
					
					ЗаголовокЛок =СтрЗаменить      (Контейнер,"<name>", "Header"); 
					
					ЗаголовокЛок =СтрЗаменить      (ЗаголовокЛок,"<text>", Строка1);
					
					Table = СтрЗаменить(КонтейнерТаблицы,"<Rows>", Rows); 
					
					НомерВыделеннойСтроки = -1;
					Если Элементы.Товары.ТекущиеДанные <> Неопределено Тогда
						НомерВыделеннойСтроки = Элементы.Товары.ТекущиеДанные.НомерСтроки-1;	
					КонецЕсли;
					
					Table=СтрЗаменить(Table,"<activeRow>",НомерВыделеннойСтроки);	
					
					
					ИтогоК = СтрЗаменить(СтрЗаменить(Контейнер,"<name>", "Total"),"<text>", СуммаВсегоЛок) ;
					СкидкаК = СтрЗаменить(СтрЗаменить(Контейнер,"<name>", "Discount"),"<text>", Скидка) ;
					КоплатеК =СтрЗаменить(СтрЗаменить(Контейнер,"<name>", "TotalPayment"),"<text>", Коплате) ;
					ОплаченоК = СтрЗаменить(СтрЗаменить(Контейнер,"<name>", "Paid"),"<text>", ОплатаЛок) ;
					СдачаК = СтрЗаменить(СтрЗаменить(Контейнер,"<name>", "Change"),"<text>", СдачаЛок) ;
					
					
					//В заголовке передаются управляющие символы
					
					ЗаголовокЛок1 =СтрЗаменить      (Контейнер,"<name>", "Header"); 					
					Если Команда = "Оплата" Тогда
						СообщениеЗаг = "Спасибо за покупку!";
					Иначе
						СообщениеЗаг = "ДОБРО ПОЖАЛОВАТЬ!";
					КонецЕсли;
					
					ЗаголовокЛок1 =СтрЗаменить      (ЗаголовокЛок1,"<text>",СообщениеЗаг );

					ДвеСтроки =СтрЗаменить(Контейнер,"<name>", "TwoString"); 					
					
					
					
					Строки = Строка1 + "\n"+ Строка2;
					Строки  = СтрЗаменить(Строки,"""" ,"'");
				    Строки  = СтрЗаменить(Строки,Символы.Таб ," ");

					       ДвеСтроки =СтрЗаменить(ДвеСтроки,"<text>",Строки);

					
					Containers = ЗаголовокЛок1 +","+ДвеСтроки+","+ Table + ","  +ИтогоК +"," + СкидкаК +"," +КоплатеК +"," + ОплаченоК +"," +СдачаК ;					
					
					
					jsonBody=СтрЗаменить(Запрос,"<Receiver>",Receiver);
					jsonBody=СтрЗаменить(jsonBody,"<Containers>",Containers);
					
					
					
					Если НЕ Устройство.ОбъектДрайвера.ВыполнитьЗапросJson(jsonBody) Тогда
						ОписаниеОшибки="";
						КодОшибки = Устройство.ОбъектДрайвера.ПолучитьОшибку(ОписаниеОшибки);
						Сообщить("Код ошибки "+КодОшибки +" : "+ОписаниеОшибки);
					КонецЕсли;
				Иначе
					МенеджерОборудованияКлиент.НачатьВыводИнформацииНаДисплейПокупателя(Описание,,, Строка1 + Символы.ПС + Строка2);
				КонецЕсли;    
				
			Иначе
				// Типовой вызов
				МенеджерОборудованияКлиент.НачатьВыводИнформацииНаДисплейПокупателя(Описание,,, Строка1 + Символы.ПС + Строка2);
				
			КонецЕсли;
			
		КонецЦикла
	КонецЕсли;
	
	
КонецПроцедуры





&НаКлиенте
&Вместо("ЗавершитьОплатуТоваровПослеВыводаСдачи")
Процедура rbs_ЗавершитьОплатуТоваровПослеВыводаСдачи()
	
	// Этот метод переопределен только для изменения времени отображения чека после внесения оплаты клиентом
	ПоУмолчаниюСек = 20;
	ОжиданиеНовоеСек = 7;
	ОжиданиеСек = ОжиданиеНовоеСек ;
	
	
	НазначитьАвтоматическиеСкидкиКлиент(Истина);
	
	Отказ = Ложь;
	СоздатьЧеки(Отказ, ПечатьПослеПробитияЧека);
	ПечатьПослеПробитияЧека = Ложь;
	
	СнятьОтборТоваров();
	
	Если Не Отказ Тогда
		
		ВыведенаСдача = Истина;
		Элементы.СтраницыИнформации.ТекущаяСтраница = Элементы.СтраницаСдача;
		
		СоздатьНовыйНаборКлиент();
		
		ДисконтнаяКартаДляЗамены = Объект.ДисконтнаяКарта;
		
		ПодключитьОбработчикОжидания("Подключаемый_ДисплеяПокупателяПриПростое", ОжиданиеСек, Истина);
		
		Если ВыполнятьЗамерыПроизводительности Тогда
			//ПодключитьОбработчикОжидания("ЗафиксироватьЗамерВремени", 0.1, Истина);
			// заглушен. РБ-Софт не во всех конфигурациях есть этот метод
			//ЗафиксироватьЗамерВремени();
		КонецЕсли;
	Иначе
		ВыведенаСдача = Ложь;
		Элементы.СтраницыИнформации.ТекущаяСтраница = Элементы.СтраницаИнформации;
	КонецЕсли;
	ОставлятьФлагТаблоСдачи = Ложь;
	
КонецПроцедуры

Показать
13. user937909 19.11.18 11:47 Сейчас в теме
Добрый день.
Расширение подключено.
Прикрепленные файлы:
14. Техподдержка 19.11.18 17:39
Я не могу ничего вам сказать почему не работает.
Лучше будет посмотреть. Оставляйте свои контакты - посмотрим по удаленке.
Иначе тут можем полгода переписываться - и ни к чему не прийти. :)
15. user937909 21.11.18 09:11 Сейчас в теме
Заработало, не актуальное расширение.
16. user937909 21.11.18 09:11 Сейчас в теме
Заработало, неактуальное расширение.
17. Amirzhan 10.02.19 18:24 Сейчас в теме
С какими конфигурациями работает ?
Для Казахстана : 1С Розница 1.0, 2.2 ? УТ 10.3, 11.2, 3.2 ?

С вышеперечисленными конфигурациями работает?
18. Техподдержка 11.02.19 03:17
(17) Для вывода всего чека необходимо вносить изменения в 1с. Для работы в двухстрочном режиме, но с выводом рекламы - работает со всеми перечисленными. Полную интеграцию для Казахстана делали для ут 11.2
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Санкт-Петербург
зарплата до 120 000 руб.
Полный день

Работа от Инфостарт
Санкт-Петербург
Временный (на проект)

Руководитель отдела внедрения 1С
Новосибирск
зарплата от 60 000 руб. до 160 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 115 000 руб. до 160 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день