ПРОДАЖИ
+7 (991) 312-04-37
trade@bestnet.ru
Авторизация

Логин:
Пароль:
Забыли свой пароль?
Регистрация
ВАШ ВОПРОС

Доступ к Личному кабинету закрыт!
Как получить доступ?


Главная  / Поддержка  / Форум  / Публичные форумы  / Программирование приложений  / Надо из программы на VBA сформированные хозоперации положить в main.dbf

Форум

Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Надо из программы на VBA сформированные хозоперации положить в main.dbf
 
За несколько лет мне неоднократно приходилось делать прикладные программы, в которых формировался файл с проводками в формате dbf, который после этого загружался стандартной операцией БЭСТ4 ИМПОРТ в ФОРМАТЕ DBF (выручки магазинов, суммовой учет поступлений от поставщиков и многое другое).
Делаю я это обычно над Excel в VBA. Удобный интерфейс, кнопочка, выгруженный файл.

Вероятно, можно было бы произвести запись в Main.DBF и непосредственно из VBA.

Может быть кто -нибудь это делал. Не могли бы привести код.

ТО же и в БЭСТ5
 
Где-то уже обсуждалась целесообразность и разумность данной операции.
Книга операций - святое место, пусть БЭСТ сам туда пишет.
С уважением,
Ильин Евгений
 
Цитата
Александр Гершанов пишет:
Вероятно, можно было бы произвести запись в Main.DBF и непосредственно из VBA.

Если этот скрип написан в плагине БЭСТА. :!:
Из внешних программ в БЭСТ лучше не писать в принципе ! Тем более VBA.....
 
Ответ понятен. Но я все таки подумаю.
 
Цитата
Александр Гершанов пишет:
Вероятно, можно было бы произвести запись в Main.DBF и непосредственно из VBA.

Можно попробовать через ADODB.Connection. Скорее всего позволит что-то писать непосредственно в базу, но как быть с генерацией ID и индексацией - Вопрос.
Есть действующий пример на VBS на чтение данных из базы БЭСТ5. На запись параметры подключения к ADO придется поменять. Могу выслать пример в ЛС или почту.

Цитата
itman пишет:
Книга операций - святое место, пусть БЭСТ сам туда пишет.

А вообще, послушайте совета специалистов, они советуют правильно.
 
У меня несколько программ много лет пишут в main.dbf . В БЭСТ-4 через Advantage, в БЭСТ-5 через vfp ole db. Проблем не возникало.

Чтобы не было сомнений, введите вручную одну проводку в главной книге, такую же проводку создайте через программу, открываем dbf и cdx в hex редакторе и сверяем.

p.s. Advantage 10 с БЭСТом использовать нельзя, 9.10 работает.
Изменено: Сергей Родионов - 16.11.2011 10:07:06
 
И все же я рекомендую непосредственную запись в базы бэста делать:
- штатными средствами;
- плагинами из БЭСТа;
- консольным приложением.
Такие решения получаются более надежными и не зависят от среды ОС.
Если необходимо делать запись без участия оператора из БЭСТа, то можно подготовить файл и передать его на запуск консольному приложению
Код
runner.exe ваш путь\BEST5\Server\DATA\Pro\userlibs\console.bdll u_impor2tmain "ваш путь\BEST5\Server\DATA\DBF\DBASE\USER\IMPORT2MAIN"

В этом случае ID сформируются по правилам, действующим на используемом пакете.
С уважением,
Ильин Евгений
 
Цитата
itman пишет:

В этом случае ID сформируются по правилам, действующим на используемом пакете.


А эти правила меняются? Как нам выдали dll для генерации "упакованного" GUID, так ей пользуюсь и для NNOPER и для IDMAIN.
Изменено: Сергей Родионов - 16.11.2011 12:01:39
 
Цитата
Сергей Родионов пишет:
Цитата
itman пишет:
В этом случае ID сформируются по правилам, действующим на используемом пакете.

А эти правила меняются? Как нам выдали dll для генерации "упакованного" GUID, так ей пользуюсь и для NNOPER и для IDMAIN.

Ну вот поменяют, а выдать забудут :happiness:
С уважением,
Ильин Евгений
 
:lol: ну да, это запросто
 
itman пишет:

Код
Если необходимо делать запись без участия оператора из БЭСТа, то можно подготовить файл и передать его на запуск консольному приложению 
Код
runner.exe ваш путь\BEST5\Server\DATA\Pro\userlibs\console.bdll u_impor2tmain "ваш путь\BEST5\Server\DATA\DBF\DBASE\USER\IMPORT2MAIN"


А эта программа (runner.exe), как я понимаю, может быть запущена из программы на VB, типа Call Shell(AppName).
И она работает в сетевом режиме?
А где описан синтаксис? Собственно программой записи проводок является u_impor2tmain?
Она выполняет то же, что и импорт проводок в БЭСТ?
А для БЭСТ4 тоже есть такая программа?
 
Это вариант запуска плагина написанного в БЭСТе через командную строку.
Да в БЭСТ-4 такая возможность тоже была.
 
Цитата
Александр Гершанов пишет:
itman пишет:

Код
 Если необходимо делать запись без участия оператора из БЭСТа, то можно подготовить файл и передать его на запуск консольному приложению 
Код
runner.exe ваш путь\BEST5\Server\DATA\Pro\userlibs\console.bdll u_impor2tmain "ваш путь\BEST5\Server\DATA\DBF\DBASE\USER\IMPORT2MAIN" 


А эта программа (runner.exe), как я понимаю, может быть запущена из программы на VB, типа Call Shell(AppName).
И она работает в сетевом режиме?
А где описан синтаксис? Собственно программой записи проводок является u_impor2tmain?
Она выполняет то же, что и импорт проводок в БЭСТ?
А для БЭСТ4 тоже есть такая программа?

Была и есть, через инструментарий для БЭСТ-4+.
Синтаксис такой же как и для плагинов, это по сути и есть плагин только без БЭСТ оболочки (окружения, переменные) и библиотек, которые надо будет подгрузить.
Программу импорта надо будет написать самому, но это несложно.
С уважением,
Ильин Евгений
Страницы: 1
Читают тему (гостей: 1)