Имя: Пароль:
1C
1С v8
ПечФорма: сведения об орг-ции
,
0 листопад
 
13.04.14
18:07
Можно ли как-нибудь проще вывести в печ.форме данные об орг-ции. Т.е. надо следующие реквизиты разместить в столбец:
-Полное наименование орг-ции;
-Фактический адрес;
-Корр.счет
и т.д.

Ниже код, он подтягивает нужные мне данные, но как мне кажется, можно как-то сделать проще и все время не обращаться к одной и той же функции:


ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
        
        ПредставлениеОрганизации = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОбОрганизации, "НаименованиеДляПечатныхФорм");
        ФактАдрес = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОбОрганизации, "ФактическийАдрес");
        КСчет = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОбОрганизации, "КоррСчет");
        
        ОбластьМакета.Параметры.ПолнНаимОрг = ПредставлениеОрганизации;
        ОбластьМакета.Параметры.ФактическийАдрес = ФактАдрес;
        ОбластьМакета.Параметры.ОргКорСчет = КСчет;
        
        ТабличныйДокумент.Вывести(ОбластьМакета);
1 Лаврентий Берия
 
13.04.14
18:11
>> можно как-то сделать проще и все время не обращаться к одной и той же функции
Конечно, вместо этого можно использовать свой код, самому брать данные из регистров и справочников. Переписывать свой код в случае изменения механизмов типовой конфигурации также придётся.

подсказка: СведенияОбОрганизации - какого типа значение?
2 Wobland
 
13.04.14
18:13
в твоём случае следует успокоится, если всё работает
3 Alex S D
 
13.04.14
18:14
+
4 Torquader
 
13.04.14
18:16
Нет, а что вас пугает ?
Конечно, можно посмотреть, как работает данная функция, и сделать всё, как там, но без вызова функции, но, как сказал (1) при обновлении ваш код перестанет работать.
5 листопад
 
13.04.14
18:19
(2) :)
(4) Некрасиво как-то...
6 Wobland
 
13.04.14
18:26
(5) а скопируй сюда описание функции
7 листопад
 
13.04.14
18:32
(6)

Функция ОписаниеОрганизации(СписокСведений, Список = "", СПрефиксом = Истина) Экспорт

    Если ПустаяСтрока(Список) Тогда

        Список = "ИНН,Свидетельство,ЮридическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет";
        Если НЕ СписокСведений.Свойство("НаименованиеДляПечатныхФорм") Тогда
            Список = "НаименованиеПолное," + Список;
        Иначе
            Список = "НаименованиеДляПечатныхФорм," + Список;
        КонецЕсли;

    КонецЕсли;

    Результат = "";

    СоответствиеПараметров = Новый Соответствие();
    СоответствиеПараметров.Вставить("ПолноеНаименование",            " ");
    СоответствиеПараметров.Вставить("СокращенноеНаименование",        " ");
    СоответствиеПараметров.Вставить("НаименованиеДляПечатныхФорм",    " ");
    СоответствиеПараметров.Вставить("ИНН",                            " ИНН ");
    СоответствиеПараметров.Вставить("КПП",                            " КПП ");
    СоответствиеПараметров.Вставить("Свидетельство",                " ");
    СоответствиеПараметров.Вставить("СвидетельствоДатаВыдачи",        " от ");
    СоответствиеПараметров.Вставить("ЮридическийАдрес",                " ");
    СоответствиеПараметров.Вставить("Телефоны",                        " тел.: ");
    СоответствиеПараметров.Вставить("Факс",                            " факс: ");
    СоответствиеПараметров.Вставить("НомерСчета",                    " р/с ");
    СоответствиеПараметров.Вставить("Банк",                           " в банке ");
    СоответствиеПараметров.Вставить("БИК",                            " БИК ");
    СоответствиеПараметров.Вставить("КоррСчет",                       " к/с ");
    СоответствиеПараметров.Вставить("КодПоОКПО",                      " Код по ОКПО ");

    Список          = Список + ?(Прав(Список, 1) = ",", "", ",");
    ЧислоПараметров = СтрЧислоВхождений(Список, ",");

    Для Счетчик = 1 По ЧислоПараметров Цикл

        ПозЗапятой = Найти(Список, ",");

        Если ПозЗапятой > 0  Тогда
            ИмяПараметра = Лев(Список, ПозЗапятой - 1);
            Список = Сред(Список, ПозЗапятой + 1, СтрДлина(Список));

            Попытка
                СтрокаДополнения = "";
                СписокСведений.Свойство(ИмяПараметра, СтрокаДополнения);

                Если ПустаяСтрока(СтрокаДополнения) Тогда
                    Продолжить;
                КонецЕсли;

                Префикс = СоответствиеПараметров[ИмяПараметра];
                Если Не ПустаяСтрока(Результат)  Тогда
                    Результат = Результат + ",";
                КонецЕсли;

                Результат = Результат + ?(СПрефиксом = Истина, ?(ПустаяСтрока(Результат), СокрЛ(Префикс), Префикс), "") + СтрокаДополнения;

            Исключение

                ТекстСообщения = НСТр("ru = 'Не удалось определить значение параметра организации:'") + " " + ИмяПараметра;
                ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);

                ОписаниеОшибки = ИнформацияОбОшибке();
                ЗаписьЖурналаРегистрации(ТекстСообщения, УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки.Описание);

            КонецПопытки;

        КонецЕсли;

    КонецЦикла;
    
    Результат = СокрЛП(Результат);
    Пока Найти(Результат, "  ") > 0 Цикл
        Результат = СтрЗаменить(Результат, "  ", " ");
    КонецЦикла;
    Возврат Результат;

КонецФункции // ОписаниеОрганизации()
8 Wobland
 
13.04.14
18:35
(7) описание чуть выше
9 Wobland
 
13.04.14
18:37
впрочем, не взлетит