На главную страницу Версия-Т
VTSoft.ru

VT Магазин + DCOM + winxp + win2003


RSS
VT Магазин + DCOM + winxp + win2003
 
Есть "wind2003 сервер" с отключенным фаерволом. На нём установлен комплекс ПО VT-Дисконт. Так же на сервере настроен DCOM по той инструкции, которая идёт в комплекте с ПО, но инструкция для winXP (хотя я не заметил разницы в настройке DCOM между 2003 и XP).
И есть клиент на winXP, на котором установлена 1С и VT Магазин. Так же на этом клиенте настроен DCOM.
Далее, на клиенте (winXP), в 1C, создаётся чек ККМ. Но при попытке использовать бонусную систему, штатная обработка, которая идёт в составе комплекса выдаёт ошибку "Ошибка соединения с системой VT:Дисконт!".

Пробовал вместо "win2003 сервер" использовать XP. Соответственно делал те же настройки. В таком случае ошибок небыло и всё работало.
Но необходима именно первая связка win2003 и winXP.
Скажите пожалуйста может быть эта связка настраивается как-то иначе?
 
Настройка для WinServer будет отличаться, поскольку серверные ОС предъявляют более строгие требования к безопасности. Помимо этого, в Win2003 Server после выхода SP1 были изменены разрешения по умолчанию для модели COM. Более подробно можно ознакомиться с информацией по работе DCOM в Win2003 Server по следующим ссылкам:
http://technet.microsoft.com/ru-ru/library/cc738214%28v=ws.10%29.aspx
http://support.microsoft.com/kb/892500/ru
 
Проблема решилась следующим образом:
В свойствах объекта "VTDServ Object", на вкладке "Удостоверение" надо было радиобаттон поставить напротив "запускающий пользователь". Если ставить напротив "Текущий пользователь", как описано в поставляемой инструкции, то работать не будет.
Но это верно только для 2003 сервера. Для XP инструкция верна и всё работало.
 
Поспешил я говорить, что проблема решилась. Начались какие-то волшебные танцы с бубном. Удалось заставить работать только на одном компе да и на нём в конечном итоге тоже сломалось. Валяться непонятные ошибки при условии, что всё и для всех разрешено. В общем надоело всё и решили поставить XP.

Теперь встал следующий вопрос. На сервере выставлен локальный IP адрес, а дальше провод уходит к провайдеру. Нужно звонить ему, чтобы он "прокинул" порты для вашей программы с внешнего адреса до нашего локального. Какие порты нужно открывать?
 
Если я правильно понимаю, Вы пытаетесь сделать сервер дисконта доступным из сети Интернет. Об этом Вы ранее не говорили. Поэтому хочу отметить несколько важных моментов.

Сначала по поводу Вашего вопроса... Для доступа к серверу из Интернет лучше всего иметь "белый" IP адрес. Обычно, практически все провайдеры предоставляют данную услугу (бесплатно или за дополнительную плату). Если по каким-то причинам получение "белого" IP невозможно, то следует организовать проброс порта 135, по которому работает DCOM.

Но открывать для доступа извне порт 135 без хорошо настроенной системы безопасности - не лучший вариант. Неограниченный доступ по этому порту - серьезная уязвимость в безопасности ПК. Одно дело, когда Вы открываете доступ внутри своей локальной сети и совсем другое, когда открываете доступ из Интернет. Для построения безопасной системы возможно 2 варианта.
  • Досконально разобраться с настройкой безопасности DCOM (и RPC в целом) в Windows и правильно ограничить доступ к этой функциональности из внешней сети.
  • Поднять на сервере, где установлен дисконт, VPN-сервер и открыть доступ к DCOM только внутри виртуальной частной сети. Разумеется, что все ПК, которым необходимо получить доступ к серверу дисконтной системы, должны входить в эту виртуальную сеть.

Есть еще один вариант, но придется немного подождать. Ориентировочно, в течение одной-двух недель мы добавим возможность подключения к дисконт-серверу по протоколу TCP. Настройка подключения будет сведена к указанию номера TCP порта на стороне сервера (VT:Дисконт) и стороне клиента (VT:Магазин). Но и в этом случае, если Вы хотите обеспечить конфиденциальность передаваемой информации через Интернет, стоит организовать VPN. Разумеется, что по завершению доработки потребуется обновление как VT:Дисконт, так и VT:Магазин.
 
