Подготовка конфигурации Розница 1.0 (1.0.14.4) для работы с Yarus

20.05.20

Интеграция - ККМ

Интеграция Yarus(М2100Ф) с 1С на примере подключения в Рознице 1.0 (1.0.14.4).

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Интеграция Yarus(М2100Ф) с 1С на примере подключения в Рознице 1.0 (1.0.14.4):
.epf 59,08Kb
1
1 Скачать (1 SM) Купить за 1 850 руб.
  1. Изменение конфигурации Розницы для работы с Yarus.

Для того чтобы конфигурация  Розница, редакция 1.0   смогла передавать нужные данные через обработку в Штрих ККТ необходимо изменить конфигурацию.

В функции “ПечатьЧекаККМ” изменим следующий код, чтобы передавать данные по штрихкоду:

Иначе

//>>

                СтрокаЧека = Новый Структура("Наименование, Количество, Цена, Скидка, НомерСекции, СтавкаНДС, Штрихкод,НеПечатать");

                СтрокаЧека.Наименование = Позиция.Наименование;

                Если СуммаСоСкидкой1С = СуммаСоСкидкойФР Тогда                                                                                                                                          

                                СтрокаЧека.Количество   = Позиция.Количество;

                               СтрокаЧека.Цена         = Позиция.Цена;

                               СтрокаЧека.Скидка       = Позиция.Скидка;

                               СтрокаЧека.НомерСекции  = Позиция.НомерСекции;

                               СтрокаЧека.СтавкаНДС    = Позиция.СтавкаНДС; 

                               СтрокаЧека.НеПечатать      = Истина;

                               СтрокаЧека.Штрихкод                        = Позиция.Штрихкод;

                Иначе

                               СтрокаЧека.Количество   = 1;

                                СтрокаЧека.Цена         = СуммаСоСкидкой1С;

                               СтрокаЧека.Скидка       = 0;

                               СтрокаЧека.НомерСекции  = Позиция.НомерСекции;

                               СтрокаЧека.СтавкаНДС    = Позиция.СтавкаНДС;

                               СтрокаЧека.НеПечатать      = Истина;

                               СтрокаЧека.Штрихкод                        = Позиция.Штрихкод;

                КонецЕсли;

                Результат = ПолучитьСерверТО().ПечатьСтрокиЧека(Идентификатор, СтрокаЧека);                                                                           

                //<<

КонецЕсли;

Далее изменим структуру для печати позиции

Если НЕ ЗначениеЗаполнено(Результат) Тогда
		Если СтруктрураШаблона <> Неопределено И СтруктрураШаблона.ОднаФискальнаяСтрока Тогда
				
		МассивСтрокДляПечати =  ПроцедурыПечатиФискальныхЧеков.ПреобразоватьМассивСоответствийВМассивТекстовыхСтрок(СтруктрураШаблона.СоставнойМассив);
		Результат = ПОлучитьСерверТО().ПечатьТекста(Идентификатор, МассивСтрокДляПечати, СтруктрураШаблона.ШиринаЧека);
				
		Если ЗначениеЗаполнено(Результат) Тогда
			Возврат Результат;
		КонецЕсли;
				
		//>>
		Если НЕ (СтруктрураШаблона <> Неопределено) Тогда
			СтрокаЧека = Новый Структура("Наименование, Количество, Цена, Скидка, НомерСекции, СтавкаНДС");
			СтрокаЧека.Наименование = "Всего:";
			СтрокаЧека.Количество   = 1;
			СтрокаЧека.Цена         = Товары.Итог("Сумма");
			СтрокаЧека.Скидка       = 0;
			СтрокаЧека.СтавкаНДС    = 0;
			СтрокаЧека.НомерСекции  = Позиция.НомерСекции;
			Результат = ПолучитьСерверТО().ПечатьСтрокиЧека(Идентификатор, СтрокаЧека);
		КонецЕсли;

Изменим функцию «ПровестиИРаспечататьЧек», добавим колонку для штрихкода:

 

