Странное кодирование систем налогообложения
Клиенту нужно было делать различные действия в обработке в зависимости от используемой системы налогообложения. И вот тут возникла проблема — я не смог сходу отличить от «УСН + Патент» от «Только патент».
Система налогообложения хранится в регистре сведений:
При этом у перечисления систем налогообложения есть только такие значения:
А вот в форме организации появляется еще интересная галочка «Только патент», в целом форма не очень понятно как соответствует регистру:
Демка БП3 у меня была старой, там этой галочки еще не было. Ставить новую не хотелось, поэтому анализировал код.
Как обычно в 1С нет прозрачности, пришлось поковыряться. Но в конце концов нашел искомое, вот оно:
Т.е. патент тогда, когда у Организации применяется патент УСН и не применяется УСН и организация не является плательщиком НДС.
Код получился примерно такой:
Если Выборка.ПрименяетсяУСНПатент И НЕ Выборка.ПрименяетсяУСН И НЕ Выборка.ПлательщикНДС Тогда //Патент ИначеЕсли Выборка.ПрименяетсяУСНДоходы И НЕ Выборка.ПрименяетсяУСНПатент Тогда //Чистый УСН Доходы ИначеЕсли Выборка.ПрименяетсяУСНДоходыМинусРасходы //Чистый УСН Доходы-Расходы ИЛИ Выборка.ПрименяетсяУСН И Выборка.ПлательщикЕНВД //УСН с ЕНВД ИЛИ Выборка.ПрименяетсяУСН И Выборка.ПрименяетсяУСНПатент //УСН с Патентом Тогда КонецЕсли;
Долбоящеры они конечно — определять сущность через отрицания, причем не особо очевидные. А если завтра еще признак вводится — еще одно отрицание будет в условии — «патент, но не этот»? Вымораживают типовые — чтобы понять как корректно признаки расставить в справочнике надо половину типовой просмотреть — как они это булево использовать будут
да, нужно было сделать реквизит ТолькоПатент и было бы понятно.
Открываем общий модуль УчетнаяПолитика:
Функция ПрименяетсяТолькоУСНПатент(Организация, Период) Экспорт
Возврат ПрименяетсяУСНПатент(Организация, Период)
И НЕ ПлательщикЕНВД(Организация, Период)
И ПрименяетсяОсобыйПорядокНалогообложения(Организация, Период);
КонецФункции
Заибца. 1ц во всей красе. Здесь мы функцию эту используем, а здесь нет. Тут поменяли, а тут забыли — ворох новых ошибок, есть что еще исправлять. Эта музыка будет вечной
Да, мне стыдно за методистов 1с. Похоже, что пишут с колёс… Нет там глубины мысли и системной проработки.
да, именно по этой функции я и понял, как считается «Только патент».
Они невозможны в рамках текущего языка. В реализации на языке и парадигме «не курильщика» все эти поля были бы доступны максимум на чтение, а скорее всего вообще недоступны. И все бы было скрыто, кроме одной универсальной вменяемой функции, которая бы возвращала бы состояние учетной политики, причем без необходимости повторной интпрпритации ее результата — отгадайте дети, не усн и без ндс — что это на самом деле. 4 бинарных переключателя дают 16 вариантов, из которых сочетаний которые имеют смысл 5-7. А 1ц заставляет аналитика ломать голову — это неучтенный глюк или новая фича из НК, или интерпретация методологов с селезневской
Всё так… Но что есть то есть…
Имеем дело с тем, что имеем.