Добрый день ! Решили начать пользоваться сервером взаимодействия. Все установили на выделенном внутреннем сервере: утилиту ring, PostgreSQL 9.6, сам сервер взаимодействия. Службы все запущены и работают.
Команда http://localhost:8087/rs/health тоже показывает то , что написано в статье :-). Поправили com._1c.ecs.websocket.yml. Добавили строки
port: 8999
wss: false
При регистрации в 1С Предприятии указываю ws://192.168.10.10:8999 и получаю ошибку Ошибка при регистрации. Ошибка протокола системы взаимодействия.
До того как поправили com._1c.ecs.websocket.yml писало что сервер отклонил подключение. Т.е. мы на правильном пути — подключение по web socket идет, но протоколы не совпадают. Предположение — не хватает прав на какую то папку связаной с сервером взаимодействия какому то пользователю. Осталось определить к какой папке и какому пользователю. 3 службы 1ce запущены под Локальной системой. Кто сталкивался с такой ошибкой — подскажите куда можно посмотреть?
Помогаю со студенческими работами здесь
Ошибка при регистрации
Доброго времени суток. Изначально при регистрации было все нормально. Решил добавить еще один пункт…
Ошибка при регистрации
при попытке зарегистрировать пользователя выдает такую ошибку:
Ошибка при регистрации
при регистрации на сайте ошибка в 21 строке
Warning: mysql_fetch_array() expects parameter 1 to…
Ошибка при регистрации
Здравствуйте!
При регистрации аккаунта в поле куда ввожу Логин выскакивает эта ошибка Warning:…
Ошибка при регистрации
Выскакивает эта ошибка при создании регистрации
Argument 1 passed to…
Ошибка при регистрации
как отредактировать регистрацию!
Имеется ошибка, а код не могу найти.
Искать еще темы с ответами
Или воспользуйтесь поиском по форуму:
<?php // Полная загрузка сервисных книжек, создан 2023-01-05 12:44:55
global $wpdb2;
global $failure;
global $file_hist;
///// echo '<H2><b>Старт загрузки</b></H2><br>';
$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
///// echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}
$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
///// echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}
/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
///// echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
///// echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist); ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7]; ////получаем размер файла
$m_mtime_file=$masiv_data_file[9]; ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file
///// echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
///// echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
///// echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);
if ($results)
{ foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));
////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
///// echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
///// echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}
////загружаем данные
$table='vin_history'; // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация // (путь от корня web-сервера)
$delim=';'; // Разделитель полей в CSV файле
$enclosed='"'; // Кавычки для содержимого полей
$escaped='\
Related Posts
Восстановление последовательности документов при закрытии месяца в Бухгалтерия 3.0 не завершается
Заполнение табличных частей
Формирование сводных актов выполненных работ
Ввод поступления в переработку на основании передачи сырья (между организациями)
Конспект по установке сервера 1С на linux
Получение имени компьютера и его IP локально и в терминале
99 Comments
-
Задумка интересная, посмотрим на реализацию. За инструкцию плюс.
Reply ↓
-
Я так понимаю ставили PostgreSQL т.к. он бесплатный или это особенность реализации сервера взаимодействия?
У клиентов обычно MS SQL стоит! Соответственно главный вопрос все ли поставится на боевом сервере?
Reply ↓
-
Спасибо за ссылку на ИТС:
К установленному серверу взаимодействия может подключаться система «1С:Предприятие» версий 8.3.10 и 8.3.11. При работе с версией 8.3.10 будут недоступны видеозвонки.
Для работы системы взаимодействия на компьютере необходимо наличие следующих программных продуктов:
● Oracle Java 8 (64-разрядная) – версия 1.8 и старше.
Скачать Java: https://www.java.com/ru/download/.
● СУБД PostgreSQL – версия 9.5 и старше.
Скачать сервер: https://www.postgresql.org/download/.
Документация: https://postgrespro.ru/docs/postgresql/.
● Утилита ring (64-разрядная) – версия 0.8 и старше.
Утилита версии 0.8 поставляется:
● в составе системы «1С:Предприятие» версии 8.3.11 и старше;
● в составе сервера взаимодействия.
Документация к утилите ring см. здесь.
Показать
Похоже без PostgreSQL не обойтись.
Reply ↓
-
на Windows 10 Pro не встала…
Reply ↓
-
(4) На 8.1 Про работает. Винда 10 не далеко ушла от нее.
Reply ↓
-
Я бы добавил в статью еще инфу по
PostgreSQL 9.6.3-1.1C
Если скачать и установить именно эту версию с сайта ИТС, то инсталлер сервера взаимодействия не пойдет дальше, пока не найдет PostgreSQL, а в данном случае он его не находит.
Нужно в реестре добавить вот такую информацию чтобы установка пошла дальше.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESOFTWAREPostgreSQL Global Development Group]
[HKEY_LOCAL_MACHINESOFTWAREPostgreSQL Global Development GroupPostgreSQL]
«Version»=»9.6»
Reply ↓
-
(6) в документации на ИТС посылают за СУБД именно на оф.сайт постгри
Reply ↓
-
(7) однако же взлетело и на PostgreSQL 9.6.3-1.1C и прекрасно работает
Reply ↓
-
ну все патчи не опишешь, да и сегодня такой инсталлер, а в след версии поправят — уже и неактуальным станет…
Reply ↓
-
(5) я разобрался в чем дело было)
Reply ↓
-
(6) кстати, да!
У меня 9.6.3-1.1с стояла и я поставил еще с оф сайта, так вот база развернулась именно в 9.6.3-1.1с )))
Reply ↓
-
А может кто готовую виртуалку запилит? От 1С очевидно не добьешься…
Reply ↓
-
Все сделали,при регистрации надо ввести любой адрес почты?
Reply ↓
-
Выдает ошибку при регистрации: Пользователь не авторизован, кто-нибудь решал эту проблему?
Reply ↓
-
установил сервер взаимодействия на сервере.
локально все работает.
в офисе (на другом конце города) через тонкий клиент не регистрируется пользователь!
вообще там ничего поменялось!
КАК ЗАПУСТИТЬ В ТОНКОМ КЛИЕНТЕ?
кто-нибудь уже делал такое?
Reply ↓
-
Верните скриншоты 🙂
Reply ↓
-
о да, скрины поправлю
Reply ↓
-
(6)
В этом нет необходимости.
достаточно скачать по ссылке постгрэ и установить ее
папки установки и ветки в реестрах будут разными.
по крайней мере у меня все пашет корректно.
у меня стоит постре для тестовых баз 9.6.3-1с
и плюс версия с офф сайта постгре 9.6
Reply ↓
-
(18) не вижу необходимости в установке двух серверов при возможности установки только одного
Reply ↓
-
Что-то не устанавливается.
Reply ↓
-
(20) ring не ставили?
Reply ↓
-
ставил. если не ставить то там ругать другая
а тут вот стоит и не пойму что написано
Reply ↓
-
Короче не знаю, второй день бьюсь.
постгре встал без проблем и та и та версии.
в итоге вывод: можно с сайта не качать, просто тупо прописать DWORD паарметр в реестре указынным (6) , выше.
у меня на данный момент не встает Ring, точнее сама программа установилась, но «1ce_cs2_all_in_one_setup_2.0.19_1.x64» не может что-то с ней сделать.(см скрин выше)
я так понял это что-то очень и очень сырое.
Reply ↓
-
А что у кого получается с контекстными обсуждениями (в формах элементов)? У меня команда «Обсуждение» в формах объектов не отображается. Может быть такое, что контекстные обсуждения отключены в тестовом релизе?
Reply ↓
-
Прежде, чем подключить базу к СВ, поправил конфиг и перезапустил службу 1ce-cs
Что за конфиг ты поправил? Где его искать? Что именно поправил и зачем?
Reply ↓
-
(25) из документации ИТС
Данные созданных экземпляров сервисов будут располагаться в каталоге %ProgramData%1C1CEinstances<имя экземпляра>.
Reply ↓
-
Поставил для интереса на Win 2012. Что сходу не получилось, так это угадать строку подключения, подглядел на скриншоте.
Между базами не работает, файлы, картинки пересылать не может. Пока сложно найти применение.
Reply ↓
-
В общем получилось у меня все поставить и настроить.
Что было сделано:
1. установил чистый Windows 7х64 (моя была ну очень мусорная, поэтому не запускался видимо)
2. скачал все дистры с сайта 1С
3. скачал PostgreSQL с сайта самой 1С, далее подправил реестр как описано выше. (за одно обновил ее вьювер до версии pgAdmin 4)
4. Установил 1С 8.3.10.2561 x64
5. Далее установил сервер взаимодействия (СВ). Особо как то ничего не трогал. проверил папки где встал СВ.
проверил все файл в формате yml.
проверить yml можно вот тут: C:ProgramData1C1CEinstancescsconfig — тут много полезной инфы
Прим.: весь СВ встает по этому адресу: «C:Program Files1C1CE»
5. У Postgre после установки СВ проверил права пользователя «cs» выделил ему «божественные» права т.е. по аналогии с рут правами админа базы.
все и СВ заработал. см. скрин во вложении
6. далее создаете или если нет то в существующей базе, главное чтоб была управляемым приложением 1с выше 8.3.10
7. запускаете утилиту: CollaborationSystemRegister.epf без нее никак потому что она регистрирует вашу базу как СВ в базе postgre.
все. если что пишите
Reply ↓
-
Забыл сказать.
В версии 8.10 нет видео звонков, как бы ну и ладно, в версии 8.11 есть видео звонки, НО, по настройкам я понял что видео пока работает через 1С т.е. «dialog.ru» — или я могу ошибаться, по крайней мере в настройках видел.
Reply ↓
-
Еще.
Javа я поставил оба варианта и jdk и саму java.
Reply ↓
-
-
(31) Была такая же проблема, когда Postgres загрузил с сайта 1С. Грузите с оригинального сайта, как указывает автор статьи, и все будет ок.
Reply ↓
-
А эта штука с РИБ работает? Можно к ней подключить несколько узлов РИБ одной базы?
Reply ↓
-
Добрый день!
Может кто знает почему при установки на последнем пункте не стартует служба и остановка прерывается (все версии PostgreSQL переустанавливал, не помогает)?
Логи:
[1FC8:0CCC][2017-11-29T14:31:51]i330: Removed bundle dependency provider: {5087a11c-5622-492f-a86f-23b2c637c63b}
[1FC8:0CCC][2017-11-29T14:31:51]i352: Removing cached bundle: {5087a11c-5622-492f-a86f-23b2c637c63b}, from path: C:ProgramDataPackage Cache{5087a11c-5622-492f-a86f-23b2c637c63b}\r
[1FC8:0CCC][2017-11-29T14:31:51]i371: Updating session, registration key: SOFTWAREMicrosoftWindowsCurrentVersionUninstall{5087a11c-5622-492f-a86f-23b2c637c63b}, resume: None, restart initiated: No, disable resume: No
[06C8:1D68][2017-11-29T14:31:51]i399: Apply complete, result: 0x80070643, restart: None, ba requested restart: No
Reply ↓
-
(28)
новки СВ пр
Добрый день!
Может знаете почему при установки на последнем пункте не стартует служба и остановка прерывается (все версии PostgreSQL переустанавливал, не помогает)?
Логи:
….
[1FC8:0CCC][2017-11-29T14:31:51]i330: Removed bundle dependency provider: {5087a11c-5622-492f-a86f-23b2c637c63b}
[1FC8:0CCC][2017-11-29T14:31:51]i352: Removing cached bundle: {5087a11c-5622-492f-a86f-23b2c637c63b}, from path: C:ProgramDataPackage Cache{5087a11c-5622-492f-a86f-23b2c637c63b}\r
[1FC8:0CCC][2017-11-29T14:31:51]i371: Updating session, registration key: SOFTWAREMicrosoftWindowsCurrentVersionUninstall{5087a11c-5622-492f-a86f-23b2c637c63b}, resume: None, restart initiated: No, disable resume: No
[06C8:1D68][2017-11-29T14:31:51]i399: Apply complete, result: 0x80070643, restart: None, ba requested restart: No
Reply ↓
-
У меня было то же самое: служба не стартовала, остановка прерывалась. Попытка ручного запуска не помогала.
Проблема решилась после того, как почистил папку C:ProgramData1C1CE, там оставались хвосты от предыдущих установок.
Reply ↓
-
(36)
Видимо не мой случай, попробовал на 4-х разных windows и нигде не установился сервер взаимодействия 2.0.25.
Reply ↓
-
Не помню, на каком этапе, еще добавлял в брандмауэр разрешение на входящее подключение на порт 9094
Reply ↓
-
А на сервер взаимодействия нужна лицензия?
Reply ↓
-
Вопрос про порты.
Вот мы опубликовали базу на локальный адрес — всё классно — внутри сети работает.
А как быть при работе через интернет ?
Оно будет на стороне клиента искать тот указанный локальный адрес, или взаимодействие через сервер идёт ?
В общем вопрос — если надо публиковать также, как и дистрибутив обновления — через полный адрес, то порт только один надо пробрасывать — 9094 ?
Reply ↓
-
(40) отвечу сам ).
Да — тут работает всё так же, как при публикации тонкого клиента, то есть публиковать надо по внешнему адресу с портом из конфига.
Reply ↓
-
(35) Было у меня такое.
пока везде вручную не удалил все ссылки и т.д. и т.п. с реестра с appData, ProgramData, сервис не запускался.
пробовал даже вручную установку как описано на сайте 1С.
ничего не помогло. в итоге:
— удалил все и везде любое упоминание про 1с взаимодействие
— установил Postgre с сайта 1С
— далее установил java оба разряда 86 и 64, прописал все пути и ссылки в path
— далее установил саму 1с платформу
— далее установил утилиту ring, настроил ее параметры как рекомендовано (есть тут на инфостарте про это)
— далее запустил установку оставшегося через 1ce_cs2_all_in_one_setup_2.0.19_1.x64
— далее проверил у Postgre пользователя CS который был создан, додал ему «божественные» права
вот собственно весь секас, извиняюсь за выражение.
публиковать это все в наружку не стал, пока хватает локального доступа.
Reply ↓
-
Написал в техподдержку 1С, ответили что нужно поставить Java 8
https://www.java.com/ru/download/manual.jsp
, а у меня была Java 9.
Служба стала стартовать, но теперь другая ошибка «Не удалось настроить Сервер взаимодействия».
Reply ↓
-
Разобрался и со второй проблемой, нужно ставить postgresql 9.6.6, а у меня стоял postgresql 10
Reply ↓
-
Посмотрите версию 1С в файле
«c:Program Files1C1CEcsin1ce-cs.exe»
(2 года тишина была про эту версию — и вот всплыли наработки)
Reply ↓
-
А можно ли использовать этот сервер для подключения с платформы версии 8.3.10? (Пока на 8.3.11 переходить страшно)
Reply ↓
-
(46) а смысл ? если я верно понял — свой сервер (и новые плюшки) поддерживает только 11 и выше.
Reply ↓
-
Буду признателен, если кто подскажет — как 2 разные платформы подключить к системе ?
Сейчас стоит 11-я и 12-я.
2 тестовые базы.
Работает походу только та, которую последнюю регистрирую.
Адрес один, почта одна, различаются только названия баз при регистрации.
Reply ↓
-
А вот ещё прикол — пытаюсь немного «облагородить» обработку из комплекта.
Так вот:
RegistrationParameters = СистемаВзаимодействия.ПолучитьДанныеРегистрацииИнформационнойБазы();
На клиенте метод не существует.
На сервере отрабатывает и возвращает НЕЧТО пустое.
Не Неопределено.
После возврата на клиент — превращается в ДвоичныеДанные !!!!!!
И вот как из них получить то, что заявлено в синтаксис помощнике — ХЗ ))))
Reply ↓
-
(49) добавочка — данные таки возвращаются, только в зашифрованном виде.
Походу как с паролем пользователя. Можно прочитать и записать обратно, а вот посмотреть, что внутри — увы.
Так что узнать, на какую почту и ИД базы — не выйдет.
Reply ↓
-
вышла 3.0.8.1
надо бы поюзать.
может прошли болячки? 🙂
Reply ↓
-
(51) на ней вчера и тестировал. Что за болячки ?
Reply ↓
-
к примеру она перестает работать если переустановить java машину или даже если она обновится.
она перестает временами работать как служба если компьютер перезагрузить, надо ее пере запускать.
не смог настроить работу утилит чтобы они смотрели в мир, но это наверно больше мои руки кривые, найду способ расскажу при случае.
Reply ↓
-
установить новый Windows 7х64 чтоб система была с чистым реестром, скачать все дистрибутивы с сайта 1С, скачть PostgreSQL с сайта самой 1С, установить 1С 8.3.10.2561 x64. далее установить сервер взаимодействия (СВ) и вызвать человека https://www.1cp-msk.ru ибо дальше начинается порнография и проще кому то за нее заплатить.
Reply ↓
-
(53) у меня в мир смотрит , через роутер даже.
С перезапуском не сталкивался — может проблема и есть, но я свой бук перезапускаю каждую ночь и проблем не наблюдал пока.
Reply ↓
-
(54) расскажу про свой опыт настройки.
После установки всего нужного, подправил c:ProgramData1C1CEinstancescsconfigcom._1c.ecs.websocket.yml
чтобы адрес был нужный (так как у меня несколько сетевых интерфейсов, а инсталлятор выбрал себе непонятно каким образом).
Далее перезагрузка, на всякий случай.
Далее заходим в базу и регистрируем систему взаимодействия.
Тут есть ньюанс — если регить под локальным адресом (типа 127 или 192) — то, собственно, с системой вы сможете работать только из этой же подсети.
Если нужно смотреть в мир — регить надо или извне по внешнему адресу или прописать себе в hosts свой IP под внешнее имя — тогда будет работать и извне и внутри.
Всё — ничего сложного, в принципе.
Reply ↓
-
Установил сервер взаимодействия локально . В базе зарегистрировал.
Письмо на e-mail не пришло- так и должно быть?
В панели инструментов новый значок появился.
Но…
Создаю неконтекстное обсуждение — в списке участников при наборе в строке поиска нет ни одного пользователя. Что не так?
Reply ↓
-
(57)Чтобы они там появились их нужно зарегистрировать на сервере взаимодествия. Это делается автоматом при первом интерактивном входе пользователя в ИБ.
Либо можно ручками:
УстановитьПривилегированныйРежим(Истина);
ПользователиИБ = ПользователиИнформационнойБазы.ПолучитьПользователей();
Для каждого ПользовательИБ Из ПользователиИБ Цикл
Попытка
ИдентификаторПользователяСВ = СистемаВзаимодействия.ПолучитьИдентификаторПользователя(ПользовательИБ.УникальныйИдентификатор);
Исключение
ПользовательСВ = СистемаВзаимодействия.СоздатьПользователя(ПользовательИБ);
// возможно дозаполнение свойств пользователя системы взаимодействия
ПользовательСВ.Записать();
КонецПопытки;
КонецЦикла;
УстановитьПривилегированныйРежим(Ложь);
Показать
За подробностями сюда
Reply ↓
-
О… это я недочитал 🙁 Попробую
Reply ↓
-
Заработало , спасибо Виктор Третьяков
Reply ↓
-
Поспешил- заработало на файловой базе , которая размещается на том же комп-ре, что и сервер взаимодействия.
На клиент- серверной — на другом сервере, не заработала. При регистрации пользователей- Сетевая ошибка системы взаимодействия 🙁
Reply ↓
-
(61) А это уже похоже файрволл или антивирь шалит
Reply ↓
-
Еще — если зайти в ту же базу (файловая , в которой в тонком клиенте работают взаимодействия ) веб- клиентом, то взаимодействия недоступны. Так и должно быть?
Reply ↓
-
Всё установил автоматически, все службы работают. Проблема при регистрации базы утилитой CollaborationSystemRegister.epf, которая поставляется вместе с сервером. Адрес сервера взаимодействия беру из файла com._1c.ecs.websocket.yml и получается ws:100.65.143.89:9094. Почта, соответственно, моя личная, раньше нигде не фигурировала. Появляется сообщение: «Ошибка при регистрации: соединение с сервером системы взаимодействия потеряно»
Reply ↓
-
ws://100.65.143.89:9094 попробуйте так
Reply ↓
-
(65)
ws://100.65.143.89:9094
Тоже самое. Я не пойму, на что ссылается этот адрес, эта строка должна быть доступна из браузера? И имя базы указывается произвольное? В ИТС по этому поводу ни слова, то ли я не вижу.
Reply ↓
-
(62) брандмауэр 🙁
Reply ↓
-
(64) у меня было такое — перезапустил службу 1ce-cs
Reply ↓
-
(65) Всё переустановил, такая строка подключения правильная. Адрес теперь ссылается на мой локальный 192.168.100.4
Reply ↓
-
ws://192.168.100.4:9094
Reply ↓
-
под веб- клиентом взаимодействия чтобы были доступны что нужно ?
Reply ↓
-
(31) В моем случае какой-то из пакетов «потрогал» WMI на машинке. Пришлось фиксить.
Проверить — запустить powershell.exe в нем выполнить — get-wmiobject Win32_OperatingSystem
Если без ошибки (должен вывести информацию о системе), то все норм и дело в чем-то другом.
Если не Ок и ошибка, то вот сюда можно сходить
Устранение неполадок в WMI
Reply ↓
-
Тот же вопрос, если кто знает помогите.
Reply ↓
-
(56)
прописать себе в hosts свой IP под внешнее имя
Можно пример?
Reply ↓
-
(74)
192.168.2.7 my.outer.ddns.name
Reply ↓
-
(71) А разве не работает ?
Зашел в базу через лису — обсуждения вижу, обсуждение в справочнике тоже.
Reply ↓
-
(69) и будет оно работать только на локальной машине.
Ну или в той же локальной сети.
Чтобы работало извне тоже — надо регистрировать на имяадрес, которые однозначно доступны и локально и извне тоже.
Reply ↓
-
А разбирался кто-то со структурой БД, которая на постгре создаётся.
Подсмотреть где-то что-то можно?
Reply ↓
-
Кто-нибдуь знает, можно ли через сообщения открывать кликом мышки переданные ссылки на документы?
Reply ↓
-
-
учебная платформа поддерживает этот сервер взаимодействий?
Reply ↓
-
в 8.3.13 ошибка «ошибка регистрации. соединение с сервером взаимодействия потеряно».
указываю адрес верный, порт тоже, пользователь имеет право регистрации в СВ
Reply ↓
-
СистемаВзаимодействия.ПолучитьОбсуждение…
СистемаВзаимодействия.СоздатьОбсуждение…
Любой из методов вызывает ошибку «Сетевая ошибка системы взаимодействия». Файервол отключен.
Что-то не так в настройках сервера, а в документации об этом ни слова.
Reply ↓
-
(82) Решилось обновлением СВ
Reply ↓
-
(83) поставил тестовую (новую) версию СВ и вроде все заработало
Reply ↓
-
(85) Это которая 4.0?
Reply ↓
-
(85) у меня на 4.0 при регистрации «Ошибка протокола системы взаимодействия», хотя в конфиге websocket указан ws…
Reply ↓
-
(87) у меня была чистая установка — без проблем.
Как обновить — на сайте итс в загрузках рядом с СВ лежит инструкция
Reply ↓
-
(76)
через лису — обсуждения вижу, обсуждение в справочнике тож
У меня тот же вопрос, с клиента работает, а веб клиент пишет что сервер не найден, что может быть?
Reply ↓
-
(95) значит что-то где-то некорректно настраиваете.
Вы регистрировали базу на внешний адрес ?
У вас один адрес используется и для работы в локальной сети и через браузер.
Reply ↓
-
-
(41) А можно подробнее что где поменять? Спасибо!
Reply ↓
-
(99) в обработке регистрации информационной базы прописываете
не ws://127.0.0.1:9094 — сюда только ваш комп достучаться сможет.
Допусти у вас есть внешний адрес
http://mysite.com
и ваш локальный ip 192.168.0.100
Прописываем
ws://mysite.com:9094
и обеспечиваем обращение к этому ip при обращении к сайту (проброс портов) как снаружи, так и изнутри (если надо изнутри).
Reply ↓
-
(36) Большое спасибо! Помогло!
Reply ↓
-
На тестовом сервере обновили платформу до 14.1565, на боевом пока остаётся 12.1440.
Теперь они не хотят работать вместе с сервером взаимодействия.
На новой платформе:
СистемаВзаимодействия.ПолучитьОбсуждение(КлючОбсуждения)
вызывает ошибку:
{ОбщийМодуль.СерверВзаимодействияПривилегированный.Модуль(9)}: Ошибка при вызове метода контекста (ПолучитьОбсуждение)
Возврат СистемаВзаимодействия.ПолучитьОбсуждение(КлючОбсуждения) <> Неопределено;
по причине:
Параметры регистрации системы взаимодействия недействительны
При перерегистрации базы на СВ такая же ошибка возникает но уже на боевой базе, которая на старой платформе.
В логах сервера СВ:
message=Удаленный хост принудительно разорвал существующее подключение
Кто-нибудь сталкивался?
Версия СВ 5.0.37
Reply ↓
-
можно, если это контекстное обсуждение
Reply ↓
-
(58)Может есть информация, почему «не подтягивается» указанная у пользователя контактная информация (телефон и e-mail) и недоступны звонки и видеозвонки?
Reply ↓
-
(128) Ну если вы про код из (58), то оно и не должно, это просто образец
Reply ↓
-
(14) нашли решение ?
Reply ↓
Leave a Comment
Ваш адрес email не будет опубликован. Обязательные поля помечены *
Содержание:
1. Установка и настройка сервера взаимодействия 1С
2. Настройка сервера системы взаимодействия на WSS подключение
3. Установка и настройка облачного хранилища файлов MinIO
4. Настройка сайта для подключения внешних пользователей системы
5. Подключение системы взаимодействия к платформе 1С: Предприятие
1. Установка и настройка сервера взаимодействия 1С
Первым делом, требуется скачать и установить необходимые дистрибутивы:
1. Postgresql версии 12 https://www.enterprisedb.com/downloads/postgres-postgresql-downloads;
2. Liberica Full JDK 11-ой версии https://releases.1c.ru/version_files?nick=Liberica11FullJDK&ver=11.0.12%2b7;
3. Утилита Openssl https://slproweb.com/download/Win64OpenSSL-3_0_9.msi;
4. Сервер взаимодействия 1С и обработка CollaborationSystemRegister для регистрации сервера взаимодействия 1С https://releases.1c.ru/version_files?nick=CollaborationSystem&ver=23.0.23.
Стоит отметить, что для каждой версии платформы, должна устанавливаться совместимая версия сервера взаимодействия 1С. В моём случае, установлена версия платформы 1С: Предприятие 8.3.23, поэтому должен устанавливаться сервер взаимодействия версии 23.0.23.
Установка postgresql, liberica jdk и openssl проста и не требует подробного разъяснения. Отмечу лишь пару моментов, а именно:
1) Выбор директории при openssl- установке
2) Необходимость запомнить пароль, указываемый для postgres пользователя, во время установки posgtresql
Установка сервера взаимодействия
Чтобы установить сервер взаимодействия 1С, необходимо распаковать дистрибутив из архива и запустить установочный файл 1ce-installer. В открывшемся окне нужно указать директорию, где будет располагаться сервер взаимодействия 1С и все его компоненты, а затем нажать “Установить”
Далее установщик выведет сообщение об успешном завершении инсталляции, нажмём “Готово” для выхода из программы установки
После установки дистрибутивов, необходимо добавить пути к liberika jdk и openssl в переменную среды Path
Также в Windows переменную Path следует добавлять путь к утилите ring, но у меня она добавилась автоматически.
Проверим, что все компоненты сервера взаимодействия установились корректно, отправив в cmd команду:
ring
Должны отобразиться 3 компонента: Сервер взаимодействия, Elasticsearch и Hazelcast.
Создание и настройка базы cs_db в postgresql
Перед выполнением настройки сервера взаимодействия 1C, необходимо создать и настроить базу cs_db в postgresql.
Для создания базы, потребуется воспользоваться программой pgAdmin 4, она устанавливается вместе с postgresql и позволяет работать с СУБД в графическом интерфейсе.
При первом запуске, необходимо установить pgAdmin- пароль
Далее необходимо раскрыть ниспадающий список вкладки “Servers” и подключиться к серверу PostgreSQL 12, введя пароль пользователя postgres, указанный во время установки postgresql
Создадим пользователя cs_user для работы с базой cs_db, нажав ПКМ на вкладке “Login/Group Roles” и выбрав пункты “Create” – “Login/Group Role”
Во вкладке “General” введём имя пользователя
Перейдём во вкладку “Definition”, где укажем пароль для пользователя cs_user
Во вкладке “Privileges” укажем необходимые права, после чего сохраним настройки нажав на “Save”
Создадим базу cs_db для работы с сервером взаимодействия 1С, нажав ПКМ на вкладке “Databases” и выбрав пункты “Create” – “Database”
Введём имя базы во вкладке “General” и сохраним изменения нажав на “Save”
Подключим расширение uuid-ossp, нажав ПКМ на базе cs_db и выбрав пункт “Query Tool”. В открывшемся редакторе введём следующий запрос:
CREATE EXTENSION
IF NOT EXISTS «uuid-ossp»
Отправим запрос, нажав на клавишу F5.
Настройка сервера взаимодействия 1С
Создадим директории и службы сервера взаимодействия, введя в командной строке следующие команды:
ring hazelcast instance
create —dir C:\cs\hc_instance
ring hazelcast
—instance hc_instance service create –stopped
ring elasticsearch
instance create —dir C:\cs\es_instance
ring elasticsearch
—instance es_instance service create —stopped
ring cs instance create
—dir C:\cs\cs_instance
ring cs —instance
cs_instance service create —stopped
Осуществим настройку JDBC драйверов postgresql с помощью следующих команд:
ring
cs —instance cs_instance jdbc pools —name common set-params —url
jdbc:postgresql://localhost:5432/cs_db?currentSchema=public
ring
cs —instance cs_instance jdbc pools —name common set-params —username
cs_user
ring
cs —instance cs_instance jdbc pools —name common set-params —password <пароль_пользователя_cs_user>
ring
cs —instance cs_instance jdbc pools —name privileged set-params —url
jdbc:postgresql://localhost:5432/cs_db?currentSchema=public
ring
cs —instance cs_instance jdbc pools —name privileged set-params —username
cs_user
ring
cs —instance cs_instance jdbc pools —name privileged set-params —password <пароль_пользователя_cs_user>
Настроим WebSocket протокол:
ring cs
—instance cs_instance websocket set-params —hostname <доменное_имя>
ring cs
—instance cs_instance websocket set-params —port <порт_сервера_взаимодействия>
“Не забывайте создавать правила для всех указываемых портов в брандмауэре Windows”
Настроим каталог для хранения бэкапов:
ring cs —instance
cs_instance backup set-params —storage C:\cs\cs_instance\dumps
Теперь необходимо запустить службы сервера взаимодействия с помощью команд:
ring
hazelcast —instance hc_instance service start
ring
elasticsearch —instance es_instance service start
ring
cs —instance cs_instance service start
Либо можно сделать это через диспетчер задач, из подменю “Службы”
После настройки сервера взаимодействия 1С, необходимо инициализировать базу данных cs_db, сделать это можно с помощью следующей команды:
curl
-Sf -X POST -H «Content-Type: application/json» -d «{ \»url\»
: \»jdbc:postgresql://localhost:5432/cs_db\», \»username\»
: \»cs_user\», \»password\» : \»<пароль пользователя cs_user>\», \»enabled\»
: true }» -u admin:admin
Пример успешного ответа:
{«id»:»4efdace4-6c60-414e-95cb-19b8dd39b6ff»,»url»:»jdbc:postgresql://localhost:5432/cs_db»,»username»:»cs_user»,»password»:»********»,»lastUsedAt»:null,»enabled»:true,»deleted»:false}
Проверим, что сервер взаимодействия 1С работает с помощью команды:
curl
http://localhost:8087/rs/health
Если всё установлено и настроено корректно, получим следующий ответ:
{«status»:»UP»,»mainDbOk»:true,»allShardsOk»:true,»hazelcast»:{«available»:true,»members»:[«127.0.0.1:5701″]},»elasticsearchOk»:true,»mediaClusterOk»:false,»mediaServers»:{},»pushOk»:false}
Установка и настройка сервера взаимодействия завершена. В том случае, если достаточно WS подключения, и никаких функций кроме обмена сообщениями не требуется, дальнейшие действия можно не выполнять.
2. Настройка сервера системы взаимодействия на WSS подключение
Если подключение к базе осуществляется через https, то и сервер взаимодействия должен работать по защищённому WSS протоколу.
Для настройки WSS подключения, требуется создать хранилище ключей Java KeyStore (JKS) и поместить туда сертификат, оформленный на доменное имя сервера, на котором располагается сервер взаимодействия 1С.
Сертификат можно приобрести или воспользоваться утилитой win-acme, чтобы получить бесплатный SSL сертификат letsencrypt. Для реализации этого метода, требуется создать виртуальный хост, прослушивающий стандартный порт http 80, я создал его с помощью стандартного веб-сервера IIS от Microsoft.
Создание виртуального хоста в веб-сервере IIS
Первым делом, необходимо создать директорию сайта в каталоге веб-сервера IIS C:\inetpub\wwwroot\доменное_имя
Затем, в директории сайта создадим файл index.html и добавим в него следующее содержимое:
<html>
<head>
<title>доменное_имя</title>
</head>
<body>
<h1>Welcome to the
club buddy!</em> </h1>
</body>
</html>
Возвращая простую html страничку, можно будет убедиться в том, что сайт работает.
Для того, чтобы создать виртуальный хост, требуется открыть диспетчер служб IIS и добавить веб-сайт, нажав ПКМ на пункте “сайты”
Далее, необходимо заполнить окно создания веб-сайта следующим образом и нажать “ОК”
Теперь проверим работу сайта, введя имя домена в адресной строке, или нажав кнопку “обзор веб-сайта” на панели действий IIS
Если всё настроено корректно, сайт вернёт созданную нами html страницу.
Получение сертификата с помощью утилиты win-acme
После завершения настройки виртуального хоста, можно приступать к получению сертификата. Скачаем утилиту win-acme по ссылке https://www.win-acme.com/.
После скачивания, необходимо распаковать архив с программой в удобное место. Лично я распаковал win-acme в корневой каталог IIS, создав там папку letsencrypt
Запустим файл wacs.exe от имени администратора и выберем пункт “Create certificate (full options)”, введя “M” в консоли приложения
Выберем пункт “Read bindings from IIS”, чтобы вывести список сайтов из IIS
Далее приложение предложит выбрать сайт из списка или ввести его вручную
Выберем пункт “Pick *all* bindings”, чтобы выбрать все привязки
Подтвердим выбор, нажав на клавишу “y”, а затем проигнорируем предложение ввести дополнительное имя, нажав на “Enter”
Далее выберем пункт “Single certificate”, чтобы создать единый сертификат
Выберем пункт “[http] Save verification files on (network) path”, после чего введём путь к сайту, чтобы создать там файлы для подтверждения владения доменом
Далее приложение предложит выбрать тип ключа, нам нужен “RSA key”
Выберем пункт “PEM encoded files”
Введём путь, где будут храниться файлы сертификата. Я указал путь C:\Certificates
Выберем пункт “Type /paste in console”, и введём в консоли приложения пароль для закрытого ключа.
Запомните или запишите пароль, т.к. он потребуется при дальнейшей настройке наших сервисов на SSL подключение.
Далее приложение спросит, нужно ли сохранить сертификат в другом формате, выберем пункт “ No (additional) store steps”, чтобы оставить только ранее выбранный формат сертификата
На следующем шаге также откажемся от дополнительных действий, выбрав пункт “No (additional) installation steps”
Наконец получим сообщение об успешном создании сертификата
Настройка WSS подключения
Файлы сертификата были сохранены по указанному при создании пути C:\Certificates
Для того, чтобы импортировать файлы chain.pem и key.pem в хранилище ключей JKS, необходимо объединить их в единый файл формата PKCS12. Сделаем это с помощью ранее установленной утилиты openssl.
Откроем командную строку и введём следующие команды:
openssl
pkcs12 -export -in C:\Certificates\koderline-dev.ru-chain.pem -inkey C:\Certificates\koderline-dev.ru-key.pem
-out C:\cs\cs_instance\data\security\pkcs.p12 -name letsencrypt
«При вводе первой команды,
потребуется указать пароль от закрытого ключа, а затем задать пароль для файла pkcs.p12»
keytool
-importkeystore -destkeystore
C:\cs\cs_instance\data\security\websocket-keystore.jks -srckeystore
C:\cs\cs_instance\data\security\pkcs.p12 -srcstoretype PKCS12 -alias
letsencrypt
«При вводе второй, сначала
указываем пароль от файла pkcs.p12, а затем задаём пароль от хранилища JKS»
Первой командой мы объединили файлы сертификата в единый файл pkcs.p12, а второй создали хранилище ключей JKS, сразу импортировав в него получившийся файл.
Настроим сервер взаимодействия на WSS подключение с помощью команд:
ring cs —instance
cs_instance websocket set-params —wss true
ring cs —instance
cs_instance websocket set-params —keystore-path C:\cs\cs_instance\data\security\websocket-keystore.jks
ring cs —instance
cs_instance websocket set-params —keystore-password <пароль_JKS>
ring cs —instance
cs_instance websocket set-params —keystore-format JKS
Теперь подключение сервера взаимодействия 1С будет осуществляться через защищённый WSS протокол.
3. Установка и настройка облачного хранилища файлов MinIO
Для добавления функционала обмена файлами, необходимо настроить облачное хранилище Amazon S3 MinIO, и подключить его к серверу взаимодействия 1С.
Установка хранилища файлов MinIO
Откроем PowerShell от имени администратора и по очереди введём следующие команды:
Invoke-WebRequest
-Uri «https://dl.min.io/server/minio/release/windows-amd64/minio.exe»
-OutFile «C:\Data\minio.exe»
setx
MINIO_ROOT_USER <логин_minio>
setx
MINIO_ROOT_PASSWORD <пароль_minio>
C:\Data\minio.exe
server С:\Data —console-address «:9001»
Чтобы запуск MinIO осуществлялся автоматически, необходимо установить его как службу. Для этого скачаем архив minio-service-master.zip по следующей ссылке https://github.com/minio/minio-service, после чего распакуем его, и скопируем файл install-service.ps1 из папки windows в каталог C:\Data, где установлен сервер MinIO.
Откроем PowerShell и установим службу сервера MinIO с помощью команды:
С:\Data\install-service.ps1
Откроем каталог с установленным сервером MinIO и отредактируем файл minio-service.xml:
<service>
<id>MinIO</id>
<name>MinIO</name>
<description>MinIO is a
high performance object storage server</description>
<executable>minio.exe</executable>
<env
name=»MINIO_ROOT_USER» value=»логин_minio»/>
<env
name=»MINIO_ROOT_PASSWORD» value=»пароль_minio»/>
<arguments>server
C:\Data</arguments>
<logmode>rotate</logmode>
</service>
Теперь можно запустить службу и пользоваться облачным хранилищем, но подключение будет осуществляться через незащищённый http протокол.
Настройка сервера MinIO на SSL подключение
Для того, чтобы включить режим SSL подключения для MinIO, необходимо скопировать файлы сертификата chain.pem и key.pem в каталог C:\Users\имя_пользователя\.minio\certs и переименовать их следующим образом:
chain.pem — public.crt
key.pem — private.key
Отредактируем файл minio-service.xml:
<service>
<id>MinIO</id>
<name>MinIO</name>
<description>MinIO is a
high performance object storage server</description>
<executable>minio.exe</executable>
<env
name=»MINIO_ROOT_USER» value=»логин_minio»/>
<env
name=»MINIO_ROOT_PASSWORD» value=»пароль_minio»/>
<env name=»MINIO_CERT_PASSWD»
value=»пароль_закрытого_ключа_сертификата»/>
<arguments>server C:\Data —address «:порт_minio»</arguments>
<logmode>rotate</logmode>
</service>
В конфигурационный файл сервера была добавлена переменная MINIO_CERT_PASSWD, где задаётся пароль от закрытого ключа для созданного ранее сертификата, и параметр —address для аргумента server, чтобы явно указать порт подключения для сервера MinIO.
Важный момент при настройке SSL подключения для MinIO заключается в том, что служба сервера должна запускаться от имени пользователя, который устанавливал MinIO. Пользователя, в чей каталог были скопированы файлы сертификата. В противном случае, служба MinIO просто не будет запускаться.
Чтобы назначить пользователя, от которого будет запускаться сервис, необходимо перейти в свойства службы MinIO и, во вкладке “Вход в систему”, выбрать нужную учётную запись
После назначения пользователя для запуска сервиса, можно запустить службу и использовать протокол https для подключения к хранилищу.
Подключение хранилища файлов MinIO к серверу взаимодействия
Перед подключением хранилища к серверу взаимодействия, необходимо создать контейнер, где будут храниться передаваемые файлы.
Введём в адресной строке браузера адрес подключения к хранилищу MinIO:
https://<доменное_имя>:<порт_minio>
Авторизуемся с помощью заданных при установке данных, которые также были указаны в переменных MINIO_ROOT_USER и MINIO_ROOT_PASSWORD конфигурационного файла minio-service.xml
Перейдём в раздел “Buckets” и выберем пункт “Create Bucket”. В поле “Bucket Name” укажем имя контейнера cs-bucket, после чего нажмём “Create Bucket” для завершения создания
После создания, необходимо зайти в параметры контейнера и изменить права доступа на “public”
Теперь можно подключить MinIO к серверу взаимодействия. На портале ИТС предлагается сделать это с помощью утилиты curl
Но у меня подключить хранилище таким образом не получилось, я сделал это по аналогии с добавлением расширения uuid-ossp, т.е. отправил следующий SQL запрос в базу cs_db:
INSERT INTO
public.storage_server (id, type, base_url, container_url, container_name,
region, access_key_id, secret_key, signature_version, is_deleted, upload_limit,
download_limit, file_size_limit, created_at, updated_at, cdn_url, cdn_key_id,
cdn_secret_key, state, cdn_enabled, path_style_access_enabled, bytes_to_keep,
days_to_keep, pricing_url, api_type, storage_type, files_to_keep)
VALUES(
uuid_generate_v4(),
‘AMAZON’, ‘https://<доменное_имя>:<порт_minio>’,’https://
<доменное_имя>:<порт_minio>/cs-bucket’,
‘cs-bucket’,
»,
‘логин_ minio’,
‘пароль_minio’,
‘V2’, false,
1073741824, 1073741824, 1048576000, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL,
NULL, NULL, ‘ACTIVE’, false, true, 0, 3200,
NULL,’AMAZON’,’DEFAULT’,1073741824);
Теперь в системе взаимодействия доступен функционал обмена файлами.
4. Настройка сайта для подключения внешних пользователей системы
Для добавления в обсуждения внешних пользователей, необходимо настроить специальный сайт, который устанавливается вместе с сервером взаимодействия и находится по следующему пути C:\Program Files\1C\1CE\components\1c-cs-site-0.2.11-x86_64. Настроим его с помощью веб-сервера IIS и импортируем созданный ранее сертификат, чтобы подключение осуществлялось по https.
Кроме файлов сертификата в pem-формате, утилита win-acme создаёт единый сертификат в pfx формате, и размещает его по следующему пути: C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org\Certificates, я импортировал в IIS именно его.
Для импорта сертификата pfx в IIS, необходим пароль от сертификата. Чтобы узнать его, запустим утилиту win-acme и выберем пункт “Manage renewals”
Далее выберем пункт “Show details for the renewal”, чтобы отобразить детальную информацию об обновляемых сертификатах
Скопируем и сохраним пароль из поля “.pfx password”
На начальной странице сервера в IIS перейдём во вкладку “Сертификаты сервера”, а затем выберем пункт “Импортировать” на панели действий IIS
Заполним окно импорта, указав путь и пароль от сертификата, а также хранилище, в котором будет располагаться сертификат, после чего нажмём “OK”
Создадим сайт по аналогии с виртуальным хостом, заполнив поля следующим образом
Из отличий можно увидеть другое имя сайта. Его, как и порт 9999, можно задавать по желанию, физический путь указан до каталога сайтом 1c-cs-site-0.2.11-x86_64, выбран протокол подключения https и импортированный ранее сертификат.
Проверим работу сайта, введя имя домена с указанным портом в адресной строке, или нажав кнопку ”обзор веб-сайта” на панели действий в IIS
Должна вернуться html страница сайта 1c-cs-site-0.2.11-x86_64.
Отредактируем файл config.json, который находится в каталоге сайта 1c-cs-site-0.2.11-x86_64, указав адрес подключения сервера взаимодействия в поле “serverURL”
{
«serverURL»: «wss://<доменное_имя>:<порт_сервера_взаимодействия>»,
«VAPIDPublicKey»: «****************************************************************»
}
Суть проделанных действий состоит в том, что веб-сервер, при запросе на адрес https://<доменное_имя>:<порт_сайта>, должен отдать index.html сайта 1c-cs-site-0.2.11-x86_64 просто как статику, после чего index.html запустится в браузере пользователя и на базе адреса сервера взаимодействия в config.json сам установит соединение с сервером взаимодействия 1С.
Подключим сайт к серверу взаимодействия:
ring cs —instance
cs_instance site set-params
—public-url https://<доменное_имя>:<порт_сайта>
Теперь в системе взаимодействия доступна функция добавления в обсуждения внешних пользователей.
5. Подключение системы взаимодействия к платформе 1С: Предприятие
Подключение системы взаимодействия осуществляется с помощью обработки CollaborationSystemRegister, загрузка которой была произведена ранее.
Откроем приложение 1С, перейдём во вкладку “Сервис и настройки”, затем выберем ”Файл” – “Открыть”
Откроем обработку CollaborationSystemRegister, а затем выполним подключение, заполнив поля следующим образом
В случае, если WSS подключение не настраивалось, указываем WS протокол для подключения.
Если всё установлено и настроено корректно, получим сообщение об успешной регистрации системы взаимодействия.
Специалист компании «Кодерлайн»
Артем Слатин
Система взаимодействия — это механизм появившийся в технологической платформе 8.3.10. Это механизм позволяет клиентским приложениям, серверу и пользователям взаимодействовать между собой. В этой статье я попробую рассказать обо всем этом более подробно.
Содержание
- Общая информация
- Сервер взаимодействия
- Подключение и использование
Общая информация
Итак, как уже было сказано выше, система взаимодействия позволяет осуществлять различные виды взаимодействия между приложениями, сервером и пользователями. Цель создания такой системы — упростить автоматизацию бизнес-процессов и предоставить пользователям простое средство коммуникации.
По видам, взаимодействия можно разделить на:
- Не интерактивные — когда информацией обмениваются только подсистемы прикладного решения (без участия живых людей);
- Только интерактивные — когда все участники взаимодействия являются живыми людьми;
- Смешанные — когда человек общается с подсистемой прикладного решения (своего рода робот, отвечающий на запросы).
Интерактивное взаимодействие происходит посредством текстовых сообщений и видеозвонков (обычный звонок — это видеозвонок без, собственно, видео).
Сообщения пользователей связанные одной темой называются обсуждениями, тема при этом может быть абсолютно любой. Сами же обсуждения бывают двух видов:
Неконтекстные обсуждения — не привязанные к какому-либо объекту информационной базы. Участвовать могут любые пользователи выбранные инициатором обсуждения. Обсуждений такого вида может быть сколько угодно.
Контекстные обсуждения — привязаны к конкретному объекту информационной базы. Доступ к обсуждению имеют те пользователи, которые имеют доступ к обсуждаемому объекту. Для каждого объекта может существовать только одно обсуждение.
К сообщениям можно прикреплять файлы, правда для этого, сервер взаимодействия должен быть настроен на работу с внешним хранилищем, работающим по протоколу Amazon S3.
Система реализована в клиент-серверной архитектуре и состоит из, внезапно, клиентской и серверной части. В качестве серверной части можно использовать либо сервер предоставляемый сервисом 1cDialog.com, либо самостоятельно установить и настроить экземпляр продукта «1С:Сервер взаимодействия».
Обмен сообщениями между клиентом и сервером осуществляется по протоколу WebSocket, что обеспечивает надлежащий уровень безопасности.
Доступ к сообщениям возможен посредством программного интерфейса, реализованного свойством глобального контекста — СистемаВзаимодействия.
Сервер взаимодействия
Как уже было сказано выше, сервер взаимодействия может предоставляться сервисом 1cDialog.com или отдельным продуктом, который можно скачать и установить на подходящем компьютере. Первый вариант не требует дополнительных действий поэтому и описывать там нечего, следовательно рассмотрим второй вариант — установку и настройку продукта «1С:Сервер взаимодействия».
Для начала раздобудем все, что потребуется (устанавливать в этом же порядке):
- Java 8+ (64-bit);
- PostgreSQL 9.5+;
- Ring;
- Сервер взаимодействия (64-bit);
Кроме этого потребуется 1С:Предприятие (8.3.10-8.3.14). Ring и сам сервер взаимодействия можно скачать с https://users.v8.1c.ru/:
Сервер взаимодействия включает в себя севера Hazelcast и Elasticsearch, которые можно скачивать и устанавливать отдельно, но в нашем случае я выбрал общий вариант.
Во время установки потребуется ввести логин и пароль от учетной записи PostgreSQL.
После установки (если все пройдет нормально) все необходимые сервисы будут запущены, проверить это можно зайдя по адресу http://localhost:8087/rs/health
. Если все нормально, то результат будет примерно таким:
Запустить и остановить компоненты системы можно как и все остальные службы:
А также при помощи утилиты Ring:
ring hazelcast --instance <hc_instance> service start(stop)
ring elasticsearch --instance <elastic_instance> service start(stop)
ring cs --instance <cs_instance> service start(stop)
<hc_instance>, <elastic_instance>, <cs_instance> — название экземпляра соответствующего сервера.
Настройки сервера взаимодействий в моем случае находятся тут:
C:\ProgramData\1C\1CE\instances\cs\config
В этой папке находится достаточно много файлов и соответственно немало настроек, описывать которые в этой статье я не буду, ибо статья обзорная. Небольшие изменения внесу только в файл com._1c.ecs.websocket.yml
:
Изменить параметры можно при помощи утилиты Ring. Подробнее об имеющихся параметрах можно узнать на сайте ИТС или из справки утилиты Ring:
Подключение и использование
Для подключения к сервису 1cDialog.com нужно пройти в меню «Все функции»-«Стандартные»-«Управление системой взаимодействия». В открывшемся окне нужно указать адрес эл. почты (валидный), на него пришлют код регистрации, этот код нужно вставить в соответствующее поле и нажать кнопку «Зарегистрировать».
Для подключения к собственному серверу взаимодействий потребуется специальная обработка — CollaborationSystemRegister.epf
, которую можно скачать там же, где и сам сервер. В этой обработке нужно указать адрес для подключения (который настраивается в файле com._1c.ecs.websocket.yml
) и адрес эл. почты:
Очевидное использование системы взаимодействия (разнообразное общение между пользователями) нас не интересует. Рассмотрим возможности которые предоставляет свойство глобального контекста СистемаВзаимодействия. В качестве примера рассмотрим создание простого каркаса для бота, который реагирует на команды пользователей. Под командами пользователей подразумеваются сообщения какого-то определенного вида. Итак, в модуль исполняемый на клиенте поместим код такого вида:
Процедура СоздатьРобота() Экспорт Обработчик = Новый ОписаниеОповещения(«ПриОтправкеСообщения», ЭтотОбъект); СистемаВзаимодействия.ПодключитьОбработчикПослеОтправкиСообщения(Обработчик); КонецПроцедуры Процедура ПриОтправкеСообщения(Сообщение, Обсуждение, ДополнительныеПараметры) Экспорт Если СтрНачинаетсяС(Сообщение.Текст, «/?») Тогда ОбщегоНазначенияВызовСервера.СоздатьСообщениеРобота(Обсуждение.Идентификатор, «Справочная информация»); КонецЕсли; КонецПроцедуры |
Первая процедура подключает обработчик отправки сообщений, который реагирует на все отправляемые пользователем сообщения, в любом из обсуждений. Вторая процедура анализирует каждое сообщение, если сообщение удовлетворяет некоторым условиям вызывается серверная процедура, которая генерирует ответ сервера:
Процедура СоздатьСообщениеРобота(ИдентификаторОбсуждения, ТекстСообщения) Экспорт Сообщение = СистемаВзаимодействия.СоздатьСообщение(ИдентификаторОбсуждения); Сообщение.Текст = ТекстСообщения; Сообщение.Записать(); КонецПроцедуры |
Для того, чтобы все заработало нужно каким-либо образом вызвать процедуру «СоздатьРобота» — например в процедуре модуля приложения «ПриНачалеРаботыСистемы». Результат выглядит так:
Информацию о прочих возможностях можно найти на сайте ИТС, а так же в справочной информации конфигуратора.
На этом все, надеюсь, что данная статья Вам помогла.
Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Загрузка…