|
|
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
Приветствую всех. Первый раз пытаюсь реализовать связку с 1С из других программ через OLE. Не знаю, как можно связаться с данными 1С, который работает через терминальные службы. Как это можно реализовать? Ссылки, подскази или хоть, что. Спасибо, всем за внимание. Жду отзывы, с нетерпением... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2009, 14:38 |
|
||
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
orunbek, Открываешь конфигуратор - синтаксис помошник и читаешь: для 8.1 ветку Средства интеграции и администрирования. для 7.7 не помю как звать, но аналогичный раздел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2009, 14:57 |
|
||
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
Случайный гостьorunbek, Открываешь конфигуратор - синтаксис помошник и читаешь: для 8.1 ветку Средства интеграции и администрирования. для 7.7 не помю как звать, но аналогичный раздел. У меня 7ая версия, можете подсказать для этой версии, пожалуйста. Не могу найти что-то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2009, 15:03 |
|
||
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
orunbek, 1. Пишешь прогу для общения с 1с через OLE 2. Ставишь свою прогу на сервере 3. Настраиваешь терминал на свою прогу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2009, 15:14 |
|
||
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
Вот это уже интересный вариант... Спасибо Других способов нету? Т.е. доступ через 1C-OLE к данным на терминальном сервере? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2009, 15:39 |
|
||
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
orunbek Других способов нету? Т.е. доступ через 1C-OLE к данным на терминальном сервере? Почему нет, есть. 1. Пишешь прогу для общения с 1с через OLE 2. Ставишь свою прогу на клиенте 3. Ставишь 1с на клиенте 3. Настраиваешь 1с на доступ к данным и вперёд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2009, 15:52 |
|
||
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
PaulWistorunbek Других способов нету? Т.е. доступ через 1C-OLE к данным на терминальном сервере? Почему нет, есть. 1. Пишешь прогу для общения с 1с через OLE 2. Ставишь свою прогу на клиенте 3. Ставишь 1с на клиенте 3. Настраиваешь 1с на доступ к данным и вперёд. хмм... не совсем понял... как из моей проги на клиентском компе я получу доступ к данным 1С, которые расположены на терминальном сервере, и доступ к этим данные тока через терминальные службы, по сети они не расшарены Через OLE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2009, 15:59 |
|
||
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
orunbekPaulWistorunbek Других способов нету? Т.е. доступ через 1C-OLE к данным на терминальном сервере? Почему нет, есть. 1. Пишешь прогу для общения с 1с через OLE 2. Ставишь свою прогу на клиенте 3. Ставишь 1с на клиенте 3. Настраиваешь 1с на доступ к данным и вперёд. хмм... не совсем понял... как из моей проги на клиентском компе я получу доступ к данным 1С, которые расположены на терминальном сервере, и доступ к этим данные тока через терминальные службы, по сети они не расшарены Через OLE Дык расшарить и все дела, иначе только как в первом предложении. Ну можно написать своего клиента и сервер для СОМ+ или ещё как-то через soket, например, но думаю - это будет перебор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2009, 16:06 |
|
||
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
понятно, расшарить не получиться, скорее всего тока первый вариант вообще, необходимо реализовать вариант 1C+Web, некий шлюз Скажем, получение данных из 1С, путем определенных HttpRequest запросов, но не прямая передача данных, а сначала идет предварительная обработка запросов, проверка на корректность, проверка паролей и авторизация и т.д., затем шлюз обращается к 1C, и выдает ответы запросившему клиенту. Кто-нибудь делал подобное? Какой подход делаете? Может быть какие-либо готовые решения есть (хотя сомневаюсь) И еще, здесь пишут такое: Рудюк С.А. Вначале, я пытался организовать обмен данными с помощью механизма OLE, вооружившись рядом статей, опубликованных на сайте http://delphiplus.org и документацией 1С. Мне удалось подключиться к 1С, получить информацию о полях и данных справочников. Однако, этот способ оказался слишком не стабильным и медленно-работающим. Система не хотела работать, когда 1С завершилась аварийно, кроме того у заказчика пришлось чистить реестр, чтобы OLE срабатывал правильно. И самое, пожалуй главное, так это то, что команды не всегда хотели срабатывать. Приходилось много времени тратить на доступ к элементарным операциям. В завершение всего, данные, получаемые посредством OLE не очень полезны - часто показываются только те данные, которые действительны на данное время. Так, например, курс валют будет показываться на дату системы, а не выводиться таблица изменений курсов валют. Высказывание данного автора насколько верны? Действительно ли такие проблемы возникают при работе с 1С через OLE? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2009, 19:10 |
|
||
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
orunbek, Высказывания этого автора говорят только о том, что он так и не смог разобраться с работой программ написанных на 1С. Из твоих фраз пока до конца не понял, что ты хочешь изобрести, но если будешь пытаться сам реализовать это учти следующее: 1. Более легкий путь для тебя действительно через OLE. Но тут есть один небольшой нюанс, который может тебе помешать. Это время загрузки программы 1С. Для того чтобы 1С начала отвечать на команды её надо будет загрузить в память. Это время зависит больше от аппаратной части. А если у тебя планируется работа многих пользователей и каждый со своим сеансом, а компьютер будет не первой свежести, то можешь наблюдать задержки при соединении с 1с (скажем секунд этак 40, хотя ещё раз это будет зависеть от железа). После установки соединения доступ будет достаточно быстрым. Второй нюанс в этом варианте это подвисшие соединения в случаях разрывов связи с клиентами. Их надо будет просто постоянно отслеживать и снимать. 2. Есть другой путь. Обращаться не к 1С, а непосредственно к данным. Например через ODBC. Доступ будет быстрый. При этом и клиента и сервер доступа к данным реализуешь сам. Но тут надо хорошо знать структуру хранения данных 1С. Как правило это узнаешь только после того как плотно сам поработаешь с 1С. Если предполагается только читать данные этот вариант на мой взгляд предпочтительней. Я бы тебе посоветовал взять в пару 1С-ника и вместе с ним реализовать такой проект. Вопросы: 1.База DBF или SQL? 2.На сколько часто меняется конфигурация? 3.На сколько часто меняется сама информация в базе к которой надо получить доступ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 04:57 |
|
||
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
Спасибо VoditelKobyly за помощь Вообще, хочу реализовать доступ к данным через HTTP. Но при этом не просто прямая связка к данным 1С, а до обращения идет предварительная обработка данных, т.е. сперва авторизация, проверка корректности передаваемых параметров. Т.е. http://server/1c/get?login=test&password=test&action=cashbalance скажем, выполняется такой запрос и получается текущий остаток основной кассы http://server/1c/get?login=test&password=test&action=contragentdebt&contragent=145 получение долга контрагента 145 и т.д. и т.д. Данные в DBF хранятся, конфигурация редко меняется. Информация может меняться часто, т.е. вы наверно хотели предложить вариант снятия текущего состояния базы и работать с нею? если так, этот вариант не сойдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 07:07 |
|
||
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
Может запустить 1С один раз и всегда обращаться к нему, т.е. при каждом запросе не создавать OLE Объект по новой. И еще что вы имеете в виду по поводу "подвисших" соединений? Это, когда созданный OLE объект 1С, теряет подключение с базой? Или же другое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 07:10 |
|
||
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
orunbekМожет запустить 1С один раз и всегда обращаться к нему, т.е. при каждом запросе не создавать OLE Объект по новой. И еще что вы имеете в виду по поводу "подвисших" соединений? Это, когда созданный OLE объект 1С, теряет подключение с базой? Или же другое? Под подвисшими я имел ввиду соединения которые остались с базой, но потеряли соединения с клиентом. Если вы сможете реализовать приложение, которое будет запущено на терминальном сервере и отрабатывать (разбирать) запросы многих пользователей одновременно, при этом обращаясь к одному установленному OLE соединению, то можно и так. А как насчет записи данных? Она нужна? Или только чтение информации с базы. Если только чтение то и запросы к базе 1С вы сможете организовать со своего приложения напрямую без запуска сеанса 1с. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 08:01 |
|
||
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
orunbekМожет запустить 1С один раз и всегда обращаться к нему, т.е. при каждом запросе не создавать OLE Объект по новой. И еще что вы имеете в виду по поводу "подвисших" соединений? Это, когда созданный OLE объект 1С, теряет подключение с базой? Или же другое? Под подвисшими я имел ввиду соединения которые остались с базой, но потеряли соединения с клиентом. Если вы сможете реализовать приложение, которое будет запущено на терминальном сервере и отрабатывать (разбирать) запросы многих пользователей одновременно, при этом обращаясь к одному установленному OLE соединению, то можно и так. А как насчет записи данных? Она нужна? Или только чтение информации с базы. Если только чтение то и запросы к базе 1С вы сможете организовать со своего приложения напрямую без запуска сеанса 1с. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 08:03 |
|
||
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
Понятно. Добавление/редактирование тоже будет Для решения проблем с одновременной обработкой нескольких запросов, кроме запуска дополнительных экземпляров варианта нету? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 08:18 |
|
||
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
orunbek, Почему же нет, есть. Вы пишете на своем языке серверное приложение, которое делает всю обработку запросов от всех клиентов. При запуске это приложение устанавливает связь с базой 1С. Потом по этому каналу идет взаимодействие вашего серверного приложения и 1С. При этом без особых проблем будете как добавлять, так и извлекать данные из базы 1С. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 08:47 |
|
||
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
это понятно, оно так и будет, процесс обращения этого приложения к 1С интересует через OLE. Когда используется только один экземпляр в целях уменьшения "глюков" и в целях увеличения скорости обращения к данным 1С. К примеру, запросил один пользователь все движения по одному контрагенту за какой-либо период. Отчет формируется уже 20 секунд, и еще 40 секунд есть до завершения. Но до завершения данного запроса, другой запросил текущий остаток кассы, в данный момент я же не смогу обратиться к тому же экземпляру для получения остатка кассы или же добавления нового документа и т.д.? Т.е. интересует момент параллельности запросов через один OLE объект 1C ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 08:56 |
|
||
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
orunbek, Параллельности конечно же не будет. Надо будет создавать очередь и информировать клиентов об этом. Вам для начала тогда стоит оценить количество одновременно работающих запросов пользователей, какого плана операции предстоит делать. Сколько времени сейчас занимают эти операции. Какая временная задерка для ваших клиентов допустима между запросом и ответом. В каком виде должны быть эти ответы. Потому как получить остаток кассы на текущий момент времени - это одни затраты, а вот получить всю историю работы с клиентом это уже другие затраты и другой объем выходной информации. Добавьте сюда ещё те задачи, которые должны решаться через внесение новых данных плюс моменты синхронизации при одновременной работе нескольких пользователей. Может вас и простой терминальный доступ устраивает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 10:31 |
|
||
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
Спасибо за советы. Вы правы так и сделаю. Предположительно простые операции (по скорости и т.д.) буду наверно через общий экземпляр 1C OLE делать, а предположительно долгие создавать каждый раз новый экземпляр А под простым терминальным доступом что имеете в виду? Через сам 1С это все проделывать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 10:38 |
|
||
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
orunbek, Да. На терминальном сервере устанавливаете 1с. Если есть Citrix, публикуете приложение. На клиентских машинах настраиваете ярлыки на запуск этого приложения. При этом все клиентские экземпляры программы 1С работают на терминальном сервере. Не надо ничего изобретать, пользователи все одновременно работают с базой 1С. При желании можно даже запуск через окно эксплорера настроить через дополнительную аутентификацию. Если Citrixа нет, тогда просто через подключение к удаленному рабочему столу с автоматическим запуском программы 1с. Я не знаю вашей постановки задачи, но судя по тому, что вы планируете какие-то записи вносить, на простых операциях вы не остановитесь. Вам проще внутри программы 1с под соответствующих пользователей настроить интерфейсы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 10:49 |
|
||
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
интересный вариант, но моя задача заключается в разработке Web-шлюза для работы с 1С Через которую будут работать мобильные устройства (WindowsCE, Symbian, J2ME) через интернет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 15:19 |
|
||
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
а народу ходить много будет через инет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 16:14 |
|
||
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
одновременно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 16:15 |
|
||
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
orunbekинтересный вариант, но моя задача заключается в разработке Web-шлюза для работы с 1С Через которую будут работать мобильные устройства (WindowsCE, Symbian, J2ME) через интернет Вы сильно не обольщайтесь насчет COM-а у 1с есть порог по вызову одновременного количества СОМ-обьектов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 16:21 |
|
||
|
OLE+1C через терминальный сервер (Delphi, VB...)
|
|||
|---|---|---|---|
|
#18+
да бог с ним с com... стоит посчитать сколько будет стоить покупка клиентских лицензий на 1С по числу одновременно работающих пользователей и возможно необходимость в реализации пропадет.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2009, 16:26 |
|
||
|
|

start [/forum/topic.php?fid=28&msg=36101223&tid=1523428]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
155ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 502ms |

| 0 / 0 |
