powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / OLE+1C через терминальный сервер (Delphi, VB...)
25 сообщений из 52, страница 1 из 3
OLE+1C через терминальный сервер (Delphi, VB...)
    #36098713
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую всех.
Первый раз пытаюсь реализовать связку с 1С из других программ через OLE.
Не знаю, как можно связаться с данными 1С, который работает через терминальные службы.
Как это можно реализовать? Ссылки, подскази или хоть, что.

Спасибо, всем за внимание. Жду отзывы, с нетерпением...
...
Рейтинг: 0 / 0
OLE+1C через терминальный сервер (Delphi, VB...)
    #36098766
случайный гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbek,

Открываешь конфигуратор - синтаксис помошник и читаешь:
для 8.1 ветку Средства интеграции и администрирования.
для 7.7 не помю как звать, но аналогичный раздел.
...
Рейтинг: 0 / 0
OLE+1C через терминальный сервер (Delphi, VB...)
    #36098778
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Случайный гостьorunbek,

Открываешь конфигуратор - синтаксис помошник и читаешь:
для 8.1 ветку Средства интеграции и администрирования.
для 7.7 не помю как звать, но аналогичный раздел.

У меня 7ая версия, можете подсказать для этой версии, пожалуйста.
Не могу найти что-то
...
Рейтинг: 0 / 0
OLE+1C через терминальный сервер (Delphi, VB...)
    #36098804
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbek,

1. Пишешь прогу для общения с 1с через OLE
2. Ставишь свою прогу на сервере
3. Настраиваешь терминал на свою прогу
...
Рейтинг: 0 / 0
OLE+1C через терминальный сервер (Delphi, VB...)
    #36098870
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот это уже интересный вариант...
Спасибо

Других способов нету? Т.е. доступ через 1C-OLE к данным на терминальном сервере?
...
Рейтинг: 0 / 0
OLE+1C через терминальный сервер (Delphi, VB...)
    #36098903
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbek
Других способов нету? Т.е. доступ через 1C-OLE к данным на терминальном сервере?

Почему нет, есть.

1. Пишешь прогу для общения с 1с через OLE
2. Ставишь свою прогу на клиенте
3. Ставишь 1с на клиенте
3. Настраиваешь 1с на доступ к данным

и вперёд.
...
Рейтинг: 0 / 0
OLE+1C через терминальный сервер (Delphi, VB...)
    #36098926
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulWistorunbek
Других способов нету? Т.е. доступ через 1C-OLE к данным на терминальном сервере?

Почему нет, есть.

1. Пишешь прогу для общения с 1с через OLE
2. Ставишь свою прогу на клиенте
3. Ставишь 1с на клиенте
3. Настраиваешь 1с на доступ к данным

и вперёд.

хмм... не совсем понял...
как из моей проги на клиентском компе я получу доступ к данным 1С, которые расположены на терминальном сервере, и доступ к этим данные тока через терминальные службы, по сети они не расшарены
Через OLE
...
Рейтинг: 0 / 0
OLE+1C через терминальный сервер (Delphi, VB...)
    #36098944
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekPaulWistorunbek
Других способов нету? Т.е. доступ через 1C-OLE к данным на терминальном сервере?

Почему нет, есть.

1. Пишешь прогу для общения с 1с через OLE
2. Ставишь свою прогу на клиенте
3. Ставишь 1с на клиенте
3. Настраиваешь 1с на доступ к данным

и вперёд.

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

Дык расшарить и все дела, иначе только как в первом предложении.

Ну можно написать своего клиента и сервер для СОМ+ или ещё как-то через soket, например, но думаю - это будет перебор.
...
Рейтинг: 0 / 0
OLE+1C через терминальный сервер (Delphi, VB...)
    #36099406
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
понятно, расшарить не получиться, скорее всего тока первый вариант
вообще, необходимо реализовать вариант 1C+Web, некий шлюз
Скажем, получение данных из 1С, путем определенных HttpRequest запросов, но не прямая передача данных, а сначала идет предварительная обработка запросов, проверка на корректность, проверка паролей и авторизация и т.д., затем шлюз обращается к 1C, и выдает ответы запросившему клиенту. Кто-нибудь делал подобное? Какой подход делаете?
Может быть какие-либо готовые решения есть (хотя сомневаюсь)
И еще, здесь пишут такое:
Рудюк С.А.
Вначале, я пытался организовать обмен данными с помощью механизма OLE, вооружившись рядом статей, опубликованных на сайте http://delphiplus.org и документацией 1С.
Мне удалось подключиться к 1С, получить информацию о полях и данных справочников. Однако, этот способ оказался слишком не стабильным и медленно-работающим. Система не хотела работать, когда 1С завершилась аварийно, кроме того у заказчика пришлось чистить реестр, чтобы OLE срабатывал правильно. И самое, пожалуй главное, так это то, что команды не всегда хотели срабатывать. Приходилось много времени тратить на доступ к элементарным операциям.
В завершение всего, данные, получаемые посредством OLE не очень полезны - часто показываются только те данные, которые действительны на данное время. Так, например, курс валют будет показываться на дату системы, а не выводиться таблица изменений курсов валют.

