Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Работа в программе с внешним DBF файлом
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
хакерок
Если хто слышал есть такая фирма Intercars
База данных автозапчастей этой фирмы составляет 723660 записей (не вникая в дополнительные данные)
Есть dbf файл цен (kod name price)

Задача зделать форму в 1С которой можно было вести поиск
по полю kod в таблице

Кто что делал подобное ?
logist
А почему для этого нужно использовать именно 1С 7.7, а не что нибудь другое? FoxPro, MS Excel например smile.gif
zetovich
смотря что вы хотите потом с этим все делать...
1с может на таком обьемы выдохнутся......а может и нет.
вообщем чего хотит потом то?
хакерок
Цитата(zetovich @ 29.07.09, 14:27) необходимо зарегистрироваться для просмотра ссылки
смотря что вы хотите потом с этим все делать...
1с может на таком обьемы выдохнутся......а может и нет.
вообщем чего хотит потом то?

Я в 1С набросал систему типа Стол Заказов сделал втягивание заказов клиентов из вне
тепер стоит вопрос совподения кодов ... Если код не совпадает на символ или пробел запчасть не приедет. Это первое зачем это нужно а второе менеджер с бумажки забивает заказ вбивает код если программа находит его в dbf файле показывает название и цену и только после этого разрешает внести в табличную часть.
хакерок
Цитата(logist @ 29.07.09, 14:25) необходимо зарегистрироваться для просмотра ссылки
А почему для этого нужно использовать именно 1С 7.7, а не что нибудь другое? FoxPro, MS Excel например smile.gif

У меня уже всё это работает. Взялся что отдельные удобные программы по учёту заказов , обработки заказов , ведения взаиморасчётов обединить в одну конфу 1С ... в 1С удобств для программиста много а для позльзователя пока вобще не сделал.
Acid
Цитата
Кто что делал подобное ?

Не понял: ты спрашиваешь или хвастаешь?
Здесь многие делали то, что тебе даже не приходило в голову.
sarius
icon_beer17.gif верно
zetovich
ужос.....вот это пропусканая способность мысли.
так что надо то? хрен уследишь за автором.
Valerka
Пофлудить, я думаю smile.gif
sarius
мессаги в нуль?
хакерок
Цитата(Кузьмич @ 29.07.09, 15:31) необходимо зарегистрироваться для просмотра ссылки
Не понял: ты спрашиваешь или хвастаешь?
Здесь многие делали то, что тебе даже не приходило в голову.


Да причём здесь хвастаюсь ... интерисуюсь может ктото чтото подобное уже делал

Я вот сделал процедуру она работате только с файлами длина имени файла которого не больше
8 символов. В имени файле Intercars.dbf 9 символов


Машина ругаеться.
ДБФ.ОткрытьФайл(ПутьДБ);
{Документ.Заказ.Форма.Модуль(7)}: Длина имени файла превысила 8 символов!



Файл bmw.dbf открывает

Вот текст процедуры.

Процедура Открыть_dbf()
ДБФ = СоздатьОбъект("XBase");
ИмяФайла = "";
ИмяПути = "";
ФС.ВыбратьФайл(0, ИмяФайла, ИмяПути, , "*.*", , );
ПутьДБ = ИмяПути + ИмяФайла;
ДБФ.ОткрытьФайл(ПутьДБ);
Если ДБФ.Открыта() = 1 Тогда
Предупреждение("База открыта", 2);
ДБФ.Первая();
КодПос = ДБФ.Kod; // Подразумевается, что поле FIO имеется в открытой БД
Предупреждение(КодПос, 5);
Иначе
Предупреждение("НЕ смогли открыть Базу!", 2);
КонецЕсли;

КонецПроцедуры
zetovich
низзя более 8 символов.
Fynjy
Intercars.dbf заменить на Interca~.dbf эх маладёжь ...
Valerka
Мне просто интересно, что помешало аффтару написать вопрос в первом посте, а не флудить?
хакерок
Цитата(Fynjy @ 29.07.09, 16:08) необходимо зарегистрироваться для просмотра ссылки
Intercars.dbf заменить на Interca~.dbf эх маладёжь ...

Так таких файлов 50 штук и их название менять нельзя потому что они привязаны к другим программам
.
Кроме того есть IntercarsU.dbf в украие IntercarsP.dbf в Poland
Fynjy
И что? Не умеем работать со строками? Не умеем парсить?
хакерок
Цитата(Fynjy @ 29.07.09, 16:15) необходимо зарегистрироваться для просмотра ссылки
И что? Не умеем работать со строками? Не умеем парсить?

Не хотелось бы обрезать имя.

Может есть сисемные настройки снимающие органичение?
Где можно поковырять объект XBASE?

Можно б было б и по другому решить если б фалы были не по 500 Мб.
sarius
Копай Оли, Сомы....
Почитай про 1С++
хакерок
Цитата(Fynjy @ 29.07.09, 16:15) необходимо зарегистрироваться для просмотра ссылки
И что? Не умеем работать со строками? Не умеем парсить?

Если чесно со строками разобраться могу а вот парсить не приходилось...
это тупо Intercars.dbf переименовываеться в Interca~.dbf мне такое не подходит
хакерок
Цитата(zetovich @ 29.07.09, 16:07) необходимо зарегистрироваться для просмотра ссылки
низзя более 8 символов.

