26 | 07 | 2017

 Visual Foxpro и 1С - как организовать обмен 

Задача, которую довольно часто необходимо реализовать. Например надо обмениваться  списком сотрудником, а также их реквизитами(адрес, паспорт и т.д.) из справочника "Сотрудники" или любых других справочников 1С и программы на Visual Foxpro . 

Существует как минимум 2 способа , но требуется знания встроенного языка 1С, как же без этого,  либо сторонней помощи программиста, знающего 1С.

1. Взаимодействие с 1С через OLE.
При этом Вы в Visual Foxpro  создаете обьект 1С и даете ему команды на языке 1С, при этом можете выполнять любые манипуляции с базой 1С, создавать и проводить документы, добавлять элементы справочников и т.д. Соответственно можете также читать любые необходимые данные из 1С.

Передача файлов через интернет по ftp из clipper или foxpro - программы 

Часто, особенно в последнее время, надо передавать различные данные, файлы из clipper или foxpro программы, работающих под DOS в среде Windows, через интернет в другой филиал, основной офис или головную программу. Проще всего организовать такую связь через FTP. Для этого используем утилиту WinSCP.  WinSCP - это графический клиент SFTP  для Windows с открытым исходным кодом.  Предназначен для защищённого копирования файлов между компьютером и серверами, поддерживающими эти протоколы. Скачать можете в интернете. Далее формируем файл скрипта, подставляем его и запускаем эту утилиту с параметром  winscp /console /script=p_sc , где р_sc - текстовый файл-скрипт.

Visual FoxPro - краткое описание, общие сведенья

FoxPro работает с таблицами формата *.dbf
Visual FoxPro 7.0 снабжено мощным набором мастеров, которые позволяют новичку достаточно быстро создать мощное работоспособное приложение, однако не могу рекомендовать использовать эту возможность людям, желающим, создать рациональное приложение, т.к. мастера используют навороченные библиотеки и не рационально используют память. Программы созданные с помощью мастеров очень грамозки.
FoxPro сильно интегрирован с SQL, позволяет вставлять блоки SQL-комманд непосредственно в тело основного кода и использовать в SQL-запросах собственные (фоксовские) функции. Что позволяет быстро и эффективно обробатывать большие базы, даже если таблицы не индексированы. Кроме того, FoxPro облодает собственными, очень мощными, и главное, удобными средствами работы с БД.
Наиболее крупные БД созданные на FoxPro (из  известных автору): 
База данных ГУВД г. Москвы.
База данных МГТС.
База данных Пенсионного фонда России.
Это основной язык написания программ Главного Научно-Вычеслительного Центра (ГНИВЦ) Министерства РФ по налогам и сборам

 Хочется чего-нибудь поновее...  Как перейти с Clipper на другую БД?, Имеются базы данных и проги на Clipper.

У нас в организации сетевой комплекс программ, написанный на Clipper 5.02. Накоплены базы о клиентах за 15 лет. Терять их не хочется. Периодически приходится изменять программы, а иногда дописывать новые для этого комплекса. Используется около 150 баз и справочников. Естественно, что многие из них - общие для всех программ.

Как перейти на новый язык программирования, чтобы не переписывать все программы?
Начать хотя бы с того, чтобы новые программы для этого комплекса писать на новом языке...
Какой язык выбрать?
Есть ли такие, которые поддерживают работу с dbf-файлами в старой DOS-кодировке

При вводе кирилици в тестовые поля Clippera, возникают проблемы?

Вот их решение ...

ВВОД КИРИЛЛИЦЫ

1. Запустите REGEDIT из \Пуск\Выполнить и в разделе реестра

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\DosKeybCodes

Параметр 00000409 / us / измените на / ru /

2. В AUTOEXEC.NT находящийся С:\WINDOWS\system32

Clipper 5.3 не хочет работать с индексом DBFCDX.

Раньше писал на Clipper Summer 87. 
Нужно на Clipper 5.3 создать индексный файл CDX, но не могу даже собрать exe-шник.
В начале программы вставил:
REQUEST DBFCDX
rddSetDefault( "DBFCDX" )
Линкую как в примере:
BLINKER FILE $(objs) OUTPUT $@ lib dbfcdx.lib

При сборке выдает ошибку :
BLINKER : 1115 : DBFCDX.LIB(CL53INIT) : '_DBFCDX' : unresolved external

СИСТЕМА CLIPPER

CLIPPER - это созданная фирмой Nantucket Corp. система программирования приложений в среде БД, включающая в себя быстрый компилятор программ, написанных на языке, близком к языку СУБД dBaseIII PLUS, редактор связей, развитый интерактивный символический отладчик, обладающий пользовательским интрефейсом в стиле меню, который можно связать с разрабатываемой программой для облегчения ее отладки, большую библиотеку объектных модулей системных функций, а также ряд служебных программ (утилит).
Система Clipper представляет собой, по существу, СУБД компилирующего типа с автонотным (self-contained) языком, в значительной мере совместимую по входному языку программирования и организации базы данных с СУБД dBaseIII PLUS.Основная цель разработки этого програмного продукта - достижение более высокой производительности прикладных систем по сравнению с созданными с помощью средств dBaseIII PLUS. Эта задачп решается благодаря использованию на стадии исполнения заранее скомпилированного кода вместо интерпретации исходных программ, а также за счет более эффективных механизмов индексирования файлов БД.