Высказывание данного автора насколько верны? Действительно ли такие проблемы возникают при работе с 1С через OLE?
...
Рейтинг: 0 / 0
OLE+1C через терминальный сервер (Delphi, VB...)
    #36099784
VoditelKobyly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
orunbek,

Высказывания этого автора говорят только о том, что он так и не смог разобраться с работой программ написанных на 1С. Из твоих фраз пока до конца не понял, что ты хочешь изобрести,
но если будешь пытаться сам реализовать это учти следующее:
1. Более легкий путь для тебя действительно через OLE. Но тут есть один небольшой нюанс, который может тебе помешать. Это время загрузки программы 1С. Для того чтобы 1С начала отвечать на команды её надо будет загрузить в память. Это время зависит больше от аппаратной части. А если у тебя планируется работа многих пользователей и каждый со своим сеансом, а
компьютер будет не первой свежести, то можешь наблюдать задержки при соединении с 1с
(скажем секунд этак 40, хотя ещё раз это будет зависеть от железа). После установки соединения
доступ будет достаточно быстрым. Второй нюанс в этом варианте это подвисшие соединения в случаях разрывов связи с клиентами. Их надо будет просто постоянно отслеживать и снимать.
2. Есть другой путь. Обращаться не к 1С, а непосредственно к данным. Например через ODBC.
Доступ будет быстрый. При этом и клиента и сервер доступа к данным реализуешь сам. Но тут надо хорошо знать структуру хранения данных 1С. Как правило это узнаешь только после того как плотно сам поработаешь с 1С. Если предполагается только читать данные этот вариант на мой взгляд предпочтительней.

Я бы тебе посоветовал взять в пару 1С-ника и вместе с ним реализовать такой проект.

Вопросы:
1.База DBF или SQL?
2.На сколько часто меняется конфигурация?
3.На сколько часто меняется сама информация в базе к которой надо получить доступ?
...
Рейтинг: 0 / 0
OLE+1C через терминальный сервер (Delphi, VB...)
    #36099806
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо 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 хранятся, конфигурация редко меняется.
Информация может меняться часто, т.е. вы наверно хотели предложить вариант снятия текущего состояния базы и работать с нею? если так, этот вариант не сойдет.
...
Рейтинг: 0 / 0
OLE+1C через терминальный сервер (Delphi, VB...)
    #36099810
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может запустить 1С один раз и всегда обращаться к нему, т.е. при каждом запросе не создавать OLE Объект по новой.
И еще что вы имеете в виду по поводу "подвисших" соединений?
Это, когда созданный OLE объект 1С, теряет подключение с базой?
Или же другое?
...
Рейтинг: 0 / 0
OLE+1C через терминальный сервер (Delphi, VB...)
    #36099827
VoditelKobyly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
orunbekМожет запустить 1С один раз и всегда обращаться к нему, т.е. при каждом запросе не создавать OLE Объект по новой.
И еще что вы имеете в виду по поводу "подвисших" соединений?
Это, когда созданный OLE объект 1С, теряет подключение с базой?
Или же другое?

Под подвисшими я имел ввиду соединения которые остались с базой, но потеряли соединения с клиентом.
Если вы сможете реализовать приложение, которое будет запущено на терминальном сервере и отрабатывать (разбирать) запросы многих пользователей одновременно, при этом обращаясь к одному установленному OLE соединению, то можно и так.

А как насчет записи данных? Она нужна? Или только чтение информации с базы.
Если только чтение то и запросы к базе 1С вы сможете организовать со своего приложения
напрямую без запуска сеанса 1с.
...
Рейтинг: 0 / 0
OLE+1C через терминальный сервер (Delphi, VB...)
    #36099828
VoditelKobyly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
orunbekМожет запустить 1С один раз и всегда обращаться к нему, т.е. при каждом запросе не создавать OLE Объект по новой.
И еще что вы имеете в виду по поводу "подвисших" соединений?
Это, когда созданный OLE объект 1С, теряет подключение с базой?
Или же другое?

Под подвисшими я имел ввиду соединения которые остались с базой, но потеряли соединения с клиентом.
Если вы сможете реализовать приложение, которое будет запущено на терминальном сервере и отрабатывать (разбирать) запросы многих пользователей одновременно, при этом обращаясь к одному установленному OLE соединению, то можно и так.

А как насчет записи данных? Она нужна? Или только чтение информации с базы.
Если только чтение то и запросы к базе 1С вы сможете организовать со своего приложения
напрямую без запуска сеанса 1с.
...
Рейтинг: 0 / 0
OLE+1C через терминальный сервер (Delphi, VB...)
    #36099840
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно.
Добавление/редактирование тоже будет
Для решения проблем с одновременной обработкой нескольких запросов, кроме запуска дополнительных экземпляров варианта нету?
...
Рейтинг: 0 / 0
OLE+1C через терминальный сервер (Delphi, VB...)
    #36099871
