powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Как извлечь данные из 1с в произвольный момент времени?
16 сообщений из 16, страница 1 из 1
Как извлечь данные из 1с в произвольный момент времени?
    #32585926
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос к знатокам 1с.
Если мне необходимо достать данные из 1с, причем соединение должно быть инициировано внешней системой в произвольный момент времени, как правильнее поступить?
Я вижу варианты
1. Соединяться с MS SQL или файлам и забирать данные, попутно расшифровывая метаструктуру, но это неправильно и криво.
2. 1с изнутри готовит данные в каком то формате - выкладывает в файл и внешняя система их забирает по регламенту. Это тоже нехорошо, так как невозможно забрать данные в произвольный момент времени.

Есть ли у 1с какой то внешний API, через который можно действовать? Или может быть есть поддержка COM, а-ля как можно соединяться с продуктами MS Office?

Как вообще правильно решать эту задачу с 1с?
...
Рейтинг: 0 / 0
Как извлечь данные из 1с в произвольный момент времени?
    #32585964
saasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLE OLE OLE
http://www.mista.ru/articles1c/ole.htm
...
Рейтинг: 0 / 0
Как извлечь данные из 1с в произвольный момент времени?
    #32586005
Birkhoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!
...
Рейтинг: 0 / 0
Как извлечь данные из 1с в произвольный момент времени?
    #32586162
Bear_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если интересуют другие варианты - есть достаточно гибкая система формирования viewна базе таблиц 1С - с попутным переводом названий полей на русский язык? на основании данных view можно реализовать любые другие вью

присоединить файл(ы) не могу - объем архива больше 70 кб - но еcли интересно пишите eagle(соб@ка)ua.fm

при данном варианте - вы получите всю мощь и быстродействия прямого доступа к MS SQL
...
Рейтинг: 0 / 0
Как извлечь данные из 1с в произвольный момент времени?
    #32667815
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saasaOLE OLE OLE
http://www.mista.ru/articles1c/ole.htm

тормоза, тормоза, тормоза.
...
Рейтинг: 0 / 0
Как извлечь данные из 1с в произвольный момент времени?
    #32667816
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BirkhoffВопрос к знатокам 1с.
Если мне необходимо достать данные из 1с, причем соединение должно быть инициировано внешней системой в произвольный момент времени, как правильнее поступить?
Я вижу варианты
1. Соединяться с MS SQL или файлам и забирать данные, попутно расшифровывая метаструктуру, но это неправильно и криво.
2. 1с изнутри готовит данные в каком то формате - выкладывает в файл и внешняя система их забирает по регламенту. Это тоже нехорошо, так как невозможно забрать данные в произвольный момент времени.

Есть ли у 1с какой то внешний API, через который можно действовать? Или может быть есть поддержка COM, а-ля как можно соединяться с продуктами MS Office?

Как вообще правильно решать эту задачу с 1с?

давай в АСЮ.
...
Рейтинг: 0 / 0
Как извлечь данные из 1с в произвольный момент времени?
    #32668035
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
backfireдавай в АСЮ.
Мне тоже интересно! Давайте тут!
...
Рейтинг: 0 / 0
Как извлечь данные из 1с в произвольный момент времени?
    #32668161
saasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.mista.ru/articles1c/ole.htm
http://www.sinor.ru/%7Emy1c/knowhow.html#MATH
...
Рейтинг: 0 / 0
Как извлечь данные из 1с в произвольный момент времени?
    #32668174
Guest_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OLE - говорите.
Можно и OLE использовать. Если не напрягает, что для получения данных придется запускать копию 1С специально для OLE, то welcome!
...
Рейтинг: 0 / 0
Как извлечь данные из 1с в произвольный момент времени?
    #32668185
MMF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще пару вариантов подкину:
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, хотя это весьма медленный вариант.
...
Рейтинг: 0 / 0
Как извлечь данные из 1с в произвольный момент времени?
    #32668450
Qwert_Netman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всетаки правильнее считаю будет
автор1. Соединяться с MS SQL или файлам и забирать данные, попутно расшифровывая метаструктуру, но это неправильно и криво.

почему считаете это неправильно и криво непонятно, даные в 1с 7.7 в SQL как на ладошке , структуры уже все давно разжеваны
ненадо "попутно расшифровывая метаструктуру" , после изменения конфигурации MD достаточно один раз запустить процедуру которая сформирует в той же базе таблицу содержащую соотвествие ИД и Идентификатор метаданного , и таблицу с ИД и Идентификатором Реквизитов метаданных.
...
Рейтинг: 0 / 0
Как извлечь данные из 1с в произвольный момент времени?
    #32668478
Guest_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не все так просто, как Вам кажется.
Часть метаданных хранится напрямую в 1cv7.md
...
Рейтинг: 0 / 0
Как извлечь данные из 1с в произвольный момент времени?
    #32669343
Qwert_Netman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторНе все так просто, как Вам кажется.
Часть метаданных хранится напрямую в 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.ИДОбъекта(Метаданные.Справочник(к).реквизит(р)))+" ','"
+сокрлп(Метаданные.Справочник(к).реквизит(р).Идентификатор)+"' ,'"
+сокрлп(Метаданные.Справочник(к).реквизит(р))+"' ,'"
+сокрлп(Метаданные.Справочник(к).реквизит(р).Комментарий) +"' ,'"
+сокрлп(Метаданные.Справочник(к).реквизит(р).тип) +"' , "
+р +" ,'"
+сокрлп(Метаданные.Справочник(к).реквизит(р).вид) +"' ,"
+сокрлп(Метаданные.Справочник(к).реквизит(р).Периодический ) +")";

КонецЦикла;
КонецЦикла;
...
Рейтинг: 0 / 0
Как извлечь данные из 1с в произвольный момент времени?
    #32669374
mazzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые, предлагаю прекратить обсуждение 1С здесь.
Пользуйтесь специализированными форумами.
...
Рейтинг: 0 / 0
Как извлечь данные из 1с в произвольный момент времени?
    #32669593
Qwert_Netman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторУважаемые, предлагаю прекратить обсуждение 1С здесь.
Пользуйтесь специализированными форумами.


код 1с я показал только для пояснения своей мысли о незатейливом прямом доступе к данным через SQL
...
Рейтинг: 0 / 0
Как извлечь данные из 1с в произвольный момент времени?
    #32673555
Vadim H.Hairetdinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На моем сайте: www.tcdeveloper.ru лежит бесплатная версия генератора отчетов. В комплекте есть компонент анализирующий метаданные 1С. Работает и с DBF и с SQL версией. Для превичной настройки собственных метаданных необходима 1C (используется как OLE-сервер).
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Как извлечь данные из 1с в произвольный момент времени?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]