ТаблицаТоваров = Новый ТаблицаЗначений;
ТаблицаТоваров.Колонки.Добавить("Наименование");
ТаблицаТоваров.Колонки.Добавить("НомерСекции");
ТаблицаТоваров.Колонки.Добавить("Цена");
ТаблицаТоваров.Колонки.Добавить("Количество");
ТаблицаТоваров.Колонки.Добавить("Скидка");
ТаблицаТоваров.Колонки.Добавить("СтавкаНДС");
ТаблицаТоваров.Колонки.Добавить("Штрихкод");//>>

 

Далее в цикле заполним колонку «Штрихкод»

 

Пока Выборка.Следующий() Цикл
	Товар = ТаблицаТоваров.Добавить();

	Товар.Наименование = СокрЛП(Выборка.Номенклатура)
	                   + "(" + СокрЛП(Выборка.ЕдиницаИзмерения)
                   + ?(ПустаяСтрока(Выборка.ХарактеристикаНоменклатуры), "", ", " + СокрЛП(Выборка.ХарактеристикаНоменклатуры)) + ")";
			
	Товар.НомерСекции  = 1;
	Товар.Цена         = Выборка.Цена;
	Товар.Количество   = Выборка.Количество;
	Товар.Скидка       = Выборка.ПроцентСкидкиНаценки;
	Товар.СтавкаНДС    = ?(ПечататьНДСВКассовыхЧекахИзДокументовЧекККМ, Ценообразование.ПолучитьСтавкуНДС(Выборка.СтавкаНДС), 0);
	Товар.Штрихкод 	   = ПолучитьШК(Выборка); //MI++>>
КонецЦикла;

 

Функция ПолучитьШК:

Функция ПолучитьШК(Выборка)
	Нм = Справочники.Номенклатура.НайтиПоНаименованию(Выборка.Номенклатура);
	Хр = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию(Выборка.ХарактеристикаНоменклатуры);
	Запрос = Новый Запрос();
	Запрос.Текст =
	"ВЫБРАТЬ
	|	Штрихкоды.ХарактеристикаНоменклатуры,
	|	Штрихкоды.Штрихкод,
	|	Штрихкоды.Владелец,
	|	ХарактеристикиНоменклатуры.Ссылка
	|ИЗ
	|	РегистрСведений.Штрихкоды КАК Штрихкоды
	|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
	|		ПО Штрихкоды.Владелец = ХарактеристикиНоменклатуры.Владелец
	|ГДЕ
	|	Штрихкоды.Владелец = &Ссылка
	|	И ХарактеристикиНоменклатуры.Наименование = &Наименование";
	Запрос.УстановитьПараметр("Ссылка",Нм.Ссылка);
	Запрос.УстановитьПараметр("Наименование",Выборка.ХарактеристикаНоменклатуры);
	
	Рез = Запрос.Выполнить();
	Если Рез.Пустой() Тогда
		Возврат "";
	Иначе
		_Выборка = РЕз.Выбрать();
		Пока _Выборка.Следующий() Цикл
			Если  Найти(_Выборка.ХарактеристикаНоменклатуры.Наименование,Выборка.ХарактеристикаНоменклатуры)>0 Тогда
				Возврат _Выборка.Штрихкод;
			КонецЕсли;	
		Конеццикла;
	КонецЕсли;
	Возврат "";
	
КонецФункции

Изменим процедуру «КнопкаКупоныНажатие» в Форме регистрации продаж, для корректного открытия денежного ящика:

Если  Результат = Перечисления.ТООшибкиОбщие.ПустаяСсылка() Тогда
	  //>>
	  Попытка
		  врОтвет = Объект.Драйвер.ОткрытьДенежныйЯщик(Объект.ИДУстройства,0);// НомерДенежногоЯщика)
		  КодОшибки = Объект.Драйвер.ПолучитьОшибку(Объект.ОписаниеОшибки);
	  Исключение
		  Объект.Драйвер.Password = Объект.Параметры.ПарольАдминистратора;
		  Объект.Драйвер.DrawerNumber = 0;
		  врОтвет = Объект.Драйвер.ОткрытьДенежныйЯщик();// НомерДенежногоЯщика)
		  КодОшибки = Объект.Драйвер.ResultCode;
		  Объект.ОписаниеОшибки = Объект.Драйвер.ResultCodeDescription;
	  КонецПопытки;
	  //<<
  КонецЕсли;

