Некорректно отображается ИНН

Тема в разделе "1C и всё что с ней связано", создана пользователем Renewer, 8 июл 2008.

  1. Renewer

    Renewer Гость

    Бухгалтерия 7.7
    Конфигурации 7.70.027
    7.70.491

    Когда выписываешь платежное поручение, нажимаешь кнопку ПЕЧАТЬ, то заполняется автоматически документ,
    при этом ИНН (у предпринимателей 12 знаков) указывается только 10 цифр, 11-я цифра исчезает (ее не видно),
    а 12-я цифра переносится в КПП.
    В итоге получаем 10 цифр ИНН и 1 цифру КПП, а нам нужно сделать 12 цифр ИНН чтобы отображались в документе при ПЕЧАТИ.
    В конфигураторе у контрагентов, прописано в свойствах ИНН "Строка" 12 знаков. А все равно выводит 10.
    Кто поможет?
     
  2. gorlanovmax

    gorlanovmax Well-Known Member
    1C Team

    Регистрация:
    19 июн 2008
    Сообщения:
    286
    Симпатии:
    0
    Во -первых для ИП нужно использовать конфигурацию Предприниматель.

    Ну а если уж все-таки используешь Бухгалтерию, то открой документ Платежное Поручение, найди процедуру отвечающую за печать (в конфигураторе наведи курсор на кнопку п"печать" и в всплывающей подсказке посмотри процедуру), Скопируй текст процедуры и скинь его мне
     
  3. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    которая отличается от бухии только наличием двух дополнительных отчетов (книга учета доходов и расходов и книга движений по расчетному счету).
     
  4. gorlanovmax

    gorlanovmax Well-Known Member
    1C Team

    Регистрация:
    19 июн 2008
    Сообщения:
    286
    Симпатии:
    0
    может и так. там нет плана счетов вообще.
    но к слову я сам сижу на предпринимателе и у меня инн отображается правильно. скорее всего дело в обработке печати платежки
     
  5. Renewer

    Renewer Гость

    [codebox]
    Процедура Печать()
    Если (ДатаДок >= '15.02.2000') и (Прав(Строка(НомерДок),3) = "000") Тогда
    Если Вопрос("Номер платежного поручения не может оканчиваться на ""000"".
    |Вернуться к редактированию документа?", "Да+Нет") = "Да" Тогда
    Активизировать("НомерДок");
    Возврат;
    КонецЕсли;
    КонецЕсли;

    Таб = СоздатьОбъект("Таблица");
    ИмяФайлаПечатнойФормы = КаталогИБ()+"ExtForms\PrnForms\1cbpp03.mxl";
    Если ФС.СуществуетФайл(ИмяФайлаПечатнойФормы) = 1 Тогда
    Таб.ИсходнаяТаблица(ИмяФайлаПечатнойФормы);
    Иначе
    Таб.ИсходнаяТаблица("ПлПор");
    КонецЕсли;

    Если (ПеречислениеНалога=1) Тогда
    ПеречислениеНалога(1);
    КонецЕсли;

    Таб.Вывести();

    Таб.Область("НаименованиеНомер").Текст = "ПЛАТЕЖНОЕ ПОРУЧЕНИЕ № "+глПреобразоватьНомерДок(НомерДок, 0, 0);
    Таб.Область("ДатаДокумента").Текст = глВыводДатыПлатежныхДокументов(ДатаДок,РасчетныйСчет); // Месяц даты числом или прописью
    Таб.Область("ОчередностьПлатежа").Текст = Очередность;
    Таб.Область("СуммаЧислом").Текст = глВыводСуммыПлатежныхДокументов(Сумма,РасчетныйСчет); // Сумма без 00 копеек (=) или (-00)
    Таб.Область("СуммаПрописью").Текст = глВыводСуммыПлатежныхДокументовПрописью(Сумма,РасчетныйСчет); // Сумма без 00 копеек (=) или (-00)
    Таб.Область("СрокПлатежа").Текст = ?(ПустоеЗначение(СрокПлатежа)=1,"",Формат(СрокПлатежа,"Д ДДММГГГГ"));
    Таб.Область("ОчередностьПлатежа").Текст = Очередность;
    Таб.Область("ВидПлатежа").Текст = ВидПлатежа;

    Плательщик = "";БанкПлательщика = "";НомерСчетаПлательщика = "";БИКБанкаПлательщика = "";СчетБанкаПлательщика = "";ИННплательщика="";
    глПлатежныеРеквизиты(РасчетныйСчет.ТекущийЭлемент(), Плательщик, БанкПлательщика, НомерСчетаПлательщика, БИКБанкаПлательщика, СчетБанкаПлательщика, ИННплательщика,, 2);
    Плательщик = СокрЛП(?(ПеречислениеНалога=1, Константа.НаименованиеПлательщикаПриПеречисленииНалогов, Плательщик));
    Таб.Область("Плательщик").Текст = Плательщик;
    Таб.Область("БанкПлательщика").Текст = БанкПлательщика;
    Таб.Область("НомерСчетаПлательщика").Текст = НомерСчетаПлательщика;
    Таб.Область("БИКБанкаПлательщика").Текст = БИКБанкаПлательщика;
    Таб.Область("СчетБанкаПлательщика").Текст = СчетБанкаПлательщика;

    Таб.Область("СтатусСоставителяПлДок").Текст= ?(ПеречислениеНалога=1, СтатусСоставителяПлДок,"");
    Таб.Область("ИННПлательщика").Текст = "ИНН " + ?(ПеречислениеНалога=1,?(ПустаяСтрока(ИННплательщика)=1,"0", ИННплательщика), ИННплательщика);
    Таб.Область("КПППлательщика").Текст = "КПП " + ?(ПеречислениеНалога=1,?(ПустаяСтрока(КППплательщика)=1,"0", КППплательщика), КППплательщика);
    Таб.Область("КодБК").Текст = ?(ПеречислениеНалога=1,?((ПустаяСтрока(КодБК)=1) и (ДатаДок < '01.01.2005'),"0", СокрЛП(КодБК)),"");
    Таб.Область("КодОКАТО").Текст = ?(ПеречислениеНалога=1,?((ПустаяСтрока(КодОКАТО)=1) и (ДатаДок < '01.01.2005'),"0", СокрЛП(КодОКАТО)),"");
    Таб.Область("ПоказательОснования").Текст = ?(ПеречислениеНалога=1,?(ПустаяСтрока(ПоказательОснования)=1,"0", ПоказательОснования),"");
    ПечПоказательПериода = ?(СокрЛП(СтрЗаменить(ПоказательПериода,".",""))="0","",ПоказательПериода);
    Таб.Область("ПоказательПериода").Текст = ?(ПеречислениеНалога=1,?(ПустаяСтрока(СокрЛП(СтрЗаменить(ПечПоказательПериода,".","")))=1,"0", ПечПоказательПериода),"");
    Таб.Область("ПоказательНомера").Текст = ?(ПеречислениеНалога=1,?(ПустаяСтрока(ПоказательНомера)=1,"0", СокрЛП(ПоказательНомера)),"");
    Таб.Область("ПоказательДаты").Текст = ?(ПеречислениеНалога=1,?(ПустоеЗначение(ПоказательДаты)=1,"0", Формат(ПоказательДаты,"Д ДДММГГГГ")),"");
    Таб.Область("ПоказательТипа").Текст = ?(ПеречислениеНалога=1,?(ПустаяСтрока(ПоказательТипа)=1,"0", СокрЛП(ПоказательТипа)),"");

    Получатель = "";БанкПолучателя = "";НомерСчетаПолучателя = "";БИКБанкаПолучателя = "";СчетБанкаПолучателя = "";ИННполучателя="";
    глПлатежныеРеквизиты(СчетКонтрагента.ТекущийЭлемент(), Получатель, БанкПолучателя, НомерСчетаПолучателя, БИКБанкаПолучателя, СчетБанкаПолучателя, ИННполучателя,, 2);
    Таб.Область("Получатель").Текст = Получатель;
    Таб.Область("БанкПолучателя").Текст = БанкПолучателя;
    Таб.Область("НомерСчетаПолучателя").Текст = НомерСчетаПолучателя;
    Таб.Область("БИКБанкаПолучателя").Текст = БИКБанкаПолучателя;
    Таб.Область("СчетБанкаПолучателя").Текст = СчетБанкаПолучателя;

    Таб.Область("ИННПолучателя").Текст = "ИНН " + ИННполучателя;
    Таб.Область("КПППолучателя").Текст = "КПП " + ?(ПеречислениеНалога=1,?(ПустаяСтрока(КППполучателя)=1,"0", КППполучателя), КППполучателя);

    СтрСуммаНДС = ФормирСуммаНДС(АвтоПодстСуммыНДС,Сумма,НДС,СтавкаНДС);
    Таб.Область("НазначениеПлатежа").Текст = СокрЛП(Содержание)+" "+СокрЛП(СтрСуммаНДС);

    Таб.Опции(0,0,0,0,"ОпцииПечатиПлПор","ПараметрыОкнаПлПор");
    Таб.ТолькоПросмотр(1);
    Таб.ПараметрыСтраницы(,,,,0,,,,,);
    Таб.Показать("Печать платежного поручения","");
    КонецПроцедуры[/codebox]
     
  6. gorlanovmax

    gorlanovmax Well-Known Member
    1C Team

    Регистрация:
    19 июн 2008
    Сообщения:
    286
    Симпатии:
    0
    в глобальном модуле посмотри функцию глПлатежныеРеквизиты() где-то в ней должна быть проверка инн
     
  7. Renewer

    Renewer Гость

    Возможно вы и правы, здесь кроется ответ, только я его не вижу, далек от программирования...

    Процедура глПлатежныеРеквизиты(Счет, СтрОрганизация="", СтрБанк="", РасчСчет="", БИК="", КоррСчет="", ИНН="", КПП="", Режим = 1) Экспорт

    СтрБанк = "";
    ПолучСтрОрг = СокрЛП(СтрОрганизация);
    СтрОрганизация = "";

    Если Счет.Вид()="РасчетныеСчета" Тогда

    ИНН = ?(Счет.Владелец.ВидКонтрагента = Перечисление.ВидыКонтрагентов.ЧастноеЛицо, СРЕД(Счет.Владелец.ИНН,1,12),СРЕД(Счет.Владелец.ИНН,1,10));
    СтрКПП = ?(Счет.Владелец.ВидКонтрагента = Перечисление.ВидыКонтрагентов.ЧастноеЛицо, "",СРЕД(Счет.Владелец.ИНН,12));

    КПП = ?(ПустоеЗначение(КПП) = 0, КПП, СтрКПП);

    Если Режим = 1 Тогда
    глДобавитьРеквизит(СтрОрганизация, "ИНН ", Счет.Владелец.ИНН);
    КонецЕсли;
    Если ПустаяСтрока(Счет.Владелец.ПолнНаименование)=1 Тогда
    глДобавитьРеквизит(СтрОрганизация, " ", Счет.Владелец.Наименование);
    Иначе
    глДобавитьРеквизит(СтрОрганизация, " ", Счет.Владелец.ПолнНаименование);
    КонецЕсли;

    Иначе
    Если СтрДлина(СокрЛП(Константа.ИННОрганизации))<13 Тогда
    ИНН = СокрЛП(Константа.ИННОрганизации);
    СтрКПП = "";
    ИначеЕсли Найти("0123456789",СРЕД(Константа.ИННОрганизации,11,1))=0 Тогда
    ИНН = СРЕД(Константа.ИННОрганизации,1,10);
    СтрКПП = СРЕД(Константа.ИННОрганизации,12);
    Иначе
    ИНН = СРЕД(Константа.ИННОрганизации,1,12);
    СтрКПП = СРЕД(Константа.ИННОрганизации,13);
    КонецЕсли;

    КПП = ?(ПустоеЗначение(КПП) = 0, КПП, СтрКПП);

    Если Режим = 1 Тогда
    глДобавитьРеквизит(СтрОрганизация, "ИНН ", ИНН);
    глДобавитьРеквизит(СтрОрганизация, "\", КПП);
    КонецЕсли;

    глДобавитьРеквизит(СтрОрганизация, " ", ?(ПустаяСтрока(ПолучСтрОрг) = 1, Константа.НазваниеОрганизации, ПолучСтрОрг));
    КонецЕсли;

    Если Счет.БанкДляРасчетов.Выбран() = 1 Тогда
    Если ПустоеЗначение(Счет.БанкОрганизации.КоррСчет)=0 Тогда
    глДобавитьРеквизит(СтрОрганизация, " р/с ", Счет.Номер);
    РасчСчет = Счет.БанкОрганизации.КоррСчет;
    Иначе
    РасчСчет = Счет.Номер;
    КонецЕсли;
    глДобавитьРеквизит(СтрОрганизация, " в ", Счет.БанкОрганизации.Наименование);
    глДобавитьРеквизит(СтрОрганизация, " ", Счет.БанкОрганизации.Местонахождение);

    глДобавитьРеквизит(СтрБанк, "", Счет.БанкДляРасчетов.Наименование);
    глДобавитьРеквизит(СтрБанк, " ", Счет.БанкДляРасчетов.Местонахождение);
    БИК = Счет.БанкДляРасчетов.Код;
    КоррСчет = Счет.БанкДляРасчетов.КоррСчет;

    Иначе
    РасчСчет = Счет.Номер;
    глДобавитьРеквизит(СтрБанк, "", Счет.БанкОрганизации.Наименование);
    глДобавитьРеквизит(СтрБанк, " ", Счет.БанкОрганизации.Местонахождение);
    БИК = Счет.БанкОрганизации.Код;
    КоррСчет = Счет.БанкОрганизации.КоррСчет;
    КонецЕсли;

    Если ПустоеЗначение(Счет.Корреспондент)=0 Тогда
    Если Режим=1 Тогда
    СтрОрганизация="";
    глДобавитьРеквизит(СтрОрганизация, "ИНН ", ИНН);
    глДобавитьРеквизит(СтрОрганизация, "\", КПП);
    глДобавитьРеквизит(СтрОрганизация, " ", Счет.Корреспондент);
    Иначе
    СтрОрганизация=Счет.Корреспондент;
    КонецЕсли;
    КонецЕсли;

    СтрОрганизация = СокрЛП(СтрОрганизация);

    КонецПроцедуры //глПлатежныеРеквизиты
     
  8. gorlanovmax

    gorlanovmax Well-Known Member
    1C Team

    Регистрация:
    19 июн 2008
    Сообщения:
    286
    Симпатии:
    0
    и все-таки вы неправы, в бухгалтерии инн фирмы по умолчанию 10 знаков и ставшиеся 2 знака отрезаются в кпп. так что вот вам еще одна разница)))

    Renewer
    Находишь вот этот кусок

    Если СтрДлина(СокрЛП(Константа.ИННОрганизации))<13 Тогда
    ИНН = СокрЛП(Константа.ИННОрганизации);
    СтрКПП = "";
    ИначеЕсли Найти("0123456789",СРЕД(Константа.ИННОрганизации,11,1))=0 Тогда
    ИНН = СРЕД(Константа.ИННОрганизации,1,10);
    СтрКПП = СРЕД(Константа.ИННОрганизации,12);
    Иначе
    ИНН = СРЕД(Константа.ИННОрганизации,1,12);
    СтрКПП = СРЕД(Константа.ИННОрганизации,13);
    КонецЕсли;

    и меняешь его на вот этот. должно заработать. только не забудь сохранить исходный кусок. в работе я не проверял.

    Если СтрДлина(СокрЛП(Константа.ИННОрганизации))<13 Тогда
    ИНН = СокрЛП(Константа.ИННОрганизации);
    СтрКПП = "";
    Иначе
    ИНН = СРЕД(Константа.ИННОрганизации,1,12);
    СтрКПП = СРЕД(Константа.ИННОрганизации,13);
    КонецЕсли;

    т.е мы вырезаем проверку инн организации, а оставляем проверку только ИП (12 символов).
    Учитывай то, что если будешь использовать эту конфу для фирмы, а не для ип, надо будет все вернуть обратно.
    так что легче ненужные строки просто закомментировать.
     
  9. gorlanovmax

    gorlanovmax Well-Known Member
    1C Team

    Регистрация:
    19 июн 2008
    Сообщения:
    286
    Симпатии:
    0
    ну как помогло? если да не забываем благодарить
     
  10. Renewer

    Renewer Гость

    GorlanovMax

    еще не проверял, но обязательно отпишусь!
    а уж отплюсоваться я не забуду) Спасибо!.. буду пробовать
     
  11. Renewer

    Renewer Гость

    GorlanovMax

    только сейчас увидел ниже вашего сообщения комментарий.
    Мы используем и для организаций и для ИП, поэтому туда сюда исходник будет проблематично переписывать.
    Значит по другому никак эту проблему не решить?

    На одном из форумов мне посоветовали:
    "Установи у контра не Прочая орг, а физ.лицо...
    Наслаждайся." (подробнее: открываешь справочник контрагента - закладка Общие - поле слева вверху)"

    пойду проверю второй способ. Но первый, к сожалению, не подходит, у нас контрагенты разные бывают.
     
  12. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Чтобы не заморачиваться с видом контрагента, можешь попробовать что-нибудь вроде
    KA = Trimall(Контрагент.ИНН.GetValue(WorkingDate()));
    Slash = Find(KA,"/");
    Len = StrLen(KA);
    if Slash > 0 then
    INN = Left(KA,Slash-1);
    KPP = Right(KA,Len-Slash);
    else INN = KA; KPP = ""
    endif;
     
  13. gorlanovmax

    gorlanovmax Well-Known Member
    1C Team

    Регистрация:
    19 июн 2008
    Сообщения:
    286
    Симпатии:
    0
    vbs
    О, Валерий Борисович появился. А по поводу предыдущего совета по поводу выбора. Если я прав, то в бухгалтерии нельзя в карточке фирмы выбрать физ.лицо. Если покупатель или поставщик, то да, но не фирма.
     
  14. kaa

    kaa Гость

  15. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    В обработке "Организация" достаточно посмотреть процедуру ОК(), там даже комментарии есть, как анализируется ИНН/КПП для юридического и физического лица
     
  16. Renewer

    Renewer Гость

    Всем спасибо, посмотрю, напишу результат
     
  17. Renewer

    Renewer Гость

    Извините, что долго не отвечал. Всем еще раз спасибо.
    Вот я понимаю, решение моей проблемы это вставить модуль,
    который выложил, уважаемый vbs.

    Только я не нашел:
    1.Куда его вставлять (или вместо чего) в Глобальный модуль или в Платежное поручение?
    2. "В обработке "Организация" достаточно посмотреть процедуру ОК(), там даже" - а где
    находится эта процедура ОК, сократили так что не понял?


    И еще вопрос (не по теме), когда делаешь инвентаризацию...
    Документы-складские-Инвентаризационная ведомость-нажимаешь кнопку заполнить.
    Выскакивает сообщение: Дата конца отчета установлена после Границы последовательности
    документов (01.01.80 00:00:00), отчет может быт не актуальным. Возможно следует восстановить
    последовательность. Для этого можно воспользоваться проведением документов (пункт "Меню
    операций") либо групповой обработкой документов. Восстановить последовательность сейчас (это
    может занять продолжительное время).
    Далее идет выбор, нажать "Да" "Нет" "Отмена".

    Нажимаешь "Нет" ...таблица заполняется, но у некоторого товара другая цена, не та которая забита в базе.
    Нажимаешь "Да"..это так долго, что и не дождался.

    Вопрос: Почему отображается другие цены товара?
     
  18. kaa

    kaa Гость

    Потому что из-за неправильной последовательности "портится" себестоимость
     
  19. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    В глобальном модуле в процедуре глПлатежныеРеквизиты
    Вместо текста
    Если СтрДлина(СокрЛП(Константа.ИННОрганизации))<13 Тогда
    ИНН = СокрЛП(Константа.ИННОрганизации);
    СтрКПП = "";
    ИначеЕсли Найти("0123456789",СРЕД(Константа.ИННОрганизации,11,1))=0 Тогда
    ИНН = СРЕД(Константа.ИННОрганизации,1,10);
    СтрКПП = СРЕД(Константа.ИННОрганизации,12);
    Иначе
    ИНН = СРЕД(Константа.ИННОрганизации,1,12);
    СтрКПП = СРЕД(Константа.ИННОрганизации,13);
    КонецЕсли;
    Попробуй такой кусок

    KA = Trimall(Константа.ИННОрганизации);
    Slash = Find(KA,"/");
    Len = StrLen(KA);
    if Slash > 0 then
    ИНН = Left(KA,Slash-1);
    СтрКПП = Right(KA,Len-Slash);
    else ИНН = KA; СтрКПП = ""
    endif;
     
  20. Renewer

    Renewer Гость

    kaa

    +1 спасибо, помогли в этом вопросе. Все цены теперь нужные).
     
Загрузка...

Поделиться этой страницей