VoditelKobyly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
orunbek,

Почему же нет, есть.
Вы пишете на своем языке серверное приложение, которое делает всю обработку запросов от всех клиентов. При запуске это приложение устанавливает связь с базой 1С. Потом по этому
каналу идет взаимодействие вашего серверного приложения и 1С. При этом без особых проблем
будете как добавлять, так и извлекать данные из базы 1С.
...
Рейтинг: 0 / 0
OLE+1C через терминальный сервер (Delphi, VB...)
    #36099880
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это понятно, оно так и будет, процесс обращения этого приложения к 1С интересует через OLE.
Когда используется только один экземпляр в целях уменьшения "глюков" и в целях увеличения скорости обращения к данным 1С.
К примеру, запросил один пользователь все движения по одному контрагенту за какой-либо период. Отчет формируется уже 20 секунд, и еще 40 секунд есть до завершения.
Но до завершения данного запроса, другой запросил текущий остаток кассы, в данный момент я же не смогу обратиться к тому же экземпляру для получения остатка кассы или же добавления нового документа и т.д.?
Т.е. интересует момент параллельности запросов через один OLE объект 1C
...
Рейтинг: 0 / 0
OLE+1C через терминальный сервер (Delphi, VB...)
    #36100086
VoditelKobyly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
orunbek,

Параллельности конечно же не будет. Надо будет создавать очередь и информировать клиентов об этом. Вам для начала тогда стоит оценить количество одновременно работающих запросов пользователей, какого плана операции предстоит делать. Сколько времени сейчас занимают эти операции. Какая временная задерка для ваших клиентов допустима между запросом и ответом. В каком виде должны быть эти ответы. Потому как получить остаток кассы на текущий момент времени - это одни затраты, а вот получить всю историю работы с клиентом это уже другие затраты и другой объем выходной информации.
Добавьте сюда ещё те задачи, которые должны решаться через внесение новых данных плюс моменты синхронизации при одновременной работе нескольких пользователей.
Может вас и простой терминальный доступ устраивает?
...
Рейтинг: 0 / 0
OLE+1C через терминальный сервер (Delphi, VB...)
    #36100108
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за советы. Вы правы так и сделаю.
Предположительно простые операции (по скорости и т.д.) буду наверно через общий экземпляр 1C OLE делать, а предположительно долгие создавать каждый раз новый экземпляр
А под простым терминальным доступом что имеете в виду?
Через сам 1С это все проделывать?
...
Рейтинг: 0 / 0
OLE+1C через терминальный сервер (Delphi, VB...)
    #36100137
VoditelKobyly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
orunbek,

Да. На терминальном сервере устанавливаете 1с. Если есть Citrix, публикуете приложение.
На клиентских машинах настраиваете ярлыки на запуск этого приложения. При этом все
клиентские экземпляры программы 1С работают на терминальном сервере. Не надо
ничего изобретать, пользователи все одновременно работают с базой 1С. При желании можно даже запуск через окно эксплорера настроить через дополнительную аутентификацию.
Если Citrixа нет, тогда просто через подключение к удаленному рабочему столу с автоматическим запуском программы 1с.
Я не знаю вашей постановки задачи, но судя по тому, что вы планируете какие-то записи вносить, на простых операциях вы не остановитесь. Вам проще внутри программы 1с под соответствующих пользователей настроить интерфейсы.
...
Рейтинг: 0 / 0
OLE+1C через терминальный сервер (Delphi, VB...)
    #36101033
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
интересный вариант, но моя задача заключается в разработке Web-шлюза для работы с 1С
Через которую будут работать мобильные устройства (WindowsCE, Symbian, J2ME) через интернет
...
Рейтинг: 0 / 0
OLE+1C через терминальный сервер (Delphi, VB...)
    #36101221
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а народу ходить много будет через инет?
...
Рейтинг: 0 / 0
OLE+1C через терминальный сервер (Delphi, VB...)
    #36101223
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
одновременно
...
Рейтинг: 0 / 0
OLE+1C через терминальный сервер (Delphi, VB...)
    #36101245
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekинтересный вариант, но моя задача заключается в разработке Web-шлюза для работы с 1С
Через которую будут работать мобильные устройства (WindowsCE, Symbian, J2ME) через интернет

Вы сильно не обольщайтесь насчет COM-а у 1с есть порог по вызову одновременного количества СОМ-обьектов.
...
Рейтинг: 0 / 0
OLE+1C через терминальный сервер (Delphi, VB...)
    #36101262
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да бог с ним с com...

стоит посчитать сколько будет стоить покупка клиентских лицензий на 1С по числу одновременно работающих пользователей и возможно необходимость в реализации пропадет..
...
Рейтинг: 0 / 0
25 сообщений из 52, страница 1 из 3
Форумы / [игнор отключен] [закрыт для гостей] / OLE+1C через терминальный сервер (Delphi, VB...)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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