Как поступать :~(
Batchir
Пробуй копировать во временный каталог и переименовывать, по окончанию работы с файлом - удаляй, но если файл конечно большой, то это не удобная по времени процедура (смотря какая машинка обрабатывает)
Fynjy
Хакерок - я где то написал, что файл нужно переименовывать? Передай имя файла таким образом ...
Fynjy
Создаем на диске c: - ya_superlamer.dbf
Далее делаем обработку ...
Запускаем ... И понимаем - нужно плотно учить матчасть ...
//*******************************************
Процедура Сформировать()
ДБФ = СоздатьОбъект("XBase");
ДБФ.ОткрытьФайл("C:\ya_sup~1.dbf");
Если ДБФ.Открыта() = 1 Тогда
Сообщить("Хакерок - Ламер");
Иначе
Сообщить("Fynjy - ламер");
КонецЕсли;
КонецПроцедуры

PS: DOS рулит smile.gif
sarius
Курите АДО, товарищи...
необходимо зарегистрироваться для просмотра ссылки

Все уже украдено написано до нас
sarius
В принципе, могу помочь - стучи в аську...
хакерок
Цитата(Fynjy @ 29.07.09, 22:45) необходимо зарегистрироваться для просмотра ссылки
Создаем на диске c: - ya_superlamer.dbf
Далее делаем обработку ...
Запускаем ... И понимаем - нужно плотно учить матчасть ...
//*******************************************
Процедура Сформировать()
ДБФ = СоздатьОбъект("XBase");
ДБФ.ОткрытьФайл("C:\ya_sup~1.dbf");
Если ДБФ.Открыта() = 1 Тогда
Сообщить("Хакерок - Ламер");
Иначе
Сообщить("Fynjy - ламер");
КонецЕсли;
КонецПроцедуры

PS: DOS рулит smile.gif


Так. У меня есть файл С:\Sprice\Intercars.dbf размером 800 Мб

Его нельзя переименовывать
потому что он используеться ещё 3 программами.



Процедура Сформировать()
ДБФ = СоздатьОбъект("XBase");
ДБФ.ОткрытьФайл("С:\Sprice\Interc~1.dbf ");
Если ДБФ.Открыта() = 1 Тогда
Сообщить("Хакерок - Ламер");
Иначе
Сообщить("Fynjy - ламер");
КонецЕсли;
КонецПроцедуры

Не обежайся но система ответила Fynjy - ламер


Думаю то что файл С:\Sprice\Intercars.dbf а не С:\Intercars.dbf не важно.
zetovich
во млин развили......
мысль возникла..
ну лана...упсть хоть 30 буковок...
но перед работе скопировать куда нить в ТЕМР....переименовать....обрабатывать таблицу/выбирать/загружать/радоваться.
sarius
800 метров копировать? апстену...
zetovich
а чо реально сток получается7
ну тогда переименовали...поработали...вернули как было.
sarius
не забываем, что с этим файлом еще прога одна работает, возможно - в то же время...
здесь не нужно использовать XBase - ничего хорошего из этого не выйдет
zetovich
ну то ваще были мысли вслух....
з.ы. ничего хорошего не будет с такими объемами выгрузки работать.
sarius
вот потому и не нужно даже искать способа решить вопрос ограничения 8-3, а нужно копать в сторону правильного запроса к таблице.
хакерок
Цитата(Fynjy @ 29.07.09, 22:45) необходимо зарегистрироваться для просмотра ссылки
Создаем на диске c: - ya_superlamer.dbf
Далее делаем обработку ...
Запускаем ... И понимаем - нужно плотно учить матчасть ...
//*******************************************
Процедура Сформировать()
ДБФ = СоздатьОбъект("XBase");
ДБФ.ОткрытьФайл("C:\ya_sup~1.dbf");
Если ДБФ.Открыта() = 1 Тогда
Сообщить("Хакерок - Ламер");
Иначе
Сообщить("Fynjy - ламер");
КонецЕсли;
КонецПроцедуры

PS: DOS рулит smile.gif


Переписал в С:\Intercars.dbf

Заработала

Система написала Хакерок - Ламер

Несовсем удобно копии файлов в двух местах иметь но тем немение какой ни какой выход.



Процедура Сформировать()
ДБФ = СоздатьОбъект("XBase");
ДБФ.ОткрытьФайл("С:\Interc~1.dbf ");
Если ДБФ.Открыта() = 1 Тогда
Сообщить("Хакерок - Ламер");
Иначе
Сообщить("Fynjy - ламер");
КонецЕсли;
КонецПроцедуры
хакерок
Цитата(sarius @ 30.07.09, 10:53) необходимо зарегистрироваться для просмотра ссылки
Курите АДО, товарищи...
необходимо зарегистрироваться для просмотра ссылки

Все уже украдено написано до нас


Очень часто использую ADO спасибо за ссылку.
sarius
ну раз часто используешь - то разберешься что к чему
вывод - большие файлы и цэ-1 лучше дружить через тетб петю - или ВК или адо/ком/оля....... ни в коем случае не встроенные механизмы
тогда обработки ваши будут ламерами называть не вас, а недругов ваших =)
хакерок
Цитата(sarius @ 30.07.09, 12:11) необходимо зарегистрироваться для просмотра ссылки
ну раз часто используешь - то разберешься что к чему
вывод - большие файлы и цэ-1 лучше дружить через тетб петю - или ВК или адо/ком/оля....... ни в коем случае не встроенные механизмы
тогда обработки ваши будут ламерами называть не вас, а недругов ваших =)


А если Обрашаться через ADO к таблице базы Данных Access оно быстро открывает таблицу или
с задержками?
sarius
А хз
попробуйте
хакерок
Цитата(Fynjy @ 29.07.09, 22:45) необходимо зарегистрироваться для просмотра ссылки
ДБФ.ОткрытьФайл("C:\ya_sup~1.dbf");
PS: DOS рулит smile.gif


Спасибо дружище помог ...Реально можно тему прикрывать
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.