Как в Windows XP загрузить Clipper для того, чтобы можно было компилировать программы, разработанные на Clipper. В Windows 98 загружался через autoexec.bat и config.sys. А как это сделать в XP?

Отвечает Рыжанов Денис Иванович:
Аналоги autoexec.bat и config.bat в Windows XP располагаются по пути C:\Windows\System32 и имеют названия autoexec.nt и config.nt.

Отвечает Юрий Александрович Пейсахович:
То же самое - создать autoexec, config и прописать там все, что надо.

Отвечает Sumc:
Не знаю как для клипера - для фокса все работает так:

Вопрос стар как мир: есть наследство в виде Clipper-ных программ, разумеется без исходников. Надо срочно откорректировать эти программы. В дальнейшем будет проводится перенос на VFP, но что делать сейчас??? Чем можно их декомпилировать? 

Декомпилировать программы на Клиппере может, например, Валькирия (Valkyrie)
Я, лично, скачивал ее из Инета...
Есть несколько плохих моментов в этих декомпиляторах:
- часть переменных теряет свои осмысленные названия и превращается во что-то типа Var0, Var1 и т.д.;
- декомпилируются до исходников некоторые "стандартные команды", например, Read, что сильно увеличивает количество исходных текстов и усложняет их понимание;
- не удается достать внешние модули, например, написанные на С и включенные в программу...

По декомпиляции - кроме Valkyrie есть еще Rescue... Но это не избавит вас от проблем, если подключались дополнительные библиотеки/модули.

Ребята, а как с этими декомпиляторами дела, если при компиляции была использована опция -L ?

Есть комп. На компе Windows 2000 Prof. Запускается прога на Clipper, требуется печать на принтере, но он только сетевой. А прога воспринимает только LPT1. Есть ли метода обхождения данной проблемы. Помогите, если кто-то знает !!!!!!

DOS программы работают с LPT. Первое : проверь командой в CMD
net use подключенные ресурсы.Там дожна быть запись типа

OK LPT1: \\сетевой_адрес_принтера

Если такой записи нет дай команду
 net use lpt1: \\сетевое_адрес_принтера  ( net use lpt1 \\имя компа\сетевое имя принтера )
Если подключение пройдет нормально DOS программа должна печатать

- Второй, как с моей точки зрения, наиболее правильный и удобный способ - использовать программу - утилиту , DosPrn  которая решает любые проблемы с печатью из DOS программ.

Прога состоит из нескольких прог, некоторые из них работают нормально, а некоторые выдают ошибку типа "base/1003: Отсутствует переменная ...". Хотя под Dos все пучком работает!

PSP: homa371 пишет: base/1003: Отсутствует переменная ... Может быть, что переменные читаются из файла на диске с помощью команды RESTORE. Винда в таком случае может блокировать эту операцию, как прямое чтение/запись диска. Это все "к примеру". Лучше б, конечно, по-подробнее. Может исходники есть?

homa371: хорошо завтра выложу исходники

PSP: homa371 пишет: завтра выложу исходники А заодно и подробности об ошибках: какая переменная, какая строка (если доступно) программы?...

homa371: скрин ошибки строка ошибки исходник

СевДон: походу база(-ы) не открываются в AUTOEXEC.NT есть строка SET CLIPPER=F:ххх где ххх кол-во открываемых файлов (хотя бы 100), а в CONFIG.NT строка FILES=ххх где ххх тож самое ?

homa371: кк,попробую но думаю дело не в этом.

Как заставить программы на Clipper работать на Windows 7 ?

Dima: Что именно не работает ?

New_ma: Здравствуйте! Посоветуйте, пожалуйста, что надо сделать, чтобы clipper-foxpro-программы работали в windows7(64bit) ? Все работало в WinXP без проблем, а как быть с autoexec.nt и config.nt в Win7 ?
 В WinXP файлы такие:

1) Autoexec.nt:
@echo off
lh %SystemRoot%\system32\mscdexnt.exe
lh %SystemRoot%\system32\redir
lh %SystemRoot%\system32\dosx
path c:\foxsred set path=%path%;c:\clipp52;c:\clipp52\bin
set lib=c:\clipp52\lib set obj=c:\clipp52\obj
set include=c:\clipp52\include set pll=c:\clipp52\pll
set TEMP=C:\Documents and Settings\1\Local Settings\Temp
set TMP=C:\TMP

Похожие темы на сайте