Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Получение первой записи из дбф файла
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
Kutuzov
есть проблема.... в 7.7 пытаюсь с позиционироваться на первой строке дбв файла он все равно мена перекидывает на вторую при этом, это я проделываю на системе с 2 процами, а вот на системе с одним все четко работает.... 47046430.gif
    ФайлБД = СоздатьОбъект("XBase");
    
    Файл = СоздатьОбъект("Текст");
    ИмяВыбрФайла = "";
   ПутьКФайлу=КаталогИБ();
  
    
    Попытка
    Если ФС.ВыбратьФайл(0, ИмяВыбрФайла, ПутьКФайлу, "Выберите файл","dBASE(*.dbf)|*.dbf", , ) = 1 Тогда
        
        ФайлБД.ОткрытьФайл(ПутьКФайлу+ИмяВыбрФайла,,0);
        Иначе
  
    КонецЕсли;
    Исключение
        Предупреждение(ПутьКФайлу + РазделительСтрок + "Ошибка отрытия файла!");
        Возврат;
    КонецПопытки;
    
    Если ФайлБД.Открыта() = 0 Тогда
        Предупреждение(ПутьКФайлу + РазделительСтрок + "Ошибка отрытия файла!" + РазделительСтрок + "Возможно, файл используется другим приложением.");
        Возврат;
    КонецЕсли;
    
    ЗначениеОКПО=0;  
    значРСчет =0;
    ЗнчДата=0;
    Ответ = 1;
    
    ФайлБД.КодоваяСтраница(1);
    ФайлБД.Первая();  
        Пока (ФайлБД.Следующая()=1) Цикл


пытался с позиционироваться на последнюю все равно ФайлБД.НомерЗаписи() = 2

Все сам разобрался сделал так
    КолЗап = ФайлБД.КоличествоЗаписей();  
    Для ит =1 по КолЗап Цикл
    
        ТабЗнч.НоваяСтрока();
        ...........
        ФайлБД.Следующая();
    КонецЦикла;
pablo
Цитата
Пока (ФайлБД.Следующая()=1) Цикл
Ошибка была здесь!
Правильно:
Пока не ФайлБД.Вконце()=1 Цикл
...
ФайлБД.Следующая();
КонецЦикла;
Kutuzov
Цитата(pablo @ 08.06.11, 12:30) необходимо зарегистрироваться для просмотра ссылки
Ошибка была здесь!
Правильно:
Пока не ФайлБД.Вконце()=1 Цикл
...
ФайлБД.Следующая();
КонецЦикла;



Не, ошибки как таковой не было...
просто даже строка ФайлБД.Первая() не срабатывал

а так как Вы предлагаете выдавало ошибку как "Сперва установите объект на запись"
pablo
О чем мы говорим?
Чтобы спозиционироваться на первую запись, достаточно было
ФайлБД.Первая();

Если после этого вызвать
  Пока (ФайлБД.Следующая()=1) Цикл

то текущей внутри цикла при первой итерации будет уже вторая запись.
Для позиционирования же на последнюю запись такой способ не подходит, и здесь верным будет такой код
  КолЗап = ФайлБД.КоличествоЗаписей();  
    Для ит =1 по КолЗап-1 Цикл
          ФайлБД.Следующая();
    КонецЦикла;
Kutuzov
Цитата(pablo @ 08.06.11, 12:41) необходимо зарегистрироваться для просмотра ссылки
О чем мы говорим?
Чтобы спозиционироваться на первую запись, достаточно было
ФайлБД.Первая();

Если после этого вызвать
  Пока (ФайлБД.Следующая()=1) Цикл

то текущей внутри цикла при первой итерации будет уже вторая запись.


  Пока (ФайлБД.Следующая()=1) Цикл

Этот код проверяет есть ли еще строка но никак не позиционирование. Код РАБОТАЕТ В Одноядерном ПК но у меня на 2-х не хочет работать правильно
-=VJ=-
Цитата(Kutuzov @ 08.06.11, 11:48) необходимо зарегистрироваться для просмотра ссылки
  Пока (ФайлБД.Следующая()=1) Цикл

Этот код проверяет есть ли еще строка но никак не позиционирование.

Цитата
Следующая()
Синтаксис:
Следующая()
Назначение:
Перейти на следующую запись.
Возвращает: 1 - если получена следующая запись; 0 - иначе.


Читайте ЖКК внимательнее.
Kutuzov
Цитата(-=VJ=- @ 08.06.11, 12:57) необходимо зарегистрироваться для просмотра ссылки
Читайте ЖКК внимательнее.


Я походу не правильно понял описание в ЖКК icon_beer17.gif
Vofka
Цитата(pablo)
Пока не ФайлБД.Вконце()=1 Цикл

А в 7.7 разве есть "НЕ" ?
-=VJ=-
Цитата(Vofka @ 08.06.11, 17:21) необходимо зарегистрироваться для просмотра ссылки
А в 7.7 разве есть "НЕ" ?


Не, я понимаю, что семерка отсталая по сравнению с восьмеркой, но зачем же её так уж опускать. Конечно есть.
Vofka
Цитата
Не, я понимаю, что семерка отсталая по сравнению с восьмеркой, но зачем же её так уж опускать. Конечно есть.

Да не, я не опускаю, просто я такого в 77 никогда не встречал. Признаться, удивлён smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.