Имя: Пароль:
1C
1C 7.7
v7: Эксель: разложить данные паспорта по столбцам (1С77)
0 листопад
 
20.04.14
11:39
Помогите вывести в Эксель данные паспорта в отдельных колонках:
- Вид паспорта
- Серия
- Номер
- Когда выдан
- Кем выдан

Сейчас выводит все в один столбец:
'Паспорт гражданина России, Серия: 10 20, № 541008, Выдан: 09.10.2001, 3 ОМ Сокольники г. Москвы

Вот код:


    Функция ПредставлениеДокумента(Документ)
    Представление = "";
    СЗ = глРазложитьДокУдостоверяющийЛичность(Документ);
    Для Номер = 1 по СЗ.РазмерСписка() Цикл
        Если ПустоеЗначение(СЗ.ПолучитьЗначение(Номер))=0 Тогда
            Представление = Представление+?(ПустоеЗначение(Представление)=1,"",", ")
                            +?(Номер=2,"Серия: ",
                             ?(Номер=3,"№ ",
                             ?(Номер=4,"Выдан: ","")))
                             +СокрЛП(СЗ.ПолучитьЗначение(Номер))
        КонецЕсли;
    КонецЦикла;
        Возврат ?(ПустоеЗначение(Представление)=1,"<<Нет данных>>",Представление)
    КонецФункции    // ПредставлениеДокумента
            
            
            
    
    
    Процедура Сформировать()
        
            Сотрудники = СоздатьОбъект("Справочник.Сотрудники");
            Сотрудники.ВыбратьЭлементы(1);
            Пока Сотрудники.ПолучитьЭлемент() = 1 Цикл
                              
        Паспорт = ПредставлениеДокумента(Сотрудники.ДокументУдЛичность);
                   
        x.WorkSheets(ИмяФайла).Cells(ИтераторСотр,5).Value    = "'"+Паспорт;
    
        
    КонецПроцедуры
1 Wobland
 
20.04.14
11:43
а как оно так разные вещи в одну строку складывает?
2 листопад
 
20.04.14
11:44
(1) И снова здравствуйте, Wobland :) !
3 листопад
 
20.04.14
11:45
+(1) См. Функция ПредставлениеДокумента(Документ)
4 Wobland
 
20.04.14
11:45
(3) я сначала посмотрел, а потом вопрос задал. так что смотри туда сам ;)
5 Wobland
 
20.04.14
11:46
или сама?.. не, скан паспорта требовать не будем ;)
6 листопад
 
20.04.14
11:56
Ап!
7 Wobland
 
20.04.14
12:19
ты на вопрос-то ответь
8 mdocs
 
20.04.14
12:25
Функция ПредставлениеДокумента(Документ,ВидДокумента,Номер,Серия,ДатаВыдачи,КемВыдан)

    СЗ = глРазложитьДокУдостоверяющийЛичность(Документ);
   Если СЗ.РазмерСписка()>0 тогда
ВидДокумента=СЗ.ПолучитьЗначение(1);
КонецЕсли;  
Если СЗ.РазмерСписка()>1 тогда
Серия=СЗ.ПолучитьЗначение(2);
КонецЕсли;
   Если СЗ.РазмерСписка()>1 тогда
Серия=СЗ.ПолучитьЗначение(2);
КонецЕсли;
   Если СЗ.РазмерСписка()>2 тогда
Номер=СЗ.ПолучитьЗначение(3);
КонецЕсли;
   Если СЗ.РазмерСписка()>3 тогда
ДатаВыдачи=СЗ.ПолучитьЗначение(4);
КонецЕсли;
   Если СЗ.РазмерСписка()>4 тогда
КемВыдан=СЗ.ПолучитьЗначение(5);
КонецЕсли;
      Возврат "";
    КонецФункции    // ПредставлениеДокумента
9 листопад
 
20.04.14
12:36
(8) СПАСИБО!!!
А как мне теперь эти значения (ВидДокумента,Номер,Серия,ДатаВыдачи,КемВыдан) вывести в Эксель?
10 Wobland
 
20.04.14
12:45
(9) нужно себя как-то заставить. или заставить кого-то другого
11 Voronve
 
20.04.14
13:02
(9) Выведи в текстовый файл с символом-разделителем ~ (тильда). Открой екселем его как форматированный файл.
12 листопад
 
20.04.14
13:07
В итоге написала так:


Процедура Сформировать()  
    
    
    Документ = глРазложитьДокУдостоверяющийЛичность(Сотрудники.ДокументУдЛичность);
    Если Документ.РазмерСписка() > 0 Тогда
         ВидДокумента = Документ.ПолучитьЗначение(1);
    КонецЕсли;
    Если Документ.РазмерСписка() > 1 Тогда
        Серия=Документ.ПолучитьЗначение(2);
    КонецЕсли;
    Если Документ.РазмерСписка() > 2 Тогда
          Номер=Документ.ПолучитьЗначение(3);
      КонецЕсли;
      Если Документ.РазмерСписка() > 3 Тогда
           ДатаВыдачи=Документ.ПолучитьЗначение(4);
      КонецЕсли;
      Если Документ.РазмерСписка() > 4 Тогда
           ВыданКем=Документ.ПолучитьЗначение(5);
    Иначе
            ВидДокумента = "";
              Серия="";
              Номер="";
              ДатаВыдачи="";
              ВыданКем="";
    КонецЕсли;
          
       x.WorkSheets(ИмяФайла).Cells(ИтераторСотр,13).Value    = "'"+ВидДокумента;
       x.WorkSheets(ИмяФайла).Cells(ИтераторСотр,14).Value    = "'"+Серия;
       x.WorkSheets(ИмяФайла).Cells(ИтераторСотр,15).Value    = "'"+Номер;
       x.WorkSheets(ИмяФайла).Cells(ИтераторСотр,16).Value    = "'"+ДатаВыдачи;
       x.WorkSheets(ИмяФайла).Cells(ИтераторСотр,17).Value    = "'"+ВыданКем;


КонецПроцедуры
13 КонецЦикла
 
20.04.14
13:28
(12) Молодец, мы верили
Программист всегда исправляет последнюю ошибку.