И изменим в обработке «ТОСервер» функцию ПечатьСтрокиЧека:

Если НЕ ЗначениеЗаполнено(Результат) Тогда
		Результат = Обработка.ПечататьСтроку(Объект,
		                                 СтрокаЧека.Наименование,
		                                 СтрокаЧека.Количество,
		                                 СтрокаЧека.Цена,
		                                 СтрокаЧека.Скидка,
		                                 СтрокаЧека.НомерСекции,
		                                 СтрокаЧека.СтавкаНДС,
										 СтрокаЧека.Штрихкод,
										 СтрокаЧека.НеПечатать);   //>> 

  1. Изменение обработки для работы с Yarus

Для основы возьмем обработку “ShtrihMFiscalPrinters_v2.epf”, в модуле обработки опишем сперва стандартные функции и процедуры:

функция «СоздатьОбъектДрайвера»

Вместо кода

ПрогИД = "AddIn.DrvFR1C";

будет код

ПрогИД = "Addin.DrvFR";

И код

мВерсияИзДрайвера = Драйвер.ПолучитьНомерВерсии();

заменим кодом

мВерсияИзДрайвера = Драйвер.DriverVersion;//

Функция «Подключить»

Код

Если Не Объект.Драйвер.Подключить(МассивЗначений, Объект.ИДУстройства) Тогда
		КодОшибки = Объект.Драйвер.ПолучитьОшибку(Объект.ОписаниеОшибки);
		Результат = мОшибкаНеизвестно;
	Иначе
		Если Объект.Параметры.ОтменятьЧекПриПодключении Тогда
			Объект.Драйвер.ОтменитьЧек(Объект.ИДУстройства);
		КонецЕсли;
	КонецЕсли;

заменим на

Попытка
		Если ПодключитьFR(Объект,Объект.ОписаниеОшибки) Тогда
			Пока Истина Цикл
				Рез = ОбработкаОшибок(Объект,Объект.ИДУстройства, Истина);
				Если Рез > 0 Тогда
					КодОшибки = Объект.Драйвер.ResultCodeDescription;//Описание
					Результат = мОшибкаНеизвестно;
					Возврат Результат;
				ИначеЕсли Рез = 0 Тогда
					Прервать;
				КонецЕсли;
			КонецЦикла;
		КонецЕсли;
		Если ТаблицыККМ = Неопределено Тогда
			ТаблицыККМ = Новый Соответствие;
		КонецЕсли;
		Если ШиринаЛентыККМ = Неопределено Тогда
			ШиринаЛентыККМ = Новый Соответствие;
		КонецЕсли;
		Если НомераСисАдминов = Неопределено Тогда
			НомераСисАдминов = Новый Соответствие;
		КонецЕсли;

		
		НомерЛУ = Объект.ИДУстройства;
		ЗаполнитьПараметрыККМ(Объект,НомерЛУ);
		
		ЗагрузитьТаблицуПерекодировки();
	Исключение
		Результат = мОшибкаНеизвестно;
	КонецПопытки;

Процедура “Отключить”:

Если ОтключитьFR(Объект) Тогда
		Пока Истина Цикл
			Рез = ОбработкаОшибок(Объект,Объект.ИДУстройства, Истина);
			Если Рез > 0 Тогда
				Объект.ОписаниеОшибки = мОшибкаНеизвестно;
				Возврат;
			ИначеЕсли Рез = 0 Тогда
				Прервать;
			КонецЕсли;
		КонецЦикла;
	КонецЕсли;

Функция “ТестУстройства”:

Результат = Подключить(Объект);
	РезультатТеста = Объект.Драйвер.ResultCodeDescription;
	Если Результат = мНетОшибки Тогда
		Отключить(Объект);
	КонецЕсли;

	Возврат Результат;

Функция ХОтчет:

Результат = мНетОшибки;
	Mistake="";
	ФискальныйРегистратор = Объект.Драйвер;
	
	НомерККМ=0;
	ОтчетНомерЧека=0;
	ОтчетНомерОтчета=0;
	ОтчетНаличностьВКассе=0;
	ОтчетВыручка=0;
	ФискальныйРегистратор.GetECRStatus();
	
	Если CheckMistakeFR(Mistake,Объект)<>0 Тогда
		Объект.ОписаниеОшибки = Mistake;
		Результат = мОшибкаНеизвестно;
		
		Возврат Результат;
	КонецЕсли;
	Если ФискальныйРегистратор.ECRAdvancedMode=3 Тогда
		ФискальныйРегистратор.ContinuePrint();
		ФискальныйРегистратор.Password=Объект.Параметры.ПарольАдминистратора;
		ФискальныйРегистратор.GetECRStatus();
		Если CheckMistakeFR(Mistake,Объект)<>0 Тогда
			Объект.ОписаниеОшибки = Mistake;
			Результат = мОшибкаНеизвестно;
			
			Возврат Результат;
		КонецЕсли;
	КонецЕсли;
	Если ПолучитьПараметрыОтчета(Объект,ОтчетНомерЧека,ОтчетНомерОтчета,ОтчетНаличностьВКассе,ОтчетВыручка)=1 Тогда
		Результат = мОшибкаНеизвестно;
		
		Возврат Результат;
	КонецЕсли;
	
	ФискальныйРегистратор.Password=Объект.Параметры.ПарольАдминистратора;
	ФискальныйРегистратор.PrintReportWithoutCleaning(); 
	Если CheckMistakeFR(Mistake,Объект)<>0 Тогда
		Объект.ОписаниеОшибки = Mistake;
		Результат = мОшибкаНеизвестно;
		
		Возврат Результат;
	КонецЕсли;
	Для Ном=1 по 10 Цикл
		Пауза(3);
		ФискальныйРегистратор.Password=Объект.Параметры.ПарольАдминистратора;
		ФискальныйРегистратор.RegisterNumber=152;
		ФискальныйРегистратор.GetOperationReg();
		Если ФискальныйРегистратор.ResultCode=0 Тогда
			Если ФискальныйРегистратор.ContentsOfOperationRegister+1<>ОтчетНомерЧека Тогда
				Прервать;
			КонецЕсли;
		КонецЕсли;
		Сбой=0;
		ФискальныйРегистратор.GetECRStatus();
		Если ФискальныйРегистратор.ResultCode=0 Тогда
			Если ФискальныйРегистратор.ECRAdvancedMode=2 Тогда
				Пока 1=1 Цикл
					Предупреждение("Ошибка кассы"+?(Ном=0,""," №"+Ном)+": нет бумаги! Вставьте бумагу.","Вставьте бумагу");
					ФискальныйРегистратор.GetECRStatus();
					Если ФискальныйРегистратор.ResultCode<>0 Тогда
						Сбой=1;
						Прервать;
					КонецЕсли;
					Если ФискальныйРегистратор.ECRAdvancedMode<>2 Тогда
						Прервать;
					КонецЕсли;
				КонецЦикла;
			КонецЕсли;
			Если ФискальныйРегистратор.ECRAdvancedMode=3 Тогда
				ФискальныйРегистратор.ContinuePrint();
			КонецЕсли;
		Иначе
			Сбой=1;
		КонецЕсли; 
		Если Сбой=1 Тогда
			Прервать;
		КонецЕсли;
	КонецЦикла;
	
	Возврат Результат;

Функция ZОтчет аналогична.

Функция ОткрытьЧек:

