|
Как извлечь данные из 1с в произвольный момент времени?
|
|||
---|---|---|---|
#18+
Вопрос к знатокам 1с. Если мне необходимо достать данные из 1с, причем соединение должно быть инициировано внешней системой в произвольный момент времени, как правильнее поступить? Я вижу варианты 1. Соединяться с MS SQL или файлам и забирать данные, попутно расшифровывая метаструктуру, но это неправильно и криво. 2. 1с изнутри готовит данные в каком то формате - выкладывает в файл и внешняя система их забирает по регламенту. Это тоже нехорошо, так как невозможно забрать данные в произвольный момент времени. Есть ли у 1с какой то внешний API, через который можно действовать? Или может быть есть поддержка COM, а-ля как можно соединяться с продуктами MS Office? Как вообще правильно решать эту задачу с 1с? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2004, 17:45 |
|
Как извлечь данные из 1с в произвольный момент времени?
|
|||
---|---|---|---|
#18+
OLE OLE OLE http://www.mista.ru/articles1c/ole.htm ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2004, 18:02 |
|
Как извлечь данные из 1с в произвольный момент времени?
|
|||
---|---|---|---|
#18+
Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2004, 18:25 |
|
Как извлечь данные из 1с в произвольный момент времени?
|
|||
---|---|---|---|
#18+
если интересуют другие варианты - есть достаточно гибкая система формирования viewна базе таблиц 1С - с попутным переводом названий полей на русский язык? на основании данных view можно реализовать любые другие вью присоединить файл(ы) не могу - объем архива больше 70 кб - но еcли интересно пишите eagle(соб@ка)ua.fm при данном варианте - вы получите всю мощь и быстродействия прямого доступа к MS SQL ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2004, 21:20 |
|
Как извлечь данные из 1с в произвольный момент времени?
|
|||
---|---|---|---|
#18+
saasaOLE OLE OLE http://www.mista.ru/articles1c/ole.htm тормоза, тормоза, тормоза. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2004, 19:33 |
|
Как извлечь данные из 1с в произвольный момент времени?
|
|||
---|---|---|---|
#18+
BirkhoffВопрос к знатокам 1с. Если мне необходимо достать данные из 1с, причем соединение должно быть инициировано внешней системой в произвольный момент времени, как правильнее поступить? Я вижу варианты 1. Соединяться с MS SQL или файлам и забирать данные, попутно расшифровывая метаструктуру, но это неправильно и криво. 2. 1с изнутри готовит данные в каком то формате - выкладывает в файл и внешняя система их забирает по регламенту. Это тоже нехорошо, так как невозможно забрать данные в произвольный момент времени. Есть ли у 1с какой то внешний API, через который можно действовать? Или может быть есть поддержка COM, а-ля как можно соединяться с продуктами MS Office? Как вообще правильно решать эту задачу с 1с? давай в АСЮ. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2004, 19:34 |
|
Как извлечь данные из 1с в произвольный момент времени?
|
|||
---|---|---|---|
#18+
backfireдавай в АСЮ. Мне тоже интересно! Давайте тут! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2004, 06:42 |
|
Как извлечь данные из 1с в произвольный момент времени?
|
|||
---|---|---|---|
#18+
http://www.mista.ru/articles1c/ole.htm http://www.sinor.ru/%7Emy1c/knowhow.html#MATH ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2004, 09:09 |
|
Как извлечь данные из 1с в произвольный момент времени?
|
|||
---|---|---|---|
#18+
OLE - говорите. Можно и OLE использовать. Если не напрягает, что для получения данных придется запускать копию 1С специально для OLE, то welcome! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2004, 09:20 |
|
Как извлечь данные из 1с в произвольный момент времени?
|
|||
---|---|---|---|
#18+
Еще пару вариантов подкину: 1) В 1С в глобальном модуле в процедуре, назначенной ОбработкойОжидания() (при простое вызывается назначенная процедура с заданным интервалом)проверять наличие сигнала "выгружай". Скажем по наличию определенного файла. Недостатки - ОбработкаОжидания() не вызывается если открыто модальное окно, если система заблокирована, если выполняется обработка. 2) Можно создать внешнюю компоненту для 1С, которая будет слушать определенный порт и реализовывать сервис. Такой "1С-сервер" благодаря тому, что выполняется в отдельном потоке будет мгновенно реагировать на команду внешнего приложения. Недостатки - только в том, что нужен опыт для создания такой компоненты. 3) можно не разбираться самому с потоком метаданных конфигурации 1С, а использовать готовый внешний com-сервер. Называется activeMD, с его помощью можно получить соответствие таблиц базы данных объектам. 4) для не "рантайм" получения соответствия "объект-таблица-поле" можно использовать мою приблуду: http://1c.proclub.ru/modules/mydownloads/personal.php?cid=5&lid=3149 можно и еще предложить варианты, но если у тебя нет достаточного опыта, реальным вариантом остается использование 1С по OLE/DDE, хотя это весьма медленный вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2004, 09:25 |
|
Как извлечь данные из 1с в произвольный момент времени?
|
|||
---|---|---|---|
#18+
всетаки правильнее считаю будет автор1. Соединяться с MS SQL или файлам и забирать данные, попутно расшифровывая метаструктуру, но это неправильно и криво. почему считаете это неправильно и криво непонятно, даные в 1с 7.7 в SQL как на ладошке , структуры уже все давно разжеваны ненадо "попутно расшифровывая метаструктуру" , после изменения конфигурации MD достаточно один раз запустить процедуру которая сформирует в той же базе таблицу содержащую соотвествие ИД и Идентификатор метаданного , и таблицу с ИД и Идентификатором Реквизитов метаданных. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2004, 11:27 |
|
Как извлечь данные из 1с в произвольный момент времени?
|
|||
---|---|---|---|
#18+
Не все так просто, как Вам кажется. Часть метаданных хранится напрямую в 1cv7.md ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2004, 11:37 |
|
Как извлечь данные из 1с в произвольный момент времени?
|
|||
---|---|---|---|
#18+
авторНе все так просто, как Вам кажется. Часть метаданных хранится напрямую в 1cv7.md процедурка с использованием внешней компаненты rainbow.dll или 1с++ облегчают жизнь примерно так: LoadAddin("Rainbow.dll"); MW=CreateObject("MetaDataWork"); Для к=1 по Метаданные.Справочник() Цикл текстЗапроса="INSERT INTO "+имятаблицы+" VALUES ( " +лев(MW.ИДОбъекта(Метаданные.Справочник(к)),5)+",'" +сокрлп(Метаданные.Справочник(к).Идентификатор)+"' ,'" +сокрлп(Метаданные.Справочник(к))+"' ,'" +сокрлп(Метаданные.Справочник(к).Комментарий)+"' ,'Справочник', "+ к+")"; КонецЦикла; ... так же и документы, перечисления и прочее.. во второй таблице перечислены реквизиты , которые добываются примерно так: //реквизиты справочников Для к=1 по Метаданные.Справочник() Цикл Для р=1 по Метаданные.Справочник(к).реквизит() Цикл текстЗП="INSERT INTO "+имятаблицы+" VALUES ( 'SC' , " +лев(MW.ИДОбъекта(Метаданные.Справочник(к)),5)+"," +лев(MW.ИДОбъекта(Метаданные.Справочник(к).реквизит(р)),5)+",'" +_IDToSTR(MW.ИДОбъекта(Метаданные.Справочник(к).реквизит(р)))+" ','" +сокрлп(Метаданные.Справочник(к).реквизит(р).Идентификатор)+"' ,'" +сокрлп(Метаданные.Справочник(к).реквизит(р))+"' ,'" +сокрлп(Метаданные.Справочник(к).реквизит(р).Комментарий) +"' ,'" +сокрлп(Метаданные.Справочник(к).реквизит(р).тип) +"' , " +р +" ,'" +сокрлп(Метаданные.Справочник(к).реквизит(р).вид) +"' ," +сокрлп(Метаданные.Справочник(к).реквизит(р).Периодический ) +")"; КонецЦикла; КонецЦикла; ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2004, 16:43 |
|
Как извлечь данные из 1с в произвольный момент времени?
|
|||
---|---|---|---|
#18+
Уважаемые, предлагаю прекратить обсуждение 1С здесь. Пользуйтесь специализированными форумами. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2004, 16:59 |
|
Как извлечь данные из 1с в произвольный момент времени?
|
|||
---|---|---|---|
#18+
авторУважаемые, предлагаю прекратить обсуждение 1С здесь. Пользуйтесь специализированными форумами. код 1с я показал только для пояснения своей мысли о незатейливом прямом доступе к данным через SQL ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2004, 19:16 |
|
Как извлечь данные из 1с в произвольный момент времени?
|
|||
---|---|---|---|
#18+
На моем сайте: www.tcdeveloper.ru лежит бесплатная версия генератора отчетов. В комплекте есть компонент анализирующий метаданные 1С. Работает и с DBF и с SQL версией. Для превичной настройки собственных метаданных необходима 1C (используется как OLE-сервер). ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2004, 15:23 |
|
|
start [/forum/topic.php?fid=28&fpage=190&tid=1525664]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 144ms |
0 / 0 |