Архив метки: печать чека

Пример печати чека на ККМ Атол посредством JavaScript

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

Читать далее Пример печати чека на ККМ Атол посредством JavaScript

Не печатает чек с СН ЕНВД Розница 2.2

Ну хоть ты тресни, но после выставления в настройках организации:

И установка что продажи по складу именно ЕНВД:

На чеке, при фискализации на ККТ всё равно вылезало СН : УСН Доходы. В результате копания кода 1С, в модуле Общиймодуль.ПодключаемоеОборудованиеРК, нашел функцию отвечающую за выдачу на ККТ систему налогообложения:

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

И что мы тут видим? Определение СН идет по выборке из регистра РегистрСведений.СистемыНалогообложенияОрганизаций. Четко видим что ЕНВД присутствует. Идём в форму заполнения этого регистра и видим:

Что за хрень ерунда? Видишь суслика? Нет. А он есть. 1С ники писали-писали, но что-то не дописали. Теоретически по моему предположению, в функции выше должна быть проверка не только СН у организации, но и по складу. Но они её засунули в другую обработку — при сборке позиций товара. И там эта «ЕНВД» в чеке уже никак не участвует. Точнее участвет, но не понятно как. Есть вероятность, что я конечно какую-то галочку очередную не нашел. А может и ошибка 1С. Может в следующих релизах поправят. А пока добавил «костыль»:

Если Выборка.Следующий() Тогда
		// грибов. Костыль чтоб печатался чек ЕНВД
		Если Выборка.СистемаНалогообложения = Перечисления.СистемыНалогообложения.Общая Тогда
			Возврат Перечисления.ТипыСистемНалогообложенияККТ.ЕНВД;
			//Возврат Перечисления.ТипыСистемНалогообложенияККТ.ОСН;
		ИначеЕсли Выборка.ОбъектНалогообложения = Перечисления.ОбъектыНалогообложенияПоУСН.Доходы Тогда
			Возврат Перечисления.ТипыСистемНалогообложенияККТ.ЕНВД;
			//Возврат Перечисления.ТипыСистемНалогообложенияККТ.УСНДоход;
		Иначе
			Возврат Перечисления.ТипыСистемНалогообложенияККТ.ЕНВД;
			//Возврат Перечисления.ТипыСистемНалогообложенияККТ.УСНДоходРасход
		КонецЕсли;
	Иначе
		Возврат Перечисления.ТипыСистемНалогообложенияККТ.ЕНВД;
		//Возврат Перечисления.ТипыСистемНалогообложенияККТ.ОСН;
	КонецЕсли;