Часть сети локальная и пока я бился только в ней. А часть сети будет соединяться через интернет. Про VPN и дыру в безопасности тоже понимаю, но когда каменный цветок не выходит это реально начинает бесить потому пытаешься всё разрешить, чтобы посмотреть, а оно работает хоть или нет.
Вот и сейчас есть два компьютера. На сервере установлена Xp c полной установкой системы VT-Дисконт + универсальный USB ключ. Компьютер настроен по прилагаемой инструкции только помимо пользователя "Все" добавлен пользователь "Анонимный вход", т.к касса ломилась именно с анонимного пользователя и сервер, в журнале событий молил, чтобы такой пользователь тоже был добавлен. Я его добавил и ошибки в журнале событий сервера исчезли, но появились в журнале компьютера, на котором установлена касса.
На компьютере, куда подключена касса, установлена XP и 1С с обработкой VT-Дисконт. Компьютер настроен по прилагаемой инструкции к системе VT-дисконт. И когда пытаешься ей воспользоваться, то в журнале событий кассы появляется следующее сообщение с ошибкой:

Тип события: Ошибка
Источник события: DCOM
Категория события: Отсутствует
Код события: 10006
Дата: 06.11.2012
Время: 12:43:50
Пользователь: LG\user
Компьютер: LG
Описание:
Ошибка DCOM "Ошибка доступа " с компьютера 192.168.7.31 при попытке активации сервера:
{1A6468D7-9B06-4D8E-B59A-126C042972EF}

192.168.7.31 - IP адрес сервера
{1A6468D7-9B06-4D8E-B59A-126C042972EF} - идентификатор компоненты "VTDServ Object" на компьютере кассы.
Фаерволы на обоих компьютерах выключены.

Вы можете сказать как забороть эту ошибку? Я уже с ног сбился.

А ещё хочется узнать подробнее про вариант соединения по TCP, о котором вы говорили выше.
1. Т.е получается, что можно будет забить на настройку через DCOM?
2. Нужно ли будет покупать отдельные USB ключи для каждой кассы?
 
Цитата
1. Т.е получается, что можно будет забить на настройку через DCOM?

Именно для упрощения настройки мы это и делаем. Достаточно будет указать в сервере дисконта какой порт он должен слушать, а в АРМК - к какому IP адресу и порту подключаться. Из дополнительных настроек надо будет только разрешить в брандмауэре доступ по протоколу TCP на нужный порт.
Цитата
2. Нужно ли будет покупать отдельные USB ключи для каждой кассы?

Нет, в этом плане, по сравнению с DCOM, ничего не меняется. Меняется только способ связи клиента с сервером.
 
Такой вариант не подходит. Большие затраты.
Что скажете про ошибку? Как её забороть?
 
О каких именно затратах Вы говорите?
 
3800 рублей за каждую копию программы Vt-магазин, которая требует USB ключ.
 
Или я чего-то недопонимаю, или Вы невнимательно читаете. Я же написал, что в плане ключей, по сравнению с DCOM (который Вас устраивает по затратам) ничего не меняется. Так же, как и с DCOM, один дисконтный сервер сможет обслуживать несколько клиентов. Только связь между клиентами и сервером будет производиться не через вызовы RPC, а через обмен сообщениями по TCP протоколу.

Если Вы не используете VT:Магазин, то покупать Вам его не нужно :) . Для подключения из 1С будет доступна ActiveX библиотека (Inproc server) с тем же набором методов и свойств, что и у COM-интерфейса VT:Дисконт. У этой библиотеки будут 2 дополнительных свойства для подключения к дисконтному серверу: IP адрес и номер порта сервера.
 
Видимо я вас не так понял, тогда милости прошу простить за это. В таком случае предложенный вами вариант устроит.
Итого:
- нужно будет дождаться пока вы допилите новую версию программы;
- обновить все программы (при том, что старый ключ подойдёт);
- немного подправить обработку, которая общается с сервером;
- доплачивать не надо будет (сейчас есть универсальный ключ для VT-Дисконта "офис + магазин + конфигуратор");
Так? :)
Если так, то мы счастливы.
Изменено: smolenskiy - 06.11.2012 17:37:27
 
Да, всё именно так.
 
Скажите пожалуйста, а как мне узнать когда новая версия программы будет готова?
 
Работу заканчиваем. Будет готово ориентировочно в начале следующей недели. По готовности напишем в этой ветке и вышлем вам на e-mail.
 
Обновление отправлено на e-mail.