Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
mmm_kazan Участник со стажем
Вступление в Клуб: 28.03.2018
|
Пт Апр 20, 2018 11:33  КПП не клиента банка |
|
Полезность: Нет оценки
|
Интересно - почему ЦФТ пропустил такое КПП?
78^010001 |
|
 |
Blackmore64 Профи
Вступление в Клуб: 17.01.2017
|
Пт Апр 20, 2018 12:19  Re: КПП не клиента банка |
|
Полезность: Нет оценки
|
mmm_kazan пишет: | Интересно - почему ЦФТ пропустил такое КПП?
78^010001 |
Скорей всего ошибка в ЦФТ. В некоторых местах проверяется наличие 9 символов, в других - 9 цифр. Наиболее правильная имхо в CLIENT.LIB.CheckKPP - проверяется длина КПП (9 символов) и наличие нецифровых символов - символы A-Z допустимы только в 5-6 разрядах. |
|
 |
mmm_kazan Участник со стажем
Вступление в Клуб: 28.03.2018
|
Пт Апр 20, 2018 13:06  Re: КПП не клиента банка |
|
Полезность: Нет оценки
|
Blackmore64 пишет: | mmm_kazan пишет: | Интересно - почему ЦФТ пропустил такое КПП?
78^010001 |
Скорей всего ошибка в ЦФТ. В некоторых местах проверяется наличие 9 символов, в других - 9 цифр. Наиболее правильная имхо в CLIENT.LIB.CheckKPP - проверяется длина КПП (9 символов) и наличие нецифровых символов - символы A-Z допустимы только в 5-6 разрядах. |
Привет.
Просто есть вариант. при нажатии кнопки OK. Проверку сделать - у нас все равно расширение работает. |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Пт Апр 20, 2018 14:04   |
|
Полезность: Нет оценки
|
Цитата: | и наличие нецифровых символов - символы A-Z допустимы только в 5-6 разрядах.
|
структура кода причины постановки на учет представляет собой девятизначный номер (NNNNPPXXX), где: NNNN – код налогового органа, где была поставлена на учет организация; PP – причина постановки на учет (эти символы могут принимать значения для российских организаций – от 1 до 50, для иностранных – от 51 до 99); XXX – порядковый номер постановки на учет в территориальном налоговом органе |
|
 |
Blackmore64 Профи
Вступление в Клуб: 17.01.2017
|
Пт Апр 20, 2018 14:35   |
|
Полезность: Нет оценки
|
Volod пишет: | Цитата: | и наличие нецифровых символов - символы A-Z допустимы только в 5-6 разрядах.
|
структура кода причины постановки на учет представляет собой девятизначный номер (NNNNPPXXX), где: NNNN – код налогового органа, где была поставлена на учет организация; PP – причина постановки на учет (эти символы могут принимать значения для российских организаций – от 1 до 50, для иностранных – от 51 до 99); XXX – порядковый номер постановки на учет в территориальном налоговом органе |
Приказ ФНС России от 29.06.2012 N ММВ-7-6/435@ "Об утверждении Порядка и условий присвоения, применения, а также изменения идентификационного номера налогоплательщика":
4. Структура КПП представляет собой девятизначный код:
NNNNPPXXX
5. КПП состоит из следующей последовательности символов слева направо:
1) NNNN (4 знака) - код налогового органа, который осуществил постановку на учет организации по месту ее нахождения, месту нахождения обособленного подразделения организации, расположенного на территории Российской Федерации, месту нахождения принадлежащих ей недвижимого имущества и транспортных средств, а также по иным основаниям, предусмотренным Налоговым кодексом Российской Федерации, или осуществил учет сведений в отношении организации в случаях, предусмотренных Порядком постановки на учет, снятия с учета в налоговых органах российских организаций по месту нахождения их обособленных подразделений, принадлежащих им недвижимого имущества и (или) транспортных средств, физических лиц - граждан Российской Федерации, а также индивидуальных предпринимателей, применяющих упрощенную систему налогообложения на основе патента, утвержденным приказом Министерства финансов Российской Федерации от 05.11.2009 N 114н "Об утверждении Порядка постановки на учет, снятия с учета в налоговых органах российских организаций по месту нахождения их обособленных подразделений, принадлежащих им недвижимого имущества и (или) транспортных средств, физических лиц - граждан Российской Федерации, а также индивидуальных предпринимателей, применяющих упрощенную систему налогообложения на основе патента" (зарегистрирован Министерством юстиции Российской Федерации 28.01.2010, регистрационный номер 16121; "Российская газета", 2010, N 27);
2) PP (2 знака) - причина постановки на учет (учета сведений). Символ P представляет собой цифру или заглавную букву латинского алфавита от A до Z.
Числовое значение символов PP может принимать значение:
для российской организации от 01 до 50 (01 - по месту ее нахождения);
для иностранной организации от 51 до 99;
3) XXX (3 знака) - порядковый номер постановки на учет (учета сведений) в налоговом органе по соответствующему основанию. |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Пт Апр 20, 2018 14:43   |
|
Полезность: Нет оценки
|
Да, увидел в первоисточнике. |
|
 |
