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С
Новосибирск
зарплата от 60 000 руб. до 160 000 руб.
Полный день

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

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

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

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству