Имя: Пароль:
1C
1С v8
Создание DBF-файла со строками ,у меня создает с одной строкой ,не вижу из-за чего...
0 SkillUp
 
05.04.19
15:26
Здр., уже под конец недели, что-то голова не соображает нормально, подскажите почему, в результате этого кода: в результате только одна строка, с заполненным полями...
Запрос, который перед этим кодом 20 раз проверял, там выборка со многими строками, а вот этот код (заполнения дбф), только один раз заполняет строку, и выходит из цикла...

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ДБФ.Добавить(); // Добавление строки
        
        ДБФ.CODE = ВыборкаДетальныеЗаписи.Код;
        ДБФ.NUM  = ВыборкаДетальныеЗаписи.Ссылка.КодПоДРФО;     
        ДБФ.NAME = ВыборкаДетальныеЗаписи.Ссылка.Ссылка.Наименование;
               
        
        Если ВыборкаДетальныеЗаписи.ДокументВид = Справочники.ДокументыУдостоверяющиеЛичность.НайтиПоНаименованию("Паспорт") Тогда
            Док = 3;
        Иначе
            Док = "";
        КонецЕсли;    
        ДБФ.DOCCODE= Док;
        ДБФ.SERDOC=  ВыборкаДетальныеЗаписи.ДокументСерия;
        ДБФ.NUMDOC=  ВыборкаДетальныеЗаписи.ДокументНомер;
        ДБФ.VYDDOC=  ВыборкаДетальныеЗаписи.ДокументКемВыдан;
        ДБФ.DATEDOC= ВыборкаДетальныеЗаписи.ДокументДатаВыдачи;
        ДБФ.NAMETEL="";
        ДБФ.ADDR="";
        ДБФ.BIRTHDATE=ВыборкаДетальныеЗаписи.Ссылка.ДатаРождения;
        

        //ФИО!!!
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    ФИОФизЛицСрезПоследних.Фамилия,
        |    ФИОФизЛицСрезПоследних.Имя,
        |    ФИОФизЛицСрезПоследних.Отчество
        |ИЗ
        |    РегистрСведений.ФИОФизЛиц.СрезПоследних КАК ФИОФизЛицСрезПоследних
        |ГДЕ
        |    ФИОФизЛицСрезПоследних.ФизЛицо = &ФизЛицо";
        
        Запрос.УстановитьПараметр("ФизЛицо", ВыборкаДетальныеЗаписи.Ссылка.Ссылка);
        
        РезультатЗапроса = Запрос.Выполнить();
        
        ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
        
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            ДБФ.LASTNAME=ВыборкаДетальныеЗаписи.Фамилия;
            ДБФ.FIRSTNAME=ВыборкаДетальныеЗаписи.Имя;
            ДБФ.MIDDLENAME=ВыборкаДетальныеЗаписи.Отчество;
        КонецЦикла;
        
    
        
        ДБФ.Записать(); // Запись строки
        
    КонецЦикла;
    
    ДБФ.ЗакрытьФайл(); // Этап 6. Закрытие файла
1 Garykom
 
гуру
05.04.19
15:37
Может уже плюнешь на кодинг и пойдешь в консы?
Ну херню же пишешь на уровне студента и курсовой
2 Кирпич
 
05.04.19
15:39
ВыборкаДетальныеЗаписи2 = РезультатЗапроса.Выбрать();
        
        Пока ВыборкаДетальныеЗаписи2.Следующий() Цикл
            ДБФ.LASTNAME=ВыборкаДетальныеЗаписи2.Фамилия;
            ДБФ.FIRSTNAME=ВыборкаДетальныеЗаписи2.Имя;
            ДБФ.MIDDLENAME=ВыборкаДетальныеЗаписи2.Отчество;
        КонецЦикла;
3 SkillUp
 
05.04.19
15:40
(2) ОЙ, бл.... !
4 SkillUp
 
05.04.19
15:40
(2) СПАСИБО!
5 Кирпич
 
05.04.19
15:42
кстати, если переменную Запрос переписать, его выборка не грохнется тоже? или она уже сама по себе живет?
6 Кирпич
 
05.04.19
15:43
по логике не должна вроде
7 SkillUp
 
05.04.19
15:48
(6) Спасибо.
8 Garykom
 
гуру
05.04.19
15:56
Вынеси второй запрос в отдельную функцию или используй готовую из типовой конфы для получения фио
9 Кирпич
 
05.04.19
16:03
(8) тогда уж лучше в один запрос всё запихнуть. с функцией все равно запрос в цикле