DescMistake="";
	НомерЛУ = Объект.ИДУстройства;
	Если ТребуетсяОткрытиеСмены(Объект,НомерЛУ) Тогда
		ОткрытьСмену(Объект,НомерЛУ, НомерСмены);
		Res = CheckMistakeFR(DescMistake,Объект);
		Если (Res > 0) Тогда
			//"Ошибка подсоединения ФР.");
			Результат = мОшибкаНеизвестно;
			Объект.ОписаниеОшибки = DescMistake + ". Операция печати чека отменена.";
			
			Возврат Результат;
		ИначеЕсли (Res = 0) Тогда
			Результат = мНетОшибки;
		ИначеЕсли Res = -1 Тогда
			//"Аннулирование чека ФР.");
			Результат = мОшибкаНеизвестно;
			Объект.ОписаниеОшибки = DescMistake + ". Операция печати чека отменена.";
			
			Возврат Результат;
		КонецЕсли;
	КонецЕсли;	

	Результат  = мНетОшибки;
	НомерЧека  = 0;
	НомерСмены = 0;
	
	
	FR = Объект.Драйвер;
	
	FR.Password = Объект.Параметры.ПарольАдминистратора;
	Если НЕ Объект.Параметры.ВыключитьОФД Тогда
		Если ЭтоВозврат Тогда
			FR.CheckType=3;
		Иначе
			FR.CheckType=1;
		КонецЕсли;	
	Иначе	
		Если ЭтоВозврат Тогда
			FR.CheckType=2;
		Иначе
			FR.CheckType=0;
		КонецЕсли;	
	КонецЕсли;
	
	

	Попытка
		НаименованиеМодели = Объект.Модель.Наименование;
	Исключение
		НаименованиеМодели = Объект.Модель;
	КонецПопытки;
	
	Если (Найти(НаименованиеМодели,"ШТРИХ-ККТ ЯРУС М2100Ф")>0) Тогда
   	 Иначе
		FR.OpenCheck();
	КонецЕсли;
	
	Res = CheckMistakeFR(DescMistake,Объект);
	Если (Res > 0) Тогда
		//"Ошибка подсоединения ФР.");
		Результат = мОшибкаНеизвестно;
		Объект.ОписаниеОшибки = DescMistake + ". Операция печати чека отменена.";
		
		Возврат Результат;
	ИначеЕсли (Res = 0) Тогда
		Результат = мНетОшибки;
	ИначеЕсли Res = -1 Тогда
		//"Аннулирование чека ФР.");
		ОтменитьЧек(Объект);
		Результат = мОшибкаНеизвестно;
		Объект.ОписаниеОшибки = DescMistake + ". Операция печати чека отменена.";
		
		Возврат Результат;
	КонецЕсли;
	//-----------Теперь получим номер чека---------------------------------------------------------------------------------------------
	НомерЧека=FR.OpenDocumentNumber;
	НомерСмены =FR.SessionNumber+1; //!
	
	Возврат Результат;

Функция “ЗакрытьЧек”:

Результат = мНетОшибки;
	DescMistake="";
	
	Polucheno=СуммаНал;
	Если Не CloseCheck(Объект,СуммаНал, СуммаБезнал,Polucheno) Тогда
		ОтменитьЧек(Объект);
		Результат = мОшибкаНеизвестно;
		Объект.ОписаниеОшибки = DescMistake + ". Операция печати чека отменена.";
		
		Возврат Результат;
	КонецЕсли;	
	
	Возврат Результат;

Функция “ПечататьСтроку”:


 

