IE2017

Внешняя компонента для доступа к paradox через BDE (BDEBase 2.0.3.20 от 14.06.2006)

Программирование - Внешние компоненты

Встала как-то передо мной задача работать с таблицами парадокса в 1С. Так как встроенных средств для этого нет, а побродив по форумам я наткнулся на лишь на пару статей, в которых описывалась работа с парадоксом через ADO, что мне показалось не очень удобно, я решил написать свою компоненту для доступа.
Методы старался делать где это возможно максимально близкие к xBase.
Вроде самое необходимое реализовал. Впоследствии компонента будет дополняться.

Атрибуты:

  • <Поле>

Методы:

  • СоздатьФайл()
  • ОткрытьФайл()
  • Открыта()
  • ЗакрытьФайл()
  • ОчиститьФайл ()
  • Первая()
  • Последняя()
  • Следующая()
  • Предыдущая()
  • НомерЗаписи()
  • Перейти()
  • ВКонце()
  • ВНачале()
  • Найти()
  • ПолучитьЗначениеПоля()
  • УстановитьЗначениеПоля()
  • Добавить()
  • Скопировать()
  • АвтоСохранение()
  • Записать()
  • Отменить()
  • Удалить()
  • Очистить()
  • КоличествоЗаписей()
  • КоличествоПолей()
  • ОписаниеПоля()
  • ОписаниеТаблицы()
  • ПолучитьНазваниеПоля()
  • НомерПоля()
  • ДобавитьПоле()
  • КодОшибки()
  • РежимОтладки()
  • Фильтрация()

Подробное описание методов в прилагаемом als-файле.

новое в версии 2.0.3.20 от 14.06.2006

+ Новый метод Фильтрация(); -Установить режим фильтрации записей в базе.
* Косметические исправления

Скачать файлы

Наименование Файл Версия Размер
bdeBase.zip
.zip 389,88Kb
25.09.09
207
.zip 389,88Kb 207 Скачать
bde 5.0.1
.1245166906 4,15Mb
25.09.09
45
.1245166906 4,15Mb 45 Скачать

См. также

Комментарии
1. Ильдар (ildarmcs) 24.07.06 11:34 Сейчас в теме
Скачал, поставил, потестил. Работает.
Нормально. Спасибо.
А планируется ли через BDE сделать доступ из 1С 8.0 к InberBase - подобным базам?
2. Ким Чен (BioAngel) 48 24.07.06 11:49 Сейчас в теме
пока не планируется, собственно отсутствуют задачи для данной СУБД
3. znh (znh) 29 07.04.07 07:20 Сейчас в теме
Спасибо. Особенно за метод Фильтрация();
4. Александр Веремеев (wer_alex) 18.09.08 16:19 Сейчас в теме
Все хорошо и решил воспользоваться. Нет одной только функции . Удалить все помеченные записи (команда Раск).
Необходимо через 1С свернуть базу Paradox на определенную дату.
5. Ким Чен (BioAngel) 48 30.09.08 15:48 Сейчас в теме
Возможность по доработке отсутствует, затерялись исходники и что то мне подсказывает они не найдутся. :(
6. Андрей Мухин (Muhin555) 12 04.02.10 10:05 Сейчас в теме
Здесь уже использовали эту разработку www.paltusov.ru Вот для обмена с R-Keeper………
Прикрепленные файлы:
restdemo.zip
7. Ким Чен (BioAngel) 48 04.02.10 19:55 Сейчас в теме
Не уловил суть комментария если честно :D
8. Андрей Мухин (Muhin555) 12 12.03.10 00:34 Сейчас в теме
в посте №6 привожу пример использования вашей разработки ;)
9. Егор Великоднев (egor_gsm) 18.02.11 10:47 Сейчас в теме
Народ, закиньте плиз пример использования н 7.7 Интересует выгрузка данных в Paradox .DB файл!! Очень надо !!! Help !!
10. Ким Чен (BioAngel) 48 17.05.11 22:11 Сейчас в теме
Если ЗагрузитьВнешнююКомпоненту("BDEBase.dll")=0 Тогда
Сообщить("Не удалось обнаружить компоненту BDEBase.dll!");
КонецЕсли;
Попытка
БДЕ = СоздатьОбъект("Addin.BDEBase");
Исключение
Сообщить("Не удалось создать объекты Addin.dbBase!");
КонецПопытки;

