• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы Renewer
  • Дата начала
R

Renewer

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

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

gorlanovmax

Во -первых для ИП нужно использовать конфигурацию Предприниматель.

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

vitfil

Во -первых для ИП нужно использовать конфигурацию Предприниматель.
которая отличается от бухии только наличием двух дополнительных отчетов (книга учета доходов и расходов и книга движений по расчетному счету).
 
G

gorlanovmax

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

может и так. там нет плана счетов вообще.
но к слову я сам сижу на предпринимателе и у меня инн отображается правильно. скорее всего дело в обработке печати платежки
 
R

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]
 
G

gorlanovmax

в глобальном модуле посмотри функцию глПлатежныеРеквизиты() где-то в ней должна быть проверка инн
 
R

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 Тогда
СтрОрганизация="";
глДобавитьРеквизит(СтрОрганизация, "ИНН ", ИНН);
глДобавитьРеквизит(СтрОрганизация, "\", КПП);
глДобавитьРеквизит(СтрОрганизация, " ", Счет.Корреспондент);
Иначе
СтрОрганизация=Счет.Корреспондент;
КонецЕсли;
КонецЕсли;

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

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

gorlanovmax

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

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

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

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

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

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

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

gorlanovmax

ну как помогло? если да не забываем благодарить
 
R

Renewer

GorlanovMax

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

Renewer

GorlanovMax

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

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

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

vbs

Чтобы не заморачиваться с видом контрагента, можешь попробовать что-нибудь вроде
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;
 
G

gorlanovmax

vbs
О, Валерий Борисович появился. А по поводу предыдущего совета по поводу выбора. Если я прав, то в бухгалтерии нельзя в карточке фирмы выбрать физ.лицо. Если покупатель или поставщик, то да, но не фирма.
 
V

vbs

В обработке "Организация" достаточно посмотреть процедуру ОК(), там даже комментарии есть, как анализируется ИНН/КПП для юридического и физического лица
 
R

Renewer

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

Renewer

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

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


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

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

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

kaa

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

vbs

В глобальном модуле в процедуре глПлатежныеРеквизиты
Вместо текста
Если СтрДлина(СокрЛП(Константа.ИННОрганизации))<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;
 
R

Renewer

kaa

+1 спасибо, помогли в этом вопросе. Все цены теперь нужные).
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!