Результат  = мНетОшибки;

               СуммаПозиции = Количество*Цена - Окр(Количество*Цена*Скидка/100, 2, РежимОкругления.Окр15как20);

               СуммаСкидки = Окр(Количество*Цена*Скидка/100, 2, РежимОкругления.Окр15как20);

              

               НомерЛУ = Объект.ИДУстройства;

               Если Штрихкод=Неопределено Тогда

                               ШтрихКод = ПолучитьШК(Наименование,"Наименование");//Найти ШК товара

               КонецЕсли;           

              

               Попытка

                               НаименованиеМодели = Объект.Модель.Наименование;

               Исключение

                               НаименованиеМодели = Объект.Модель;

               КонецПопытки;

               БлокСтрок = СформироватьБлокСтрок(Истина,НомерЛУ,Наименование, Количество, Цена, Скидка, Секция, НДС,Штрихкод,,НаименованиеМодели);

               Если Объект.Параметры.ЗаписьКопииЧека Тогда

                               ДокуметНТМЛ = ДокуметНТМЛ + КонвертироватьБлокСтрокВХТМЛ(НомерЛУ, БлокСтрок);

               КонецЕсли;

               НеПечатать = ?(НеПечатать=Неопределено,Ложь,НеПечатать);

               Если Не НеПечатать Тогда

                               Если Не ПечатьСтроки(Объект, НомерЛУ, КонвертироватьБлокСтрокВСтрокиДляПечати(НомерЛУ, БлокСтрок)) Тогда

                                               Возврат Ложь;

                               КонецЕсли;

               КонецЕсли;

              

               DescMistake="";   

               ФР = Объект.Драйвер;

              

               Если Объект.Параметры.ЗаписьКопииЧека Тогда

                               ТаблицаНалогов = Новый ТаблицаЗначений();

                               ТаблицаНалогов.Колонки.Добавить("Ставка");

                               ТаблицаНалогов.Колонки.Добавить("СуммаНалога");

               КонецЕсли;

               Налоги="";

              

               Если НЕ Объект.Параметры.ВыключитьОФД Тогда                    

                               ФР.Password = Объект.Параметры.ПарольАдминистратора;

                               тНаименование = СокрЛП(Наименование);

                               Если Штрихкод=Ложь Тогда

                                               Штрихкод = "";

                               КонецЕсли;           

                              

                               Если (Найти(НаименованиеМодели,"ШТРИХ-ККТ ЯРУС М2100Ф")=0) Тогда

                                               ФР.StringForPrinting = "//" + тНаименование;

                               Иначе                    

                                               ФР.StringForPrinting = тНаименование;

                               КонецЕсли;           

                               ФР.Barcode = СокрЛП(Штрихкод);

                              

                               Если ПустаяСтрока(ФР.Barcode) Тогда

                                               ФР.Barcode = 0;

                               КонецЕсли;

                              

                               ФР.Quantity = Количество;

                               ФР.Department = Секция;

                               ФР.Price = СуммаПозиции/Количество;

                               ФР.DiscountValue = 0;

                               ФР.ChargeValue = 0;

                               Если СуммаСкидки > 0 Тогда

                                               ФР.DiscountValue = СуммаСкидки;                                                 

                               ИначеЕсли СуммаСкидки < 0 Тогда

                                               ФР.ChargeValue = СуммаСкидки * -1;                                                            

                               КонецЕсли;

                              

                               ТабНалоговНаПокупку = GetTaxesOnBuy(НДС,Количество*Цена,СуммаСкидки);

                               Если Объект.Параметры.ЗаписьКопииЧека И (ТабНалоговНаПокупку <> Неопределено) Тогда

                                               Для Каждого СтрНалог Из ТабНалоговНаПокупку Цикл

                                                              НовСтр = ТаблицаНалогов.Добавить();

                                                              НовСтр.Ставка = СтрНалог.Ставка;

                                                              НовСтр.СуммаНалога = СтрНалог.СуммаНалога;

                                               КонецЦикла;

                               КонецЕсли;

                               ЗаполнитьНалоги(Объект,ТабНалоговНаПокупку);

                              

                               Пока Истина Цикл

                                               ФР.FNDiscountOperation();

                                              

                                               Рез = CheckMistakeFR(DescMistake,Объект);//ОбработкаОшибок(НомерЛУ, Истина);

                                               Если Рез > 0 Тогда

                                                              Результат = мОшибкаНеизвестно;

                                                              Объект.ОписаниеОшибки = DescMistake + ". Операция печати чека отменена.";

                                                             

                                                              Возврат Результат;

                                               ИначеЕсли Рез = 0 Тогда

                                                              Результат = мНетОшибки;

                                                              Прервать;

                                               ИначеЕсли Рез = -1 Тогда

                                                              //"Аннулирование чека ФР.");

                                                              ОтменитьЧек(Объект);

                                                              Результат = мОшибкаНеизвестно;

                                                              Объект.ОписаниеОшибки = DescMistake + ". Операция печати чека отменена.";

                                                             

                                                              Возврат Результат;              

                                               КонецЕсли;

                               КонецЦикла;

                              

               Иначе

                               ФР.Password = Объект.Параметры.ПарольАдминистратора;

                               ФР.Quantity = 1;

                               ФР.Price = Абс(СуммаПозиции);

                              

                               ФР.Department = Секция;

                               ФР.StringForPrinting = "";                  

                               Если Объект.Параметры.ЗаписьКопииЧека И (Налоги <> Неопределено) Тогда

                                               Для Каждого СтрНалог Из Налоги Цикл

                                                              НовСтр = ТаблицаНалогов.Добавить();

                                                              НовСтр.Ставка = СтрНалог.Ставка;

                                                              НовСтр.СуммаНалога = СтрНалог.СуммаНалога;

                                               КонецЦикла;

                               КонецЕсли;

                               ЗаполнитьНалоги(Объект,Налоги);

                              

                               Подитог = _ПолучитьПодитог(Объект,НомерЛУ);

                               Если Подитог = Неопределено Тогда

                                               Возврат Ложь;

                               КонецЕсли;

                              

                               Пока Истина Цикл

                                               Если (ФР.CheckType=0) Тогда//Параметры[НомерЛУ]["ТипЧека"] = 0 Тогда

                                                              ФР.Sale();

                                               Иначе

                                                              ФР.ReturnSale();

                                               КонецЕсли;

                                               Рез = CheckMistakeFR(DescMistake,Объект);//ОбработкаОшибок(НомерЛУ, Истина, Подитог);

                                               Если Рез > 0 Тогда

                                                              Результат = мОшибкаНеизвестно;

                                                              Объект.ОписаниеОшибки = DescMistake + ". Операция печати чека отменена.";

                                                             

                                                              Возврат Результат;

                                               ИначеЕсли Рез = 0 Тогда

                                                              Результат = мНетОшибки;

                                                              Прервать;

                                               ИначеЕсли Рез = -1 Тогда

                                                              //"Аннулирование чека ФР.");

                                                              ОтменитьЧек(Объект);

                                                              Результат = мОшибкаНеизвестно;

                                                              Объект.ОписаниеОшибки = DescMistake + ". Операция печати чека отменена.";

                                                             

                                                              Возврат Результат;              

                                               КонецЕсли;

                               КонецЦикла;

               КонецЕсли;

              

               Если Объект.Параметры.ЗаписьКопииЧека Тогда

                               ТаблицаНалогов.Свернуть("Ставка", "СуммаНалога");

               КонецЕсли;           

              

               Результат = мНетОшибки;

                Возврат Результат;              