БДЕ.ОткрытьФайл ( "C:\bdeBase\pLogData.DB", );
пока БДЕ.ВКонце() = 0 Цикл
сообщить(БДЕ.Num);
Бде.Следующая();
КонецЦикла;
11. igor_gk (igor_gk) 46 12.10.11 11:42 Сейчас в теме
Попытаюсь использовать для импорта в 1С 8.2 из X-DOOR (есть такая бухгалтерская программа, базы - PARADOX).
Получится?
12. Ким Чен (BioAngel) 48 12.10.11 14:38 Сейчас в теме
С данной системой не знаком.
Всё зависит от поставленной задачи)
13. igor_gk (igor_gk) 46 12.10.11 14:44 Сейчас в теме
Да там просто файлики, в которых хранится всякая хрень - справочники, таблицы планы счетов.
Вобщем мне бы доступ к файликам получить и прочитать из них данные (из-под 1С v. 8.2)...
14. Ким Чен (BioAngel) 48 12.10.11 15:56 Сейчас в теме
Обычно проблем не вызывает, будут сложности пишите.
15. mikhailovaew (mikhailovaew) 128 20.10.11 14:00 Сейчас в теме
Гляжу - одного плюсика для рейтинга не хватает, а работа вроде серьезная.
Так что + )))
16. Михаил М (Михаська) 12 09.02.12 11:26 Сейчас в теме
17. Ким Чен (BioAngel) 48 09.02.12 17:19 Сейчас в теме
Поддержку форматов осуществляет BDE
18. Ugu (ge_ni) 295 21.09.12 14:32 Сейчас в теме
Здравствуйте!
Давно не пользовался. а на днях попробовал и получил по варианту подключения компоненты 2 ошибку 0х800004005 под Win7. Придушил Брандмауэр полностью... не помогает. По варианту подключения компоненты 1 пишет, что отсутствует CLSID! Я так понимаю он где то в системном реестре пишется, ну и радость эта имеет двоичное представление??? Что характерно у Jmail.dll, FormEx, 1CPP эта радость есть и не требует никаких усилий. Думаю: если бы Вы перетранслировать старые исходники в какой-то новой версиии интерпретатора то проблемма снялась бы сама... С уважением Евгений
19. Ugu (ge_ni) 295 21.09.12 15:49 Сейчас в теме
Извините! Вроде сам разрулил! 2 строчки в реестре и всё! Однако... это требует достаточной квалификации. Хотя в отношении Вашей *.dll, вполне возможно, что Вам всё-равно, кто и как её будет истользовать... Работает то классно!
20. Ким Чен (BioAngel) 48 25.09.12 15:31 Сейчас в теме
как уже писал ранее "Возможность по доработке отсутствует, затерялись исходники" ((
21. Андерсен Ковальски (Vovanich) 10.01.13 23:09 Сейчас в теме
Пытаюсь подрубится к СКУД ОРИОН с помощью длл...Всё ок только отфильтровать по дате не получается...Может подскажет кто как отфильтровать записи за определенный период?в строку загоняю отбор "([TimeVal]>'"+НачДата+"') и ([TimeVal]<'"+конецдня(КонДата)+"') а тащит все записи с начала года. Хотя датаНач = 01.12.2012 КонДата = 31.12.2012
22. Ким Чен (BioAngel) 48 12.01.13 14:12 Сейчас в теме
Пришлите пример файла и обработку
23. N’aix lifestealer (N_aix) 09.03.13 16:09 Сейчас в теме
24. Ким Чен (BioAngel) 48 04.06.13 23:13 Сейчас в теме
Пример создания таблицы paradox
Попытка
База = New("Addin.BDEBase");
Исключение
Сообщить("Не удалось создать объекты Addin.BDEBase!");
КонецПопытки;
//База.РежимОтладки(1);
База.ДобавитьПоле("Fml", "S" , 50 , 1); // фио
База.СоздатьФайл("D:\newdb.db",);
База.Добавить();
//База.Fml = Стр.Fml;
База.УстановитьЗначениеПоля("Fml","Фёдор Емельяненко");
База.Записать();
База.ЗакрытьФайл();
25. yurok kozorez (kozorez) 6 27.09.13 05:03 Сейчас в теме
26. yurok kozorez (kozorez) 6 27.09.13 18:59 Сейчас в теме
подскажите, как отфильтровать таблицу по дате?
27. Ким Чен (BioAngel) 48 27.09.13 19:11 Сейчас в теме
Фильтрация(<Режим>,<КритерийФильтрации>,<Параметры>)

Назначение:
Установить режим фильтрации записей в базе.

Возвращает:
Текущее числовое значение режима фильтрации (на момент до исполнения метода).

Параметры:

<Режим> - выражение: 1 - задает режим фильтрации в базе, 0 - снимает (по умолчанию - 0)
<КритерийФильтрации> - В описании критерия фильтрации можно указывать имена полей и литералы (явно заданные значения); можно использовать обычные операции отношения и логические операторы И , ИЛИ , НЕ , например:
Эта запись фильтра оставит в таблице записи, в которых поля Doljnost=""доцент"" и TabNum больше 3000
Фильтрация(1,"([Doljnost]='доцент') И ([TabNum] > 3000)",0)
28. yurok kozorez (kozorez) 6 27.09.13 19:26 Сейчас в теме
после долгих проб и ошибок работает фильтрация по дате
measure.Фильтрация(1,"([RecDTime]>'"+строка(НачДата)+"')",0); 

только при попытке добавить условие, фильтр сбрасывается...
29. yurok kozorez (kozorez) 6 27.09.13 19:30 Сейчас в теме
measure.Фильтрация(1,"([Terminal]=7815)и([Terminal]=7814)И([RecDTime]>'"+строка(НачДата)+"')И([RecDTime]<'"+строка(КонДата)+"')",0);


так не работает.. а хотелось бы..
даже два условия вместе не работают
30. Ким Чен (BioAngel) 48 27.09.13 19:47 Сейчас в теме
Пришлите в личку пример таблицы и обработку на которых проблема воспроизводиться.
как вариант пробуйте вставить пробелы перед и после "И"
31. yurok kozorez (kozorez) 6 28.09.13 04:35 Сейчас в теме
Всё получилось! нужны пробелы.
measure.Фильтрация(1,"(([Terminal]=7815) или ([Terminal]=7814)) И ([RecDTime]>'"+строка(НачДата)+"') И ([RecDTime]<'"+строка(КонДата+1)+"')",0);


еще интересует последний параметр
Фильтрация(<Режим>,<КритерийФильтрации>,<Параметры>) нигде не нашёл описание, а так обработка супер!

32. Акуличев Денис (Arden) 29.10.13 12:10 Сейчас в теме
BioAngel, Здравствуйте !

Использую вашу разработку для регулярного чтения данных из другой базы данных, но функция ОткрытьФайл() срабатывает только на 100 файлах, затем на 101-м файле возвращает "0". Это ограничения компоненты или в каких то настройках BDE можно увеличить этот параметр? Файлы начинают открываться только после перезапуска сеанса 1С.
33. Акуличев Денис (Arden) 29.10.13 13:23 Сейчас в теме
похоже нашел во что упираюсь, в ограничение Paradox 100 паролей на сессию.
Функция КодОшибки() выдает Too many passwords. :(

Никак не обойти, не закрывая сеанс 1С ?
34. Ким Чен (BioAngel) 48 29.10.13 18:30 Сейчас в теме
без доработки видимо не получится, но как уже писал ранние исходники давно утрачены вместе с жёстким диском
35. Alexey Degtyaryov (ejik2012) 02.07.14 10:05 Сейчас в теме
(34) BioAngel, подскажите, кириллица нормально читается компонентой? Если использовать ADODB, то при чтении кириллицы выходят кракозябры и даже не знаю как лечить это.
36. Ким Чен (BioAngel) 48 02.07.14 13:27 Сейчас в теме
возможно кодировка в заголовке таблицы не соответствует её содержанию, в любом случае надо проверять
37. Alexey Degtyaryov (ejik2012) 04.07.14 14:55 Сейчас в теме
(22) BioAngel, поделись пожалуйста секретом как фильтрацию по полям с Датой делать ))))
38. Ким Чен (BioAngel) 48 04.07.14 23:56 Сейчас в теме
Оставьте свое сообщение