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

20.05.20

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

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

Скачать исходный код

Наименование Файл Версия Размер
Интеграция Yarus(М2100Ф) с 1С на примере подключения в Рознице 1.0 (1.0.14.4):
.epf 59,08Kb
1
.epf 59,08Kb 1 Скачать
  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

См. также

ККТ-ОНЛАЙН 54-ФЗ: Обработка для работы онлайн касс АТОЛ, ШТРИХ, VIKI PRINT и т.д. МАРКИРОВКА (Разрешит. режим) + ЭКВАЙРИНГ + БЕСПЛАТНЫЙ ДЕМО

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

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

6000 руб.

27.02.2017    768584    4693    9504    

2794

54-ФЗ и Разрешительный режим. Обработки для подключения онлайн-касс к 1С 8 (поддержка Маркировки) + Эмулятор + ФФД 1.2

ККМ Кассовые операции Розничная торговля Платформа 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 или интернет. Поддержка маркировки и разрешительного режима.

5400 руб.

25.05.2015    319325    1854    3014    

998

Обмен между 1С:Розница и Frontol 6 по организациям (Розница - Фронтол)

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

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

1500 руб.

22.03.2019    79236    405    476    

169

Обработка 1С для печати чеков на кассе ККТ АТОЛ.ОНЛАЙН

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

Печать чеков по документам 1С РеализацияТоваров (РасходнаяНакладная), КорректировкаРеализации, СчетНаОплату, ЗаказКлиента, ЧекККМ, ПоступлениеНаРС. Соответствует требованиям 54-ФЗ. Одна облачная касса может использоваться всеми подразделениями организации, без привязки к рабочим местам. Электронные чеки отправляются на email клиента и всегда доступны в 1С, по требованию можно распечатать. Легкая настройка: после регистрации кассы на сайте АТОЛ.ОНЛАЙН, в обработке необходимо указать логин, пароль и идентификатор группы ККТ (берутся в личном кабинете АТОЛ.ОНЛАЙН). Одну кассу можно использовать с 1С при расчетах с физ. и юр. лицами и для интернет-магазина. HTTPS протокол интеграции API v4 / ФФД 1.05 или API v5 / ФФД 1.2.

21600 руб.

23.08.2022    10769    27    4    

24

Пробитие чека ККМ с разных складов через РМК в УТ 11

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

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

5880 руб.

12.04.2023    8062    30    2    

25

Разбитие чека ККМ по группам товаров и пробитие их на разных кассах, подключенных к одному рабочему месту. Расширение для УТ 11.5, УТ 11.4, КА 2.5

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

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

5880 руб.

22.08.2022    10142    15    15    

19

Сервер ККМ (54-ФЗ, быстрая печать чеков из терминального сеанса, печать с нескольких ПК)

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

"Сервер ККМ" позволяет приложениям работать с фискальными регистраторами из терминального сеанса Windows по локальной сети или интернет, организовать печать на одном ККМ с нескольких рабочих мест. Поддержка драйверов Атол, Штрих и VikiPrint. Поддержка 54-ФЗ. Поддержка ФФД 1.2. Подключается к 1С Торговля и склад 7.7, 1С:УТ 10/11, 1С:УНФ, 1С:Розница 1/2, 1С:БП 2/3, 1С КА 1/2., 1С:ERP, УПП

3000 руб.

02.09.2016    132816    126    191    

166

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

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

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

4800 руб.

31.07.2017    165630    565    604    

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