Описание других функций приложено в обработке “ShtrihMFiscalPrinters_v2.epf”

 

 

  1. Настройка в Рознице

В меню “Сервис” – “Торговое оборудование”

Подключение и настройка торгового оборудования

Добавим в настройку в Фискальные регистраторы

Ниже настройки в случае подключения Yarus через COM-соединение:

Можно приступать к пробитию чеков.

Если делать соединение по Wi-Fi тогда timeout должен быть не менее 10000.

Ярус Розница 1.0 Online

См. также

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 1.6 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

Универсальная обработка для обслуживания любых фискальных регистраторов (ККТ), в том числе Веб сервер АТОЛ. Работает в соответствии с 54-ФЗ. (ФФД 1.0, ФФД 1.05, ФФД 1.1, ФФД 1.2). Подключайте любую онлайн кассу к практически любой конфигурации. Нет необходимости обновлять 1С. Можно бесплатно скачать и протестировать. Может работать одновременно с несколькими онлайн-кассами, либо одной с разных рабочих мест. (через RDP, TCP\IP или веб-сервер) Позволяет разделить один чек сразу на несколько ККТ или на несколько систем налогообложения. Поддерживает разрешительный режим и маркировку. Поддерживает локальный модуль честного знака для офлайн проверки. Можно настроить собственный шаблонов чека. Можно использовать эквайринг там, где он не поддерживается. Работает на LINUX и Windows

6000 руб.

27.02.2017    812080    5187    9770    

2940

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

Обработка осуществляет обслуживание ККТ АТОЛ, Штрих, Вики Принт и Меркурий для конфигураций "УТ 10.3", "КА 1.1", "УПП 1.3", "Розница 1.0", "БП 2.0" и других отраслевых решений, построенных на основе указанных выше конфигурациях. Поддерживает возможность параллельно пробития чеков на одной ККМ несколькими пользователями. Поддерживает Веб-сервер Атол. Соответствует требованиям 54-ФЗ. Поддерживает ФФД 1.0, 1.05, 1.1 и 1.2. Разделяет чеки по нескольким СНО. Поддерживает механизмы подключения ККТ по TCP/IP, для работы через RDP или интернет. Поддержка маркировки и разрешительного режима. Поддержка пробития чеков с новыми ставками НДС 5% и НДС 7%.

