Информация о нас Разработанные нами программы Наши интернет-разработки Фотогалерея наших работ Документация к программам, наши статьи, а так же перезентации наших программ

Вышла новая версия программы склад.


 Исправлено большое количество ошибок.


 Возмоность отключения запрета отрицательных чистел в текущих остатках.


Наши координаты

Эл. почта
rudjuk@ukr.net
rs@corp2.net

Телефон: +38 (067) 901-63-22

Skype: rudjuk

 

Вызов форума

Динамическая интернет-страничка

 


 

Другие ссылки


Другие страницы

Программы
Корпорация

Склад
Корпорация
Бухгалтерия
Зарплата


Программы
Экзамен
Расчёт шкафов
Репликатор
Редактор
VDoc
Календарь
Калькулятор
Буфер
Рассылка почты
Голосование по сети
Инсталлятор
Планировщик
Администратор портала
R-броузер

Документация
Ответы на вопросы
Вся документация
Склад
Расчёт шкафов
Экзамен
Репликатор
Инсталлятор

Докумнтация склада
Установка программы

Введение
Ввод остатков
Заказ (покупка)
Заявка
Внешняя счёт-фактура
Приход товара на склад
Расход товара со склада
Налоговая накладная
Внутреннее перемещение
Списание товара
Возврат товара
Заказ на закупку
Реализация и консигнация
Отсрочка платежа
Резервирование товаров
Счёт-фактура без рез.
Копирование документов
Журналы документов
Платёжные документы
Заборный лист
Карточка продукции
Калькуляция
Отбраковка товаров
Переоценка товаров
Бронирование услуг
Аннулирование услуг
Счёт
Журналы документов


Справочник фирм
Справочник активов
Технологические карты
Прайс-листы
Единицы измерения
Нормы расхода
Месторасположение товара
План счетов
Сервисные центры
Сотрудники
Курсы валют
Системные справочники
Фразы

Текущие остатки
Отчёт по внутреннему перемещению
Отчёт по продажам
Взаиморасчёты
Движение материалов

Поиск информации
Штрих-коды, шифры, партии

Объединение фирм
Объединение товаров
Работа в сети и интернет
Определение прав
Создание и настройка пользователя
Скрипт настройки пользователя
Настройка фирмы
Настройка складов
Настройка языков
Типы документов
Настройка меню
Версии программ и история
Проверка расчётов
Создание и изменение отчётов
Создание тени (зеркала) базы данных
Восстановление базы данных
Резервное копирование базы данных

Информация о программе
Работа с окнами
Работа с таблицами
Экспорт данных в таблицах
Импорт данных в таблицах
Работа с деревьями
Экспорт из дизайнера отчётов
Описание дизайнера отчётов FastReport

Статьи
Счётчик
Как сэкономить на лицензиях
Восстановление баз данных Interbase

Услуги
Веб-дизайн
Покупка программ

Другое
Фотогалерея


 

 


Вышла новая версиия программы "Корпорация" (ROffice).

 

 

Просмотреть все новости

 

 

 

 

 








Прямой доступ к базе данных 1С

 

Автор: Рудюк С.А.
Internet: rudjuk.kiev.ua

 

Для обмена данными моей системы Корпорация с 1С я разработал шлюз. Вначале, я пытался организовать обмен данными с помощью механизма OLE, вооружившись рядом статей, опубликованных на сайте http://delphiplus.org и документацией 1С.

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

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

Поэтому, изрядно повозившись с OLE-механизмом я всё таки решил реализовать прямой доступ к 1С.

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

Прямой доступ к таблицам в формате dbf-файлов

Прежде всего, необходимо было выбрать компоненты для доступа к таблицам 1С. К dbf-файлам можно получить доступ с помощью BDE, ODBC или компонент прямого доступа. Первые два способа я сразу же отмёл, остался - третий.

Я начал искать бесплатные компоненты для прямого доступа к dbf-файлам. И нашёл превосходную компоненту DegisyData на сайте http://www.degisy.com. С помощью этой компоненты, Вы можете просматривать dbf-файлы, добавлять, изменять и удалять информацию в них.

Хранение информации в 1С

Теперь рассмотрим где же взять информацию о таблицах 1С.

1С для каждого справочника создаёт отдельную таблицу. Таких таблиц получается достаточно большое количество и догадаться о назначении каждой из них довольно тяжело.

Прежде всего следует отметить, что 1С создаёт пары файлов: .DBF-файл (данные) и одноимённый .CDX-файл (индексный файл).

