Вход | Регистрация
 
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) тогда уж лучше в один запрос всё запихнуть. с функцией все равно запрос в цикле

Список тем форума
Рекламное место пустует  Рекламное место пустует
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.