8.х Почему цикл пропускает первую строку?

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем MyNameNoName, 15 окт 2013.

  1. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте. Имеется код:
    Код:
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    дбф=Новый XBase;
    дбф.ОткрытьФайл("D:\File.dbf");
    
    Пока дбф.Следующая() Цикл
    
    Почему этот цикл может пропускать первую строку? Заносятся все данные из dbf кроме первой.
  2. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    А вы точно уверены что именно первая строчка пропускается ? Сам файл DBF открывали просмотрщиком ?
  3. vartanet
    Offline

    vartanet Опытный в 1С Команда форума

    Регистрация:
    16 ноя 2010
    Сообщения:
    2.698
    Симпатии:
    15
    Баллы:
    29
    может быть сначала Первая() использовать?
  4. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Открывал смотрел.
  5. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Ну тогда пробуйте по индексу обойти.
  6. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    а внутри цикла код, если не секрет, покажите?
  7. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    1)
    2)
    Не помечена ли не отображаемая запись на удаление?
  8. doomer56
    Offline

    doomer56

    Регистрация:
    27 окт 2012
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Та же проблема (запись не помечена на удаление)
    Код:
      БД = Новый XBase;
    БД.ОткрытьФайл(Файл);
    БД.Кодировка = КодировкаXBase.OEM;
    Пока БД.Следующая() Цикл
    СпрСоздать = Справочники.Район.СоздатьЭлемент();
    СпрСоздать.Наименование = БД.REGION;
    СпрСоздать.Код = БД.KOD;
    СпрСоздать.Записать();
    КонецЦикла;
    
    Предлагаете сначала выгрузить первую строку, а потом все остальное. Лишний код... да и не логично как-то... Есть ли другой способ?
  9. doomer56
    Offline

    doomer56

    Регистрация:
    27 окт 2012
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Вот и ответ нашелся
    Код:
      БД = Новый XBase;
    БД.ОткрытьФайл(Файл);
    БД.Кодировка = КодировкаXBase.OEM;
    Бд.Первая();
    Пока не БД.ВКонце() Цикл
    СпрСоздать = Справочники.Район.СоздатьЭлемент();
    СпрСоздать.Наименование = БД.REGION;
    СпрСоздать.Код = БД.KOD;
    СпрСоздать.Записать();
    БД.Следующая();
    КонецЦикла;
    
  10. vartanet
    Offline

    vartanet Опытный в 1С Команда форума

    Регистрация:
    16 ноя 2010
    Сообщения:
    2.698
    Симпатии:
    15
    Баллы:
    29
    ура! я угадал ;))

Поделиться этой страницей