Подготовка конфигурации Розница 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 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой
  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

См. также

ККМ Кассовые операции Розничная торговля НДС 22% Системный администратор Программист 1С:Предприятие 8 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 Адаптировано к ставке НДС 22% и ТС ПИоТ.

6100 руб.

27.02.2017    887725    6241    10378    

3265

НДС 22% Учетные задачи ККМ Файловый обмен (TXT, XML, DBF), FTP 1С 8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Бухгалтерский учет Налоговый учет НДС Платные (руб)

Готовое обновление для конфигурации 1С:Управление торговлей 10.3, 1С:Комплексная автоматизация 1.1 , 1С:Управление производственным предприятием 1.3 обеспечивающее полную поддержку новой ставки НДС 22%. Для 1С:УТ 10.3 реализована поддержка печати чеков ККМ, а также Правила обмена с 1С:БП 3.0. Решение встраивает необходимые изменения в перечисления и документы, включая торговые операции и печатные формы.

12200 руб.

16.12.2025    7507    83    0    

77

ККМ Кассовые операции Розничная торговля НДС 22% Системный администратор Программист 1С:Предприятие 8 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% и НДС 22%.

7900 руб.

25.05.2015    370750    2197    3258    

1160

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

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

9500 руб.

27.08.2018    134352    755    603    

938

ККМ Кассовые операции Розничная торговля НДС 22% Системный администратор Программист Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:Торговля и склад 7.7 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 10 1С:Управление торговлей 11 1С:Розница 3.0 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Платные (руб)

«Сервер ККМ» позволяет приложениям работать с фискальными регистраторами по локальной сети или интернет, организовать печать на одном ККМ с нескольких рабочих мест с поддержкой очереди печати. Поддержка НДС 22% для Атол, Штрих, Ритейл и всех 1С-совместимых ККМ с драйвером ревизии 4.7 и 5.0. Поддерживаются ВСЕ ревизии требований фирмы 1С к разработке драйверов ККТ от 2.2 до 4.7. Возможность печати чеков с НДС 22% без изменения конфигурации 1С. Поддержка драйвера от "Торгового баланса М" с возможностью работы с ТСПиОТ. Поддерживаются требования к ККМ, действующие с 1 сентября 2025г.

9000 руб.

02.09.2016    152107    209    203    

228

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

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

10300 руб.

22.03.2019    96393    755    480    

224

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

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

5900 руб.

12.04.2023    15100    104    8    

82

ККМ Кассовые операции Розничная торговля НДС 22% Системный администратор Программист 1С:Предприятие 8 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием Россия Платные (руб)

Обработки осуществляют обслуживание фискальных регистраторов, поддерживаемых драйвером "АТОЛ: Драйвер ККМ v.10.10.8", "ШТРИХ-М: Драйвер ККМ v 5.21", "ВИКИ: Драйвер CSI v 1.6", для конфигураций БП, УТ, КА, УПП, "Розница 1.0", соответствующих требованиям закона ФЗ-54 о применении контрольно-кассовой техники. Поддержка НДС 20%, 22%. Поддержка маркировки 488-ФЗ. Марки. Акциз. Честный знак. Разрешительный режим. Локальный модуль Честный Знак. Поддержка УСН НДС 5%, 7%, 20%, 22%. Требования к ККТ по приказу Федеральной налоговой службы от 26.03.2025 № ЕД-7-20/23, вступающие в силе с 01.09.25

6039 руб.

02.02.2017    294732    395    2418    

574
Для отправки сообщения требуется регистрация/авторизация