Мы можем CDX файлы удалить - потери информации не будет, так как это индексные файлы. При запуске 1С в монопольном режиме автоматически создадутся необходимые индексные файлы.

Информацию о любом файле базы данных и любом поле Вы можете почерпнуть из текстового файла 1Сv7.DD.

#AccWare Data Dictionary
D=DDV7120|AccWare Data Dictionary (DDCP=1251UKR)|
#
#
#===================================
#==TABLE no 0 : Соединений
# Name |Descr |Type[A/S/U]|DBTableName|ReUsable
T=1SUSERS |Соединений |A |1SUSERS |1
#-----Fields-------
# Name |Descr |Type|Length|Precision
F=USRSCNT |Number of users |N |4 |0
F=NETCHGCN |Count of changes |N |10 |0
#
#====================================
#==TABLE no 1 : Системная
# Name |Descr |Type[A/S/U]|DBTableName|ReUsable
T=1SSYSTEM|Системная |A |1SSYSTEM |1
#-----Fields-------
# Name |Descr |Type|Length|Precision
F=CURDATE |Date of TM |D |8 |0
F=CURTIME |Time of TM |C |6 |0
F=EVENTIDTA |ID Event On TA |C |9 |0
F=DBSIGN |DB Sign |C |3 |0
F=DBSETUUID |UUID of DB set |C |36 |0
F=SNAPSHPER |Snap Shot Period |C |1 |0
F=ACCDATE |Date of Account Tota|D |8 |0
F=FLAGS |FLAGS |N |10 |0
#
#====================================
#==TABLE no 2 : Константы
# Name |Descr |Type[A/S/U]|DBTableName|ReUsable
T=1SCONST |Константы |A |1SCONST |1
#-----Fields-------
# Name |Descr |Type|Length|Precision
F=OBJID |ID obj(0-cons ) |C |9 |0
F=ID |ID parameter |C |4 |0
F=DATE |Fix date |D |8 |0
F=PARTNO |no of part |N |3 |0
F=VALUE |valume |C |23 |0
F=DOCID |ID Document |C |9 |0
F=TIME |Time |C |6 |0
F=ACTNO |Action No |N |6 |0
F=LINENO |LineNo |N |4 |0
F=TVALUE | |C |3 |0

.......

В этом файле написано рядом с английским названием таблицы - русское название, рядом с английским названием поля - его назначение, тип данных и размер. Этой информации вполне достаточно, чтобы понять назначение каждой таблицы и поля базы данных. Я не буду дублировать информацию из этого файла в данной статье.

Пароли пользователей хранятся в папке usrdef. Если удалить этот каталог, то можно входить в систему 1С без пароля с наибольшими правами.

Последнее, что необходимо для шлюза - это история изменений данных пользователями. Эту информацию Вы можете найти в текстовом файле каталога SYSLOG.

20040924;08:49:40;Федоров;E;Docs;DocWriteNew;2;;O/2196/410;
Приходный кассовый ордер СТ00000001 24.09.2004 08:49:40
20040924;08:49:43;Федоров;E;Docs;DocNotPassed;2;;O/2196/410;
Приходный кассовый ордер СТ00000001 24.09.2004 08:49:40
20040924;08:49:46;Федоров;E;Docs;DocOpen;3;;O/2196/410;
Приходный кассовый ордер СТ00000001 24.09.2004 08:49:40
20040924;08:50:15;Федоров;E;Docs;DocWrite;2;;O/2196/410;
Приходный кассовый ордер СТ00000001 24.09.2004 08:49:40
20040924;08:50:18;Федоров;E;Docs;DocPassed;2;;O/2196/410;
Приходный кассовый ордер СТ00000001 24.09.2004 08:49:40
20040924;08:50:20;Федоров;E;Docs;DocOpen;3;;O/2196/410;
Приходный кассовый ордер СТ00000001 24.09.2004 08:49:40
20040924;08:50:22;Федоров;E;Docs;DocNew;3;;O/2051/0;
Счет-фактура выданный 0000000001 24.09.2004
20040924;08:50:59;Федоров;E;Docs;DocWriteNew;2;;O/2051/411;
Счет-фактура выданный СТ00000001 24.09.2004 08:50:59

 

Заключение

Если Вы собираетесь делать шлюз, то предусматривайте в программе возможность программирования, т.к. многие поля придётся декодировать и адаптировать под данные Вашей системы. Но это уже тема отдельной статьи.

 

Обсудить на форуме