7.7 ОШИБКА в релизе Бух664: книги покупок/продаж НЕ выводится ИНН

Новая тема
1С, исправьте ошибку. НЕ выводится ИНН в отчетах:
Книга покупок по Постановлению № 1137
Книга продаж по Постановлению № 1137
из-за вот этой новой функции:

Функция ПечатьИННКПП(СтрИННКПП)
      
      СтрИНН = "";
      СтрКПП = "";
      
      Позиция = Найти(СтрИННКПП, "/");  
      
      Если Позиция > 0 Тогда
            СтрИНН = СокрЛП(Лев(СтрИННКПП, Позиция - 1));
            СтрКПП = СокрЛП(Сред(СтрИННКПП, Позиция + 1));
      КонецЕсли;
      
      Возврат СтрИНН + ?(ПустоеЗначение(СтрКПП) = 0, "/", "") + РазделительСтрок + СтрКПП;
      
КонецФункции  

1) контрагент может быть ИП и тогда у него нет КПП и соответственно слеша, т.е. "Позиция=0"
2) пользователь может забыть указать КПП у контрагента, раньше хотя бы выводился ИНН, теперь просто - ПУСТО
Ответили: пост #4 , пост #9
И вообще, эту функцию
Функция ПечатьИННКПП(СтрИННКПП)
можно было написать в глобальном модуле, чтобы не править в нескольких местах.
Для тех, кто "дружит" с Конфигуратором, можете в этих отчётах (КнигаПокупок1137 и КнигаПродаж1137) сделать следующую поправку (добавленные строки указаны жирным шрифтом):

Функция ПечатьИННКПП(СтрИННКПП)
      
      СтрИНН = "";
      СтрКПП = "";
      
     // на случай, если КПП не указан
      СтрИНН = СокрЛП(СтрИННКПП);

      Позиция = Найти(СтрИННКПП, "/");  
      
      Если Позиция > 0 Тогда
            СтрИНН = СокрЛП(Лев(СтрИННКПП, Позиция - 1));
            СтрКПП = СокрЛП(Сред(СтрИННКПП, Позиция + 1));
      КонецЕсли;
      
      Возврат СтрИНН + ?(ПустоеЗначение(СтрКПП) = 0, "/", "") + РазделительСтрок + СтрКПП;
      
КонецФункции
Ответ на пост №1
USSR, Ошибка зарегистрирована с кодом 30177158.
В ближайшее время выпустим исправительный релиз.
Ответили: пост #5 , пост #8
Ответ на пост №4
Редакция БУХ 1С, спасибо за ответ. Будем ждать...
в 665 не исправили эту ошибку, правда процедуру перенесли в глобальный модуль ))
Ответили: пост #7
Ответ на пост №6
zed_ds, исправили. У ИП стал выводиться ИНН. Интереснее другое. Зачем вообще вводили всю эту заморочку с функциями печати ИНН/КПП и даты-номера? Я так понимаю, из-за того, что добавились колонки для пресловутого прослеживаемого товара. Чтобы как-то сэкономить ширину таблицы, решили сузить колонки ИНН/КПП и дата-номер СФ (это просто в глаза бросается) и принудительно выводить их на печать в две строки вместо одной.
Соответственно вместо вызова
       ПечИННКПП = глПечатьИННКПП(ПечИННКПП);
можно было спокойно создать пару переменных отчёта:
СлэшСПереносом = "/"+РазделительСтрок;
ОбратныйСлэшСПереносом = "\"+РазделительСтрок;
и написать
       ПечИННКПП = СтрЗаменить(ПечИННКПП,"/",СлэшСПереносом);
       ПечИННКПП = СтрЗаменить(ПечИННКПП,"\",ОбратныйСлэшСПереносом);
Не будет слэша (то бишь КПП) — не будет и замены, так?..
Ответ на пост №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
USSR,а если попробовать ввести в ручную? Я помню, что данные должны сохраняться же.
Читают тему
(гостей: 1)

Быстрый переход