7900 руб.

25.05.2015    341645    2030    3120    

1068

ККМ Кассовые операции Розничная торговля Программист Бухгалтер Пользователь Бухгалтерский учет Оперативный учет Управляемые формы 1С:Розница 2 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение для типовых конфигураций для Управляемых форм позволяет выполнять печать кассовых чеков на одну ККМ 54-ФЗ с нескольких рабочих мест. НИКАКИХ НАСТРОЕК В РАЗРАБОТКЕ - ПОДКЛЮЧИЛ И ПЕЧАТАЙ. Если у вас несколько отделов и одна ККМ - печатайте на одной ККМ! Если у вас две ККМ и одна поломалась - печатайте на одной ККМ, пока ремонтируете другую!

9500 руб.

27.08.2018    125431    667    603    

897

ККМ Кассовые операции Розничная торговля Системный администратор Программист Пользователь Платформа 1С v8.3 1C:Бухгалтерия Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Платные (руб)

«Сервер ККМ» позволяет приложениям работать с фискальными регистраторами по локальной сети или интернет, организовать печать на одном ККМ с нескольких рабочих мест с поддержкой очереди печати. Поддерживаются ВСЕ ревизии требований фирмы 1С к разработке драйверов ККТ от 2.2 до 4.4. В поставке есть драйверы для операционных систем Linux, Android, MacOs и Windows. Поддержка драйверов Атол, Штрих и 1С-совместимых драйверов для ККТ ревизии 4.4. Поддержка 54-ФЗ и разрешительного режима, ФФД 1.05,1.1,1.2. Подключается к 1С Торговля и склад 7.7, 1С:УТ 10/11, 1С:УНФ 1.6/3, 1С:Розница 1/2/3, 1С:БП 2/3, 1С КА 1/2., 1С:ERP, УПП. Ускоряет печать из терминального сеанса Windows. Работает с разрешительным режимом даже из старых конфигураций. Предоставляет REST API для печати через веб-сервис. Поддерживаются новые ставки НДС 5% и 7%.

5000 руб.

02.09.2016    139572    180    194    

196

ККМ Розничная торговля Системный администратор Программист Платформа 1С v8.3 Оперативный учет 1С:Розница 2 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Обмен между 1С:Розница и Frontol 6 при торговле от нескольких организаций, а также ряд других полезных функций. Данный модуль синхронизации незаменим для тех, кто ведёт учет по нескольким организациям в 1С:Розница, а на РМК (рабочем месте кассира) установлен Frontol или планируется его установка. Подходит для 1С:Розница 2.3 / 3.0, 1С:УНФ 3.0

7900 руб.

22.03.2019    86713    559    479    

194

Кассовые операции ККМ Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Россия Управленческий учет Платные (руб)

Расширение для 1С:Управление торговлей 11.5, которое позволяет пробивать чеки ККМ и списывать товар с разных складов. Склад списание товара можно указывать в табличной части рабочего места кассира (РМК).

5880 руб.

12.04.2023    10754    59    3    

48

ККМ Кассовые операции Розничная торговля Ценообразование, анализ цен Системный администратор Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Можно ли в 1С:Розница подключить несколько касс на одно рабочее место? Теперь это возможно! Решение позволяет подключать неограниченное количество касс к одному рабочему месту и выбирать, на какой кассе пробивать чек в зависимости от необходимости. Публикация состоит из двух файлов: одно из них — расширение конфигурации для ПРОФ-версии, второе — внешняя обработка РМК для базовой версии.

4560 руб.

07.08.2018    77895    509    357    

367

Кассовые операции ККМ Системный администратор Программист Бухгалтер Платформа 1С v7.7 Платформа 1С v8.3 1C:Бухгалтерия 1C77 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Программа для управления ККМ Атол и Штрих нового поколения (он-лайн ККТ под 54-ФЗ) с помощью текстового файла (ini файла) с изменениями включена 1 лицензия Для любых программ, которые умеют работать с текстовыми файлами. Внутри комплекта есть готовые к использованию обработки

6000 руб.

31.07.2017    174138    600    609    

209
Оставьте свое сообщение