7.7 ОШИБКА в релизе Бух664: книги покупок/продаж НЕ выводится ИНН
30.09.2021
12:28
#1
1С, исправьте ошибку. НЕ выводится ИНН в отчетах:
Книга покупок по Постановлению № 1137
Книга продаж по Постановлению № 1137
из-за вот этой новой функции:
Функция ПечатьИННКПП(СтрИННКПП)
СтрИНН = "";
СтрКПП = "";
Позиция = Найти(СтрИННКПП, "/");
Если Позиция > 0 Тогда
СтрИНН = СокрЛП(Лев(СтрИННКПП, Позиция - 1));
СтрКПП = СокрЛП(Сред(СтрИННКПП, Позиция + 1));
КонецЕсли;
Возврат СтрИНН + ?(ПустоеЗначение(СтрКПП) = 0, "/", "") + РазделительСтрок + СтрКПП;
КонецФункции
1) контрагент может быть ИП и тогда у него нет КПП и соответственно слеша, т.е. "Позиция=0"
2) пользователь может забыть указать КПП у контрагента, раньше хотя бы выводился ИНН, теперь просто - ПУСТО
Книга покупок по Постановлению № 1137
Книга продаж по Постановлению № 1137
из-за вот этой новой функции:
Функция ПечатьИННКПП(СтрИННКПП)
СтрИНН = "";
СтрКПП = "";
Позиция = Найти(СтрИННКПП, "/");
Если Позиция > 0 Тогда
СтрИНН = СокрЛП(Лев(СтрИННКПП, Позиция - 1));
СтрКПП = СокрЛП(Сред(СтрИННКПП, Позиция + 1));
КонецЕсли;
Возврат СтрИНН + ?(ПустоеЗначение(СтрКПП) = 0, "/", "") + РазделительСтрок + СтрКПП;
КонецФункции
1) контрагент может быть ИП и тогда у него нет КПП и соответственно слеша, т.е. "Позиция=0"
2) пользователь может забыть указать КПП у контрагента, раньше хотя бы выводился ИНН, теперь просто - ПУСТО
Ответили:
пост #4
, пост #9
30.09.2021
12:32
#2
И вообще, эту функцию
Функция ПечатьИННКПП(СтрИННКПП)
можно было написать в глобальном модуле, чтобы не править в нескольких местах.
Функция ПечатьИННКПП(СтрИННКПП)
можно было написать в глобальном модуле, чтобы не править в нескольких местах.
30.09.2021
12:43
#3
Для тех, кто "дружит" с Конфигуратором, можете в этих отчётах (КнигаПокупок1137 и КнигаПродаж1137) сделать следующую поправку (добавленные строки указаны жирным шрифтом):
Функция ПечатьИННКПП(СтрИННКПП)
СтрИНН = "";
СтрКПП = "";
// на случай, если КПП не указан
СтрИНН = СокрЛП(СтрИННКПП);
Позиция = Найти(СтрИННКПП, "/");
Если Позиция > 0 Тогда
СтрИНН = СокрЛП(Лев(СтрИННКПП, Позиция - 1));
СтрКПП = СокрЛП(Сред(СтрИННКПП, Позиция + 1));
КонецЕсли;
Возврат СтрИНН + ?(ПустоеЗначение(СтрКПП) = 0, "/", "") + РазделительСтрок + СтрКПП;
КонецФункции
Функция ПечатьИННКПП(СтрИННКПП)
СтрИНН = "";
СтрКПП = "";
// на случай, если КПП не указан
СтрИНН = СокрЛП(СтрИННКПП);
Позиция = Найти(СтрИННКПП, "/");
Если Позиция > 0 Тогда
СтрИНН = СокрЛП(Лев(СтрИННКПП, Позиция - 1));
СтрКПП = СокрЛП(Сред(СтрИННКПП, Позиция + 1));
КонецЕсли;
Возврат СтрИНН + ?(ПустоеЗначение(СтрКПП) = 0, "/", "") + РазделительСтрок + СтрКПП;
КонецФункции
01.10.2021
15:06
#4
Ответ на
пост №1
USSR, Ошибка зарегистрирована с кодом 30177158.В ближайшее время выпустим исправительный релиз.
Ответили:
пост #5
, пост #8
11.10.2021
16:37
#6
в 665 не исправили эту ошибку, правда процедуру перенесли в глобальный модуль ))
Ответили:
пост #7
11.10.2021
18:53
#7
Ответ на
пост №6
zed_ds, исправили. У ИП стал выводиться ИНН. Интереснее другое. Зачем вообще вводили всю эту заморочку с функциями печати ИНН/КПП и даты-номера? Я так понимаю, из-за того, что добавились колонки для пресловутого прослеживаемого товара. Чтобы как-то сэкономить ширину таблицы, решили сузить колонки ИНН/КПП и дата-номер СФ (это просто в глаза бросается) и принудительно выводить их на печать в две строки вместо одной.Соответственно вместо вызова
ПечИННКПП = глПечатьИННКПП(ПечИННКПП);
можно было спокойно создать пару переменных отчёта:
СлэшСПереносом = "/"+РазделительСтрок;
ОбратныйСлэшСПереносом = "\"+РазделительСтрок;
и написать
ПечИННКПП = СтрЗаменить(ПечИННКПП,"/",СлэшСПереносом);
ПечИННКПП = СтрЗаменить(ПечИННКПП,"\",ОбратныйСлэшСПереносом);
Не будет слэша (то бишь КПП) — не будет и замены, так?..
22.01.2022
18:22
#8
Ответ на
пост №4
Редакция БУХ 1С, и в отчете "книга покупок", если в базе ведется ИП, наши отгрузки по авансам прошлого месяца попадают в таблицу с урезанным до 10 символов ИНН и неправильно найденным КПП. Я не программист особо, но так, вроде бы, выводит наш ИНН и оставляет пустым КПП (между комментарием 2022-01-22)отчет КнигаПокупок
Процедура УправлениеДиалогом()
...
Если ТабОтчета.Возврат = 1 Тогда
ПечКонтрагент = СокрЛП(Константа.НазваниеОрганизации);
ПечИНН = СРЕД(Константа.ИННОрганизации,1,10);
ПечКПП = СРЕД(Константа.ИННОрганизации,12);
ИначеЕсли (ТабОтчета.Аванс <> 1) ИЛИ ((ВыводитьПокупателя = 1) и (СтандартнаяФорма = 0)) Тогда
ПечКонтрагент = Наименование(ТабОтчета.Контрагент);
ПечИНН = ТабОтчета.ИНН;
ПечКПП = ТабОтчета.КПП;
Иначе
ПечКонтрагент = СокрЛП(Константа.НазваниеОрганизации);
// ПечИНН = СРЕД(Константа.ИННОрганизации,1,10);
// ПечКПП = СРЕД(Константа.ИННОрганизации,12);
// 2022-01-22 --
ПечИНН = "";
ПечКПП = "";
ПозицияСлэш=Найти(Константа.ИННОрганизации, "\");
Если ПозицияСлэш > 0 Тогда
ПечИНН = ЛЕВ(Константа.ИННОрганизации, ПозицияСлэш-1);
ПечКПП = Сред(Константа.ИННОрганизации, ПозицияСлэш +1);
Иначе
ПечИНН = Константа.ИННОрганизации;
КонецЕсли;
//-- 2022-01-22
еще в отчете КнигаПокупок1137 (процедура КнигаПокупок(...)) тоже самое, из-за чего в 8й раздел декларации по НДС так же ИНН и КПП для физлица неправильно извлекается из константы
возврат так же должен обрабатываться, скорей всего всё условие нужно поменять на 2 варианта
Читают тему
(гостей: 1)