Blackmore64 Профи
Вступление в Клуб: 17.01.2017
|
Пт Апр 20, 2018 14:58  Re: КПП не клиента банка |
|
Полезность: Нет оценки
|
mmm_kazan пишет: | Просто есть вариант. при нажатии кнопки OK проверку сделать - у нас все равно расширение работает. |
Мы недавно делали проверку КПП получателя при добавлении платежного документа - использовали хук/точку вызова MD_ED_VALIDATE. В локальной операции немного переделали CLIENT.LIB.CheckKPP и сделали так: Код: | if P#CL_KT_2.[KPP] is not null and P#CL_KT_2.[KPP] <> '0' then
v_result := null;
if length (P#CL_KT_2.[KPP]) < 9 then
v_result := v_result || bool_char (v_result is null, '', ' ') ||'КПП должен иметь длину в 9 символов.';
elsif P#CL_KT_2.[KPP] like '00%' then
v_result := v_result || bool_char (v_result is null, '', ' ') ||'КПП не может начинаться с двух нулей.';
elsif regexp_instr(P#CL_KT_2.[KPP], '^\d{4}[[:digit:]A-Z]{2}\d{3}$') = 0 then
v_result := v_result || bool_char (v_result is null, '', ' ') ||'КПП не соответствует утвержденной структуре (приказ ФНС ММВ-7-6/435@).';
end if;
if v_result is not null then
pragma error('"КПП получателя" (поле 103): ' || v_result);
end if;
end if; |
|
|
 |
mmm_kazan Участник со стажем
Вступление в Клуб: 28.03.2018
|
Пт Апр 20, 2018 15:35   |
|
Полезность: Нет оценки
|
Научите, пожалуйста.
Как например в MD_ED_VALIDATE правильно вставить свою проверку?
Желательно подробно |
|
 |
Blackmore64 Профи
Вступление в Клуб: 17.01.2017
|
Пн Апр 23, 2018 11:03   |
|
Полезность: Нет оценки
|
mmm_kazan пишет: | Как например в MD_ED_VALIDATE правильно вставить свою проверку? |
В операции "Редактировать документ (MAIN_DOCUM.EDIT_DOC) есть вызов хука Код: | ::[HOOK].[MD_ED_VALIDATE] | для возможности вставки дополнительных проверок банка.
В операции HOOK.MD_ED_VALIDATE в теле есть конструкция это значит используется справочник "Расширения и перекрытия. Точки вызова". В данном справочнике надо найти запись по фильтру "Короткое имя метода" = MD_ED_VALIDATE. Далее провалиться в массив "Методы" и добавить строку с локальной операцией (с непустым приоритетом), которая должна быть предварительно создана.
Локальную операцию проще всего создать копированием (перетаскиванием) операции HOOK.MD_ED_VALIDATE в тип "Платежные документы". Изменить короткое имя операции, например, на ПрефиксБанка_ED_VALIDATE. В теле операции вставить любые проверки, например Код: | v_result string(100);
begin
if P_INFO_ = 'OK' then
if P#CL_KT_2.[KPP] is not null and P#CL_KT_2.[KPP] <> '0' then -- Контроль КПП получателя 23.01.2018
--v_result := ::[DOCUMENT_INT].[PRX_CLIENT].CheckKPP(nvl(P#CL_KT_2.[KPP], '*')); -- см. [CLIENT].[LIB].CheckKPP(p_kpp) - есть косяк!
v_result := null;
if length (P#CL_KT_2.[KPP]) < 9 then
v_result := v_result || bool_char (v_result is null, '', ' ') ||'КПП должен иметь длину в 9 символов.';
elsif P#CL_KT_2.[KPP] like '00%' then
v_result := v_result || bool_char (v_result is null, '', ' ') ||'КПП не может начинаться с двух нулей.';
elsif regexp_instr(P#CL_KT_2.[KPP], '^\d{4}[[:digit:]A-Z]{2}\d{3}$') = 0 then
v_result := v_result || bool_char (v_result is null, '', ' ') ||'КПП не соответствует утвержденной структуре (приказ ФНС ММВ-7-6/435@).';
end if;
if v_result is not null then
pragma error('"КПП получателя" (поле 103): ' || v_result);
end if;
end if;
end if;
end;
| Закомментарить или удалить текст в Локальных описаниях.
Аналогично с редактированием кассовых документов - HOOK.MD_EK_VALIDATE. |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|