Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Создание DBF-файла со строками ,у меня создает с одной строкой ,не вижу из-за чего...

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

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.