При загрузке розничных продаж из офлайн касс не загружается ставка НДС 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ВызовСервера
Если НЕ ЗначениеЗаполнено(НоваяСтрока.СтавкаНДС) Тогда РеквизитыОрганизации = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(РеквизитыККМ.КассаККМ, "Владелец.ВидСтавкиНДСПоУмолчанию"); НоваяСтрока.СтавкаНДС = Справочники.СтавкиНДС.СтавкаНДС(РеквизитыОрганизации.ВладелецВидСтавкиНДСПоУмолчанию, ТекущаяДатаСеанса()); КонецЕсли; // ХА #Вставка НоваяСтрока.СтавкаНДС = Справочники.СтавкиНДС.СтавкаНДС(НоваяСтрока.Номенклатура.ВидСтавкиНДС, ТекущаяДатаСеанса()); #КонецВставки // ХА
Т.е. сделал так, чтобы ставка НДС бралась из карточки номенклатуры
Если я Вам помог, то меня можно поблагодарить.








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