Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Получение первой записи из дбф файла , Не возможно спозиционироваться на первой записи          
Kutuzov Подменю пользователя
сообщение 08.06.11, 11:28
Сообщение #1

Оратор
Иконка группы
Группа: Местный
Сообщений: 328
Из: Одесса
Спасибо сказали: 144 раз
Рейтинг: 0

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


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

Все сам разобрался сделал так
    КолЗап = ФайлБД.КоличествоЗаписей();  
    Для ит =1 по КолЗап Цикл
    
        ТабЗнч.НоваяСтрока();
        ...........
        ФайлБД.Следующая();
    КонецЦикла;


Signature
Вы станете богаче, лишь став умнее...
Чем дальше в лес, тем толще партизаны.
Нельзя недооценивать, не предсказуемость тупизны...

pablo Подменю пользователя
сообщение 08.06.11, 11:30
Сообщение #2

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

Цитата
Пока (ФайлБД.Следующая()=1) Цикл
Ошибка была здесь!
Правильно:
Пока не ФайлБД.Вконце()=1 Цикл
...
ФайлБД.Следующая();
КонецЦикла;


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Спасибо сказали: Vofka,

Kutuzov Подменю пользователя
сообщение 08.06.11, 11:34
Сообщение #3

Оратор
Иконка группы
Группа: Местный
Сообщений: 328
Из: Одесса
Спасибо сказали: 144 раз
Рейтинг: 0

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



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

а так как Вы предлагаете выдавало ошибку как "Сперва установите объект на запись"


Signature
Вы станете богаче, лишь став умнее...
Чем дальше в лес, тем толще партизаны.
Нельзя недооценивать, не предсказуемость тупизны...

pablo Подменю пользователя
сообщение 08.06.11, 11:41
Сообщение #4

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

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

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

то текущей внутри цикла при первой итерации будет уже вторая запись.
Для позиционирования же на последнюю запись такой способ не подходит, и здесь верным будет такой код
  КолЗап = ФайлБД.КоличествоЗаписей();  
    Для ит =1 по КолЗап-1 Цикл
          ФайлБД.Следующая();
    КонецЦикла;


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Спасибо сказали: Kutuzov,

Kutuzov Подменю пользователя
сообщение 08.06.11, 11:48
Сообщение #5

Оратор
Иконка группы
Группа: Местный
Сообщений: 328
Из: Одесса
Спасибо сказали: 144 раз
Рейтинг: 0

Цитата(pablo @ 08.06.11, 12:41) *
О чем мы говорим?
Чтобы спозиционироваться на первую запись, достаточно было
ФайлБД.Первая();

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

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


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

Этот код проверяет есть ли еще строка но никак не позиционирование. Код РАБОТАЕТ В Одноядерном ПК но у меня на 2-х не хочет работать правильно


Signature
Вы станете богаче, лишь став умнее...
Чем дальше в лес, тем толще партизаны.
Нельзя недооценивать, не предсказуемость тупизны...

-=VJ=- Подменю пользователя
сообщение 08.06.11, 11:57
Сообщение #6

Оратор
Иконка группы
Группа: Местный
Сообщений: 402
Из: Киев
Спасибо сказали: 73 раз
Рейтинг: 0

Цитата(Kutuzov @ 08.06.11, 11:48) *
  Пока (ФайлБД.Следующая()=1) Цикл

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

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


Читайте ЖКК внимательнее.


Signature
Живу на VJ.net.ua.
Спілкуюсь в ЖЖ

Спасибо сказали: Kutuzov,

Kutuzov Подменю пользователя
сообщение 08.06.11, 12:08
Сообщение #7

Оратор
Иконка группы
Группа: Местный
Сообщений: 328
Из: Одесса
Спасибо сказали: 144 раз
Рейтинг: 0

Цитата(-=VJ=- @ 08.06.11, 12:57) *
Читайте ЖКК внимательнее.


Я походу не правильно понял описание в ЖКК icon_beer17.gif


Signature
Вы станете богаче, лишь став умнее...
Чем дальше в лес, тем толще партизаны.
Нельзя недооценивать, не предсказуемость тупизны...

Vofka Подменю пользователя
сообщение 08.06.11, 17:21
Сообщение #8

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Цитата(pablo)
Пока не ФайлБД.Вконце()=1 Цикл

А в 7.7 разве есть "НЕ" ?

-=VJ=- Подменю пользователя
сообщение 08.06.11, 18:08
Сообщение #9

Оратор
Иконка группы
Группа: Местный
Сообщений: 402
Из: Киев
Спасибо сказали: 73 раз
Рейтинг: 0

Цитата(Vofka @ 08.06.11, 17:21) *
А в 7.7 разве есть "НЕ" ?


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


Signature
Живу на VJ.net.ua.
Спілкуюсь в ЖЖ

Vofka Подменю пользователя
сообщение 08.06.11, 18:51
Сообщение #10

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

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

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

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 9:47
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!