Имя: Пароль:
1C
1С v8
Функция ПредставлениеМестаРождения()
0 листопад
 
02.05.14
20:46
Надо вывести во внеш.печ.форму МестоРождения физ.лица. Но если использовать типовую функцию:
РегламентированнаяОтчетность.ПредставлениеМестаРождения(Выборка.МестоРожд);
то МестоРождение выходит так:
Населенный пункт: Краснодар
А надо просто: Краснодар.

В результате, скопировала эту функцию к себе в модуль внеш.печ.формы и заменила, вместо типового:

Представление    = "" + ?(НЕ ЗначениеЗаполнено(СтруктураМестоРождения.НаселенныйПункт),        "",    "Населенный пункт: " + СокрЛП(СтруктураМестоРождения.НаселенныйПункт))
        +?(НЕ ЗначениеЗаполнено(СтруктураМестоРождения.Район),    "",    ", район:  " + СокрЛП(СтруктураМестоРождения.Район))
        +?(НЕ ЗначениеЗаполнено(СтруктураМестоРождения.Область),    "",    ", область: "    +    СокрЛП(СтруктураМестоРождения.Область))
        +?(НЕ ЗначениеЗаполнено(СтруктураМестоРождения.Страна),    "",    ", страна: "    +    СокрЛП(СтруктураМестоРождения.Страна));


Написала:

Представление    = "" + ?(НЕ ЗначениеЗаполнено(СтруктураМестоРождения.НаселенныйПункт),        "",    + СокрЛП(СтруктураМестоРождения.НаселенныйПункт))
        +?(НЕ ЗначениеЗаполнено(СтруктураМестоРождения.Район),    "",    + СокрЛП(СтруктураМестоРождения.Район))
        +?(НЕ ЗначениеЗаполнено(СтруктураМестоРождения.Область),    "",    +    СокрЛП(СтруктураМестоРождения.Область))
        +?(НЕ ЗначениеЗаполнено(СтруктураМестоРождения.Страна),    "",    +    СокрЛП(СтруктураМестоРождения.Страна));


Но теперь печ.форма перестала формироваться, выходит сообщение:
Не удалось сформировать внешнюю печатную форму!
Преобразование значения к типу Число не может быть выполнено


Вот полностью код:


Функция Печать() Экспорт
    
    Выборка = СформироватьЗапросДляПечати().Выбрать();
    
    Если Выборка.Следующий() Тогда
        
        ш_ФИОРаб=СокрЛП(Выборка.ФИОРаботника);
        ш_ДатаРожд = Строка(Лев(Формат(Выборка.ДатаРожд,"ДФ=dd.MM.yyyy"),10))+" г.";
        
        //    ш_МестоРожд = РегламентированнаяОтчетность.ПредставлениеМестаРождения(Выборка.МестоРожд);
        ш_МестоРожд = ПредставлениеМестаРождения(Выборка.МестоРожд);
        
    КонецЕсли;
    
КонецФункции

//Возвращает строковое представление места рождения
Функция ПредставлениеМестаРождения(Знач СтрокаМестоРождения)
    
    СтруктураМестоРождения = РегламентированнаяОтчетность.РазложитьМестоРождения(СтрокаМестоРождения, Ложь);
    
    Если СтруктураМестоРождения.Особое = 1 Тогда
        
        Представление    =    "особое" +
        ?(НЕ ЗначениеЗаполнено(СтруктураМестоРождения.НаселенныйПункт),        "",    "  "    +    СокрЛП(СтруктураМестоРождения.НаселенныйПункт))
        +?(НЕ ЗначениеЗаполнено(СтруктураМестоРождения.Район),    "",    "  "    +    СокрЛП(СтруктураМестоРождения.Район))
        +?(НЕ ЗначениеЗаполнено(СтруктураМестоРождения.Область),    "",    "  "    +    СокрЛП(СтруктураМестоРождения.Область))
        +?(НЕ ЗначениеЗаполнено(СтруктураМестоРождения.Страна),    "",    "  "    +    СокрЛП(СтруктураМестоРождения.Страна));
        
    Иначе
        
        ////типовой(
        //Представление    = "" + ?(НЕ ЗначениеЗаполнено(СтруктураМестоРождения.НаселенныйПункт),        "",    "Населенный пункт: " + СокрЛП(СтруктураМестоРождения.НаселенныйПункт))
        //+?(НЕ ЗначениеЗаполнено(СтруктураМестоРождения.Район),    "",    ", район:  " + СокрЛП(СтруктураМестоРождения.Район))
        //+?(НЕ ЗначениеЗаполнено(СтруктураМестоРождения.Область),    "",    ", область: "    +    СокрЛП(СтруктураМестоРождения.Область))
        //+?(НЕ ЗначениеЗаполнено(СтруктураМестоРождения.Страна),    "",    ", страна: "    +    СокрЛП(СтруктураМестоРождения.Страна));
        ////типовой)
        
        Представление    = "" + ?(НЕ ЗначениеЗаполнено(СтруктураМестоРождения.НаселенныйПункт),        "",    + СокрЛП(СтруктураМестоРождения.НаселенныйПункт))
        +?(НЕ ЗначениеЗаполнено(СтруктураМестоРождения.Район),    "",    + СокрЛП(СтруктураМестоРождения.Район))
        +?(НЕ ЗначениеЗаполнено(СтруктураМестоРождения.Область),    "",    +    СокрЛП(СтруктураМестоРождения.Область))
        +?(НЕ ЗначениеЗаполнено(СтруктураМестоРождения.Страна),    "",    +    СокрЛП(СтруктураМестоРождения.Страна));
        
        Если Лев(Представление, 1) = ","  Тогда
            Представление = Сред(Представление, 2)
        КонецЕсли;
        
    КонецЕсли;
    
    Возврат Представление;
КонецФункции
1 ДенисЧ
 
02.05.14
20:48
На какую строчку ругается - мы, разумеется, должны угадать...
2 EvgeniuXP
 
02.05.14
20:49
ну возьми ты в готовой переменной да замени одно значение на пустую - и делов-то - грубо, но быстро.
3 ДенисЧ
 
02.05.14
20:50
(2) не наш метод! Нам нужно стоя в гамаке, в ластах и противогазе!
4 EvgeniuXP
 
02.05.14
20:53
Представление = СтрЗаменить(Представление, "Населенный пункт: ", "");
5 листопад
 
02.05.14
20:57
(1) Выбивает на строчке, которую я изменила:

Представление    = "" + ?(НЕ ЗначениеЗаполнено(СтруктураМестоРождения.НаселенныйПункт),        "",    + СокрЛП(СтруктураМестоРождения.НаселенныйПункт))
        +?(НЕ ЗначениеЗаполнено(СтруктураМестоРождения.Район),    "",    + СокрЛП(СтруктураМестоРождения.Район))
        +?(НЕ ЗначениеЗаполнено(СтруктураМестоРождения.Область),    "",    +    СокрЛП(СтруктураМестоРождения.Область))
        +?(НЕ ЗначениеЗаполнено(СтруктураМестоРождения.Страна),    "",    +    СокрЛП(СтруктураМестоРождения.Страна));
6 листопад
 
02.05.14
20:58
хотя я убрала только:
"Населенный пункт: "
", район:  "
", область: "
", страна: "
7 ДенисЧ
 
02.05.14
20:59
(5) Если с отладчиком проблемы, то возьми и разбей строку присвоения на 4 части...
8 ДенисЧ
 
02.05.14
20:59
У тебя в данных проблема
9 Torquader
 
02.05.14
21:05
"Чудо в перьях!" вы потихонечку переписываете ЗУП ?
10 листопад
 
02.05.14
22:10
(4) СПАСИБО!!! Все получилось!!!
11 neo_matrix_123
 
02.05.14
22:13
(10) когда будем писать выгрузку ЛС по РПВ в банк?
12 Torquader
 
02.05.14
22:15
(11) Напишет - всё она напишет, только опыту наберётся.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой