1С бухгалтерия

При загрузке розничных продаж из офлайн касс не загружается ставка НДС 22.

В общем модуле ОфлайнОборудованиеАтолККМВызовСервера есть несколько функций, в которых заполняются данные из файла, в том числе данные по НДС

Прежде всего замечу, что для повторной загрузки отчета о продажах необходимо, чтобы в файле pos.rep первый символ был "#". После загрузки данный символ заменяется на "@" и программа не дает загрузить отчет второй раз.

Процедура ДобавитьТранзакциюВЧек(Смена, Смены, Транзакция, ФорматОбмена, Оплата = Ложь)
...
НовыйТовар = Новый Структура;
 
НовыйТовар.Вставить("Код",					Транзакция.Поле8);
НовыйТовар.Вставить("Количество",			Транзакция.Поле11);
НовыйТовар.Вставить("Цена",					Транзакция.Поле10);
НовыйТовар.Вставить("Сумма",				Транзакция.Поле16);
НовыйТовар.Вставить("НомерТранзакции",		Транзакция.Номер);
НовыйТовар.Вставить("ДатаИВремяТранзакции",	Транзакция.ДатаИВремя);
НовыйТовар.Вставить("ВскрытиеТары",			Ложь);
НовыйТовар.Вставить("СтавкаНДС",			Неопределено);

Видно что ставка из файла не берется.

Далее вызывается такая функция:

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

Ставка берется из функции СтавкаНДСПоКоду.
Ну и под занавес:

Функция СтавкаНДСПоКоду(КодСтавкиНДС)
 
	Если КодСтавкиНДС = 1 Тогда
		СтавкаНДС = "20";
	ИначеЕсли КодСтавкиНДС = 2 Тогда
		СтавкаНДС = "10";
	ИначеЕсли КодСтавкиНДС = 3 Тогда
		СтавкаНДС = "none";
	ИначеЕсли КодСтавкиНДС = 4 Тогда
		СтавкаНДС = "0";
	ИначеЕсли КодСтавкиНДС = 5 Тогда
		СтавкаНДС = "10/110";
	ИначеЕсли КодСтавкиНДС = 6 Тогда
		СтавкаНДС = "20/120";
	ИначеЕсли КодСтавкиНДС = 7 Тогда
		СтавкаНДС = "5";
	ИначеЕсли КодСтавкиНДС = 8 Тогда
		СтавкаНДС = "7";
	ИначеЕсли КодСтавкиНДС = 9 Тогда
		СтавкаНДС = "5/105";
	ИначеЕсли КодСтавкиНДС = 10 Тогда
		СтавкаНДС = "7/107";
	ИначеЕсли КодСтавкиНДС = 11 Тогда
		СтавкаНДС = "22";
	ИначеЕсли КодСтавкиНДС = 12 Тогда
		СтавкаНДС = "22/122";
	Иначе
		СтавкаНДС = "20";
	КонецЕсли; 
 
	Возврат СтавкаНДС;
 
КонецФункции

В результате всегда будет ставка НДС 20%

Для исправления ситуации я дописал процедуру СоздатьИЗаполнитьОтчетОПродажах из общего модуля ПодключаемоеОборудованиеOfflineВызовСервера

Если НЕ ЗначениеЗаполнено(НоваяСтрока.СтавкаНДС) Тогда
	РеквизитыОрганизации = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(РеквизитыККМ.КассаККМ, "Владелец.ВидСтавкиНДСПоУмолчанию");
	НоваяСтрока.СтавкаНДС = Справочники.СтавкиНДС.СтавкаНДС(РеквизитыОрганизации.ВладелецВидСтавкиНДСПоУмолчанию, ТекущаяДатаСеанса());
КонецЕсли;
// ХА
#Вставка
НоваяСтрока.СтавкаНДС = Справочники.СтавкиНДС.СтавкаНДС(НоваяСтрока.Номенклатура.ВидСтавкиНДС, ТекущаяДатаСеанса());
#КонецВставки
//   ХА

Т.е. сделал так, чтобы ставка НДС бралась из карточки номенклатуры

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • Строки и параграфы переносятся автоматически.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <1c7>, <drupal5>, <drupal6>, <javascript>, <php>. Beside the tag style "<foo>" it is also possible to use "[foo]".