Добавил процедуру из скрипта печати бюджетных пп:
Код: Выделить всё
функция ПолучитьНаименованиеОрганизации(ИДОрг : целое): строка;
/*если заполнено краткое наименование, то вернуть его*/
переменные
сд : СтатическиеДанные;
начало
сд := СоздатьСтатическиеДанные;
попытка
сд.СоединитьБД;
сд.Запрос := "[PumpData]{select name, shortname from organizations where ID = " + ЦелоеВСтроку(ИДОрг) + "}";
сд.Открыть;
если сд.ЧислоЗаписей <> 1 тогда
ВозбудитьОшибку("Не удается найти в базе организацию ID = " + ЦелоеВСтроку(ИДОрг));
если УбратьПробелы(сд.ПолеПоИмени("ShortName").КакСтрока = "") тогда
результат := сд.ПолеПоИмени("Name").КакСтрока
иначе
результат := сд.ПолеПоИмени("ShortName").КакСтрока;
обязательно
УдалитьОбъект(сд);
конец;
конец;
и сделал ее вызов при формировании имени владельца рс:
Код: Выделить всё
функция ВывестиИнформациюоОрганизацииВладРС(PCell : ВнешнийОбъект;
Мастер : СтатическиеДанные;
ПрефиксЯчеек : строка;
ПрефиксПолей : строка);
переменные
ЗначениеКПП : строка;
начало
PCell.CellByTab(ПрефиксЯчеек + "ОргИНН").Text :=
ФорматИНН(Мастер.ПолеПоИмени(ПрефиксПолей + "OrgINN").КакСтрока);
// Отформатируем КПП, теперь 0 стал ""
ЗначениеКПП := ФорматКПП(Мастер.ПолеПоИмени(ПрефиксПолей + "OrgKPP").КакСтрока, нет);
// в налоговую не должно быть "" должен быть 0
если (ПризнакНалоговогоПлатежа(УбратьПробелы(Мастер.ПолеПоИмени("TaxNote").КакСтрока)) = фНалоговыйПлатеж) и
(ЗначениеКПП = "") тогда
ЗначениеКПП := "0";
PCell.CellByTab(ПрефиксЯчеек + "ОргКПП").Text := ЗначениеКПП;
// "/кпп" если кпп не пуст и не ноль
если ЗначениеКПП <> "" тогда
PCell.CellByTab(ПрефиксЯчеек + "ОргКППСлеш").Text := "/" + ЗначениеКПП;
// исправил val 22042009
// PCell.CellByTab(ПрефиксЯчеек + "ОргНаименование").Text :=
// Мастер.ПолеПоИмени(ПрефиксПолей + "OrgName").КакСтрока;
PCell.CellByTab(ПрефиксЯчеек + "ОргНаименование").Text := ПолучитьНаименованиеОрганизации(Мастер.ПолеПоИмени(ПрефиксПолей + "OrgID").КакЦелое)
//
конец;