Копать с утра и до обеда.. или разбираем внутренний протокол 1С службы RAS (Часть первая)

25.08.21

Разработка - Инструментарий разработчика

Для тех, кто любопытен, или есть потребность администрировать много серверов 1С.

Для чего это нужно?

Потребность автоматизации процессов администрирования и мониторинга серверов 1С, а именно:

  • Мониторинг (снятие счетчиков, доступности и блокировки ИБ)
  • Добавление/удаление ИБ
  • Перемещение ИБ
  • Добавление рабочих серверов (настройка их по шаблону)
  • Блокировка и отключение сеансов/зависших соединений
  • Подсчет количества лицензий
  • И прочие рутинные действия

Как это сейчас работает?

Сейчас для автоматизации процессов администрирования серверов 1С используется следующие схемы работы:

  1. Служба `ras`  и клиент `rac`, а так же библиотеки обертки, которые парсят выхлоп клиента `rac` 
    • Пакеты для oscript:
      • v8rac - реализация части функционала для управления серверами 1С
      • irac - полноценная реализация управления серверами 1С
      • hirac - HTTP интерфейс основанный на oscript.Web и пакете irac
    • Различные реализации от 1С  в типовых конфигурациях
  2. Com подключение - и различные обертки для него

Все эти инструменты требуют установленной 1С, что является их существенным недостатком.

В различных проектах используется “зоопарк” из этих решений и его поддержка занимает уже много времени, а переход на один из инструментов требует существенной доработки уже существующих механизмов и доработки самих инструментов, а самое главное не будет масштабируемым из-за общего недостатка всех этих решений, а именно требуется установленная 1С.

Что будем делать?

План решения задачи

  • Для начала предлагается сделать описание всех данных, которые необходимы для работы с серверами 1С. 
  • Научиться их сериализовать в формат RAS и читать из него, для прямого общения с 1С минуя прослойку в виде клиента `rac`, чем мы устраняем основной недостаток - установленная 1С. 
  • Реализовать единый интерфейс для всех автоматизаций по протоколу HTTP/gRPC с автоматической генерацией клиентов под любой язык программирования.

Например, для веб-сайта необходимо реализовать клиента на JS, для какой-то другой программы, возможно, потребуется требуется клиент на golang или C#, и все должно быть единообразно, клиенты под любой язык программирования должны создаваться с помощью кодогенерации на основе описания протокола RAS

  • Создать масштабируемый микросервис для решения задач администрирования и его быстрого развертывания в docker и kubernetes 

Как будем описывать формат данных

Для описания данных клиентов и серверов, а также данных получаемых от RAS предлагается использовать protobuf , как единый формат описания

Это позволит нам создавать клиентов (к RAS и/или нашему единому интерфейсу по протоколам HTTP/gRPC) под любые языки разработки с минимальными трудозатратами. C помощью плагина для генерации кодирования/декодирования в формат RAS все описанные форматы данных можно будет легко кодировать и декодировать для прямого общения с RAS. 

Немного специфики:

  • Сообщение (message) - в формате protobuf - это класс/структура в других языках. 
  • Для определения специфичности формата RAS мы будет использовать расширение данных сообщений, эти данные указаны как option или выделены в [ … ] 

Описание формата данных RAS

На прямую формат данных описываться не будет, но будут указаны порядок сериализации и кодек который надо применить к тому или иному полю.

Эти данные можно использовать для кодирования в формат RAS в языках разработки.

Здесь будет приведены примеры для языка golang. (для java - можно взять из предоставленной 1С либы)

За основу разработки формата данных взята Java - либа от 1С, и переработана в Golang/protobuf.
 

Схема работы клиента RAS

В статье будет рассмотрена следующая общая схема работы клиента RAS

Подготовка данных для сериализации в формат RAS

Для начала необходимо понять, что все сообщения к RAS и при получении ответа упакованы в специальный пакет данных. Для его описания мы создадим сообщение `packet`

Для декодирования нам необходимо ввести две дополнительные опции:

  • type_field - указание на номер поля в котором содержится тип данных

  • size_field - поле в котором указан размер данных для поля с типом bytes
     

Packet


Структура данных:

Название

Тип

Порядок
(order)

Кодек
(encode)

Описание

type

PacketType

1

byte

Определяет тип посылаемого пакета, задается в виде перечисления PacketType

size

int32

2

size

Задает размер получаемых и передаваемых данных в пакете

data

bytes

3

bytes

Данные передаваемые в пакете

Получившееся описание

 
Packet

message Packet {

  PacketType type = 1 [(ras.encoding.field) = {
      encoder: "byte",
      order: 1,
    }
  ];


  int32 size = 2 [(ras.encoding.field) = {
      encoder: "size",
      order: 2,
    }];

  bytes data = 3 [(ras.encoding.field) = {
      encoder: "bytes",
      order: 3,
      type_field: 1,
      size_field: 2,
    }];

}

PacketType

Содержит и определяет возможное типы передаваемых пакетов. Для простоты загоняем все возможные типы в перечисление и даем им более понятные названия, часть типов пакетов мы реализовывать не будет, по этому зарезервируем их номера и имена.
для быстрого получения связанного с типом сообщения используем расширение значение перечисления "type_url".

Получившееся описание типов

 
 PacketType

enum PacketType {

  PACKET_TYPE_NEGOTIATE = 0 [(ras.encoding.type_url) = "ras.protocol.v1.NegotiateMessage"];
  PACKET_TYPE_CONNECT = 1 [(ras.encoding.type_url) = "ras.protocol.v1.ConnectMessage"];
  PACKET_TYPE_CONNECT_ACK = 2 [(ras.encoding.type_url) = "ras.protocol.v1.ConnectMessageAck"];
  PACKET_TYPE_DISCONNECT = 4 [(ras.encoding.type_url) = "ras.protocol.v1.DisconnectMessage"];
  reserved 3, 5 to 10;
  reserved "PACKET_TYPE_START_TLS", "PACKET_TYPE_SASL_NEGOTIATE", "PACKET_TYPE_SASL_AUTH", "PACKET_TYPE_SASL_CHALLENGE";
  reserved "PACKET_TYPE_SASL_SUCCESS", "PACKET_TYPE_SASL_FAILURE", "PACKET_TYPE_SASL_ABORT";
  PACKET_TYPE_ENDPOINT_OPEN = 11 [(ras.encoding.type_url) = "ras.protocol.v1.EndpointOpen"];
  PACKET_TYPE_ENDPOINT_OPEN_ACK = 12 [(ras.encoding.type_url) = "ras.protocol.v1.EndpointOpenAck"];
  PACKET_TYPE_ENDPOINT_CLOSE = 13 [(ras.encoding.type_url) = "ras.protocol.v1.EndpointOClose"];
  PACKET_TYPE_ENDPOINT_MESSAGE = 14 [(ras.encoding.type_url) = "ras.protocol.v1.EndpointMessage"];
  PACKET_TYPE_ENDPOINT_FAILURE = 15 [(ras.encoding.type_url) = "ras.protocol.v1.EndpointFailure"];
  PACKET_TYPE_KEEP_ALIVE = 16;

}

Используемые кодеки

  • byte - кодирует/декодирует 1 байт
  • size - кодирует/декодирует размер в формат int32, сложный кодек с последовательным чтение байтов и применением к ним бинарных операций. 
  • bytes - кодирует/считывает массив байтов нужного размера или до окончания сообщения, если размер не задан.

На этом подготовка данных для сериализации закончена и можно приступить к установке соединения с RAS
 

Установка соединения с RAS

Для работы на прямую с RAS необходимо установить соединение по tcp, для каждого языка это свои стандартные пакеты и тут описывать их смысла нет, поэтому я думаю каждый программист в состоянии установить подключение tcp для своего языка. 

После подключения по tcp к RAS, служба ожидает магическое сообщение NegotiateMessage.

Особенности этого сообщения в том, что оно единственное не требует упаковки в сообщение packet

Структура данных NegotiateMessage :

Название

Тип

Порядок
(order)

Кодек
(encode)

Описание

magic 

int32

1

int32

Магическое число, которые всегда равно 475223888

protocol 

int32

2

short

Всегда равно 256

version 

int32

3

short

По идеи это указание версии кодека, но мне известен только значение 256

 

Получившее описание сообщения:

 
NegotiateMessage

message NegotiateMessage {
  option (packet_type) = PACKET_TYPE_NEGOTIATE;
 

  int32 magic = 1 [(ras.encoding.field) = {
    order: 1,
    encoder: "int32",
  }];      // Use only one value `475223888`

  int32 protocol = 2 [(ras.encoding.field) = {
    order: 2,
    encoder: "short",
  }];

  int32 version = 3 [(ras.encoding.field) = {
    order: 3,
    encoder: "short",
  }];

}

Тут появилась специальная опция `packet_type` которая связывает с типом (PacketType)  который будет установлен или прочитан в сообщении `packet`, это поле используется для сериализации в RAS

Используемые кодеки

  • int32 - кодирует/декодирует полученное число в 4 байта в формате BigEndian 
  • short - кодирует/декодирует полученное число в 2 байта в формате BigEndian 

ВАЖНО! Этот сообщение надо сериализовать (кодировать) в байты и записать на прямую в подключение и он не требует чтения ответа от RAS. В случае любой ошибки в этом сообщении RAS просто закрывает соединение. 

Инициализируем подключение отослав сообщение ConnectMessage

Структура данных ConnectMessage:

Название

Тип

Порядок
(order)

Кодек
(encode)

Описание

params 

map<string, Param>

1

map

Передаются параметры подключения на текущий момент известны  "connect.timeout" = 2000

 

Структура данных Param:

Название

Тип

Порядок
(order)

Кодек
(encode)

Описание

type 

ParamType 

1

byte

Тип передаваемого параметра

value

bytes

2

bytes

Сериализованные данные параметра

 

Получившее описание сообщений:

 
ConnectMessage

message ConnectMessage {

  option (packet_type) = PACKET_TYPE_CONNECT;

  // Известные параметры
  // "connect.timeout" = 2000
  map<string, Param> params = 2 [(ras.encoding.field).order = 1];

}

 
Param 
 
ParamType

Тут важно отметить, что передача параметров подключения необязательно.

После отправки данного сообщения необходимо дождаться ответного сообщения от RAS ConnectMessageAck

Структура данных ConnectMessageAck:

Название

Тип

Порядок
(order)

Кодек
(encode)

Описание

params 

map<string, Param>

1

map

Параметры подключения 

 

Получившее описание сообщения:

 
ConnectMessageAck

Собственно на этом первая часть закончена, мы описание подготовку и сообщения необходимые для подключения и начала работы с RAS на прямую

 

Используемые кодеки

  • map - кодирует/декодирует структуру. Если она пустая то обязательно необходимо закодировать размер 0 с помощью кодека `size`

В следующей части

  • Открытие точки обмена (endpoint)
  • Формирование запросов и их типы (GetClustersRequest)
  • Общие описания данных (ClusterInfo)

Материалы, где можно посмотреть и "пощупать" результат

  1. https://github.com/v8platform/protos/extra/encoding/rasbinary - кодер и декодер в формат ras
  2. https://github.com/v8platform/protos/rasapis/ras/protocol - описание сообщений протокола ras
  3. https://github.com/v8platform/protos/example/ras-client - простейший клиент ras разработанный на основе описанного материала
  4. https://github.com/v8platform/protos/example/grpc-server - сервер grpc для клиента ras, с использованием rest-gateway (формирование запросов по http)
  5. Protobuf - используется для генерации кода (общие структуру, клиент и сервер grpc)

ras golang исследование

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    122159    670    389    

714

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 15300 руб.

06.10.2023    7293    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8000 руб.

10.11.2023    3537    11    1    

34

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177749    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99347    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18113    6    8    

39

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28110    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23602    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. starik-2005 3033 25.08.21 13:51 Сейчас в теме
2. Yashazz 4709 25.08.21 14:49 Сейчас в теме
Послушайте опытного человека - не связывайтесь с RAS. Это крайне нестабильно работающий механизм, любит беспричинно останавливаться, а порой падать, увлекая за собой запущенные процессы, которые неосторожно к нему обратились. Иногда вешает менеджер кластера, пару раз, запускаясь, умудрился даже угробить агент сервера и посбивать все настройки портов, до каких дотянулся.
Редкая дрянь.
Yakud3a; v.a.t; user790708; +3 1 Ответить
3. khorevaa 113 25.08.21 14:56 Сейчас в теме
(2) Да мне эти проблемы известны. И они имеют решение. )
Есть заготовка для этого решения
Микросервис который будет контролировать работы ras перезапускать и прочее.
30. user790708 26.08.21 14:19 Сейчас в теме
(3) Это не решение, это костыль. Как и многое в 1с.
kandellaster; Yashazz; v.a.t; +3 Ответить
4. ktb 618 25.08.21 14:59 Сейчас в теме
(2) Опыт использования не подтверждает ваши показания.
MegaKent; Sedaiko; +2 Ответить
5. Yashazz 4709 25.08.21 15:01 Сейчас в теме
(4) Значит, вам просто повезло. Это временно, грабли ещё впереди)))

Это я говорю как человек, в течение полугода пытавшийся добиться от RAS разных релизов, чтобы он хотя бы не падал самопроизвольно и запускался бы, не вешая сервер.
Кончилось тем, что я плюнул и спокойно работаю средствами СОМ-доступа. Функционал тот же, только надёжнее в разы.
6. ktb 618 25.08.21 15:02 Сейчас в теме
(5) Стабильно работает на 4-х клиентах в режиме постоянного мониторинга кластера.
7. khorevaa 113 25.08.21 15:12 Сейчас в теме
(5) у меня 32 сервера и проблемы наблюдаются только на 3-4...
10. Yashazz 4709 26.08.21 11:20 Сейчас в теме
(7) Чтобы заказчик послал вас по известному адресу, предварительно затребовав неустойку, хватит и 1-2 серверов с проблемами.
user790708; +1 Ответить
11. khorevaa 113 26.08.21 11:25 Сейчас в теме
(10) Думается ваш негативный опыт мешает вам найти нужное решение.
К примеру ras - может быть на отдельной виртуальной машине или в docker. И да он не будет ничего вешать тогда...

Да и у всех разные заказчики и разные проблемы.. их надо просто уметь решать, а не убегать от них....
12. Yashazz 4709 26.08.21 12:04 Сейчас в теме
(11) Там не было виртуальных машин. Там был простой сервер, простой парень админ и не менее простой заказчик. И просто тупо глючащая утилита.
Если вы умеете решать такие проблемы, как утилита, вдруг перестающая работать - то респект. Декомпилировать, хекс-редактором поискать, да? Сделать за жопоруких 1С-авторов их работу? Да?

А насчёт "убегать" - знаете, когда вам недовольный руководитель напрямую приказывает "бросить эту херню" и сделать любым способом, чтобы работало, так вы бросите и сделаете. И все громкие слова про убегание от проблемы будут лишь тем, чем были изначально - пустопорожним пафосом. Главное, когда работает и есть результат, и это не адски криво и ресурсоёмко. Запомните на будущее, пригодится в жизни)
13. Sedaiko 572 26.08.21 12:06 Сейчас в теме
(12) Ну заказчик скажет хочу "свободное ПО" и придется RAS юзать, так как COM уже не судьба.
14. Yashazz 4709 26.08.21 12:09 Сейчас в теме
(13) Вот когда скажет, тогда и будем фантазировать. А реальность была именно такова. Несколько разных релизов платформы. Два сервера (а кто ж ещё даст-то, и один с трудом разрешили взять для опытов). И что?

Вот вы говорите, "на 3-4 есть проблемы" - какие проблемы, как решаете? Конкретику в студию, пожалуйста.
39. Yashazz 4709 26.08.21 19:54 Сейчас в теме
(7) так что за проблемы наблюдаются и как решаете?
Думаю, никто из читателей не хочет ведь с ними столкнуться, а если уж доведётся, то хочет знать, как решать? Так ведь?
Раз уж вы предлагаете задействовать инструмент, расскажите.
8. Sedaiko 572 26.08.21 09:53 Сейчас в теме
(2) в CentOS 7(8) через systemd никогда проблем не было.
9. Yashazz 4709 26.08.21 11:17 Сейчас в теме
(8) Мне "хватило" двух серверов с Windows Server 19 Standard, х64
Примерно полгода различных попыток и мучений, итогом которых каждый раз было одно и то же, неработающий и глючащий RAS. При запуске он вешал сервер. А коллеги, полагаю, хорошо знают, что такое боевой сервер СУБД+приложения, который повесился в рабочее время.
Так что - не, не-не-не. Ни в коем случае.
user790708; +1 Ответить
15. Sedaiko 572 26.08.21 12:10 Сейчас в теме
(9) не, у меня с виндовыми серверам малых компаний другая беда - приходит мальчик-эникей или "чей-то сын" и начинает на том-же сервере Hyper-V или контроллер домена поднимать, а тебе потом - "Сделайте чего-нибудь, ваша 1С хреного работает".
ktb; Yashazz; +2 Ответить
16. Yashazz 4709 26.08.21 12:15 Сейчас в теме
Я смотрю, все такие или умные, или везучие... Ну-ка скажите мне, умные везучие коллеги, что бы вы делали, если простейшая команда запуска RAS напрочь вешает сервер? В журнале регистрации винды - ничего. Просто, ррраз - и насмерть.
Ваши предложения, а?
user790708; +1 Ответить
17. Infactum 315 26.08.21 12:20 Сейчас в теме
(16) Посмотреть техжурнал, снять дамп памяти и на v8 баг отправить.
19. Yashazz 4709 26.08.21 12:30 Сейчас в теме
(17) Вы что подразумеваете под "техжурналом"? ТЖ 1С? И как это можно снять дамп памяти, если машина висит и ни на какие действия rdp не реагирует?
22. Infactum 315 26.08.21 12:42 Сейчас в теме
(19) Обычный техжурнал платформы. RAS ничем не отличается от других компонент и ровно так же генерирует логи.
Приложение из userspace вам всю ОС намертво повесить не сможет - это не драйвер какой-то.
Предположим, что вы реально потеряли доступ по RDP. Но физический доступ к машине то куда делся? Зайти под другим юзером и снять дамп.
Организационные нюансы предлагаю опустить. Я в целом описал подход к расследованию подобных проблем.
ZhdanovR; ktb; khorevaa; Sedaiko; +4 1 Ответить
23. Yashazz 4709 26.08.21 12:51 Сейчас в теме
(22) У вас есть конкретика по настройкам ТЖ именно для RAS? Если на сервере множество баз и процессов, общий ТЖ "обо всём" мгновенно сдохнет, поэтому нужен точный тюнинг.

Физический доступ - ехать в другой город? Не смешно. А под другим юзером зайти тоже не получалось, проверено.

Организационные нюансы предлагаю опустить. Я в целом описал подход к расследованию подобных проблем

Нетушки. "В целом" это мы все умные. Посоветовать ТЖ в двух словах я и сам умею. "Подход", ага.
Дьявол - в деталях. И потом, если RAS, обсуждаемый в теме, просто ваще не запускается и гробит сервер, то тут уж любые нюансы важны.
Иначе это рассуждизм, оторванный от грубой практики.
user790708; +1 2 Ответить
63. Cyberhawk 135 05.09.21 10:07 Сейчас в теме
(23)
конкретика по настройкам ТЖ именно для RAS? Если на сервере множество баз и процессов, общий ТЖ "обо всём" мгновенно сдохнет, поэтому нужен точный тюнинг
Запускать RAS от имени выделенного пользователя ОС, в профиль которого подсунуть файл настройки ТЖ (можно и полный). Он будет иметь приоритет над общим файлом настроек ТЖ и поэтому будет применяться только для процесса RAS: https://its.1c.ru/db/v8315doc#bookmark:adm:TI000000362.
Не сработает только если на хосте используется файл настроек ТЖ в bin конкретного релиза платформы (у него наивысший приоритет), но и в этом случае кажется, что на время можно отказаться от такого расположения, заменив его на общую папку conf.
sashocq; Yashazz; +2 Ответить
24. Yashazz 4709 26.08.21 12:54 Сейчас в теме
(17)
v8 баг отправить
А заказчику вы что скажете? Мол, отправили, ждём у моря погоды? Да он разорвёт контракт и прав будет. Ему работать надо, а не ждать, пока 1С почешется багтрекер почитать и тем более оргвыводы сделать.
25. Infactum 315 26.08.21 13:16 Сейчас в теме
(24) Вы только о сиюминутной выгоде думаете? Если вендора не уведомлять о проблемах, которые, судя даже по этой теме, испытывают далеко не все, их скорее всего никогда и не исправят.
Вот как столкнулись, так и собрали детали и отправили баг репорт. Как поступать дальше решаете в зависимости от проекта и договоренностей с заказчиком. Если подходит вариант "не использовать эту фичу и админить через COM" - ваше право и ничего криминального тут не вижу.
JohnyDeath; Xershi; khorevaa; Sedaiko; +4 Ответить
27. Yashazz 4709 26.08.21 13:25 Сейчас в теме
(25) У вас есть конкретика по настройке ТЖ для RAS?
40. Yashazz 4709 27.08.21 13:29 Сейчас в теме
(27) Интересный народ какой нынче. Спросишь конкретику - ответа нету, зато минусуют. Что, где-то в руководствах чётко прописано, как выглядят события RAS, и один я тупой, этого не знаю?

Или все такие на понтах, что отделываются общей фразой "запусти ТЖ", а вдаваться в детали типа ниже достоинства?
44. Yashazz 4709 27.08.21 13:34 Сейчас в теме
(24) Опять же забавно. Есть, выходит, на ИС люди, которым начхать, что заказчик контракт разорвёт и неустойку стребует))) Минусуют такую реплику, стало быть, не согласны))) Ну ничего, ничего. Как в реальности столкнётесь - так вас жизнь живо вразумит мордой об стол))
55. Xershi 1474 28.08.21 00:38 Сейчас в теме
(44) 1с тоже глючит и что тогда?
Всё правильно написали. Если клиент не хочет использовать значит не нужен ему инструмент. Тем более его всегда можно удалить.
Холи вар устроили. Настроек не знаю. Напишите в 1с они пришлют инструкции.
18. Sedaiko 572 26.08.21 12:28 Сейчас в теме
(16)
я в случае винды юзаю сначала этот скрипт:
https://its.1c.ru/db/freshex2#content:331:hdoc
А потом, при изменении платформы меняю путь в реестре. Хотя при последней настройки заюзал mklink
20. Yashazz 4709 26.08.21 12:31 Сейчас в теме
(18) "Спасибо", добрый человек, но не у всех есть полный доступ на ИТС.
21. Sedaiko 572 26.08.21 12:33 Сейчас в теме
(20) обычная ПРОФ подписка, даже не франч
Bukaska; ktb; +2 Ответить
41. пользователь 27.08.21 13:30
Сообщение было скрыто модератором.
...
47. пользователь 27.08.21 14:34
Сообщение было скрыто модератором.
...
49. пользователь 27.08.21 14:35
Сообщение было скрыто модератором.
...
51. ZhdanovR 95 27.08.21 14:40 Сейчас в теме
(49) Причем тут новичок или нет? Если я не размещаю здесь статьи это что-то меняет? Если кто то ворует статью, то и нужно всем так делать? На пиратство Вы всегда можете пожаловаться - это решается всегда быстро.
artbear; ktb; +2 Ответить
52. пользователь 27.08.21 14:42
Сообщение было скрыто модератором.
...
58. Darklight 32 30.08.21 11:28 Сейчас в теме
(16)Что же Вы такой невезучий... (не в обиду будет). Года два юзаю RAS - ни одной проблемы не наблюдаю... но инфраструктура не большая - всего то 8 виндовых серверов 1С на виртуализации. Конечно мой опыт использования RAS мизерный - и да - может просто ещё не до рос до больших проблем...

А что касается надёжности - ну с продуктами 1С увы тут всегда стоило желать лучшего! А RAS - вообще относительно молодая технология...

У COM тоже полно недостатков и своих проблем. И своих костылей - особенно, когда надо работать с серверами разных версий платформы.

А то что службу (или даже просто запустить как приложение) RAS можно вообще вынести на отдельный компьютер, и манипулировать ей отдельно от платформы агента сервера 1С Предприятие - это бесценно.
Как бесценно и то, что можно относительно легко работать через WEB протоколы, в т.ч. с мобильной платформы.
59. Yashazz 4709 30.08.21 13:12 Сейчас в теме
(58)
Что же Вы такой невезучий... (не в обиду будет).
А чёрт его знает. Возможно, пресловутый закон подлости сработал. Причём я ещё, помню, обрадовался, что наконец обернули в язык 1С, можно по-русски писать... А оно вот как (((
26. user1534961 26.08.21 13:19 Сейчас в теме
(25) Сожалею, народ как всегда беспокоится, что костыли для одной убогой старушки снижают качество жизни для всех.. Ничего нового. Просто вам не повезло, что эта старушка - именно ваш клиент.
А повлиять на мотивацию/квалификацию разработчиков, делать/не делать костыли и насколько ухудшится ситуация в целом - вы не в состоянии.
28. Yashazz 4709 26.08.21 13:28 Сейчас в теме
(26) Проблема в том, что я совершенно не уверен в уникальности и единичности старушки. И, думаю, никто не будет уверен.

Поэтому я вижу свою задачу как уведомить коллег о потенциальной проблеме. Рассказать о своём опыте. Предупредить, что возможны грабли. Потому что автор исходной публикации, обсуждая такую серьёзную и критичную для бизнеса тематику, как администрирование многих серверов с помощью одной утилиты, как-то обошёл вниманием надёжность этой утилиты. А она отнюдь не 100% и даже не 90.
29. Infactum 315 26.08.21 13:33 Сейчас в теме
(23) "Физический" доступ - это не всегда значит ехать в другой город. Для таких случаев есть либо местный админ, либо при более серьезном подходе - отдельные устройства для администрирования, зачастую даже с резервным каналом связи.
Про "совсем угробил сервер" я уже выше сказал - уж извините, но опираясь на свои познания ОС, поверить не могу. Тут бессмысленно спорить.
ТЖ по RAS (фильтруем по процессу) можно полный собрать - логи он генерирует не активно. Тем более вам интервал ротации нужен достаточно не большой, раз проблему ловили исключительно при старте.
ZhdanovR; ktb; Sedaiko; khorevaa; +4 Ответить
31. Yashazz 4709 26.08.21 15:18 Сейчас в теме
(29) В случаях, когда "местный админ" совершенно не горит желанием активно помогать - это проблематично.

Полный ТЖ, уж извините, это бред. Это значит просто всё завалить логами. Потому что "ТЖ по RAS" не бывает, ТЖ - он единый, вообще-то. Для фильтра по процессу надо точно знать, как указывать этот фильтр. Я спросил - ответа пока не получил.

Проблема не только в старте. RAS ещё и падает тихо и самопроизвольно. Был - и нету. Ловить такое - нужен период примерно в сутки.
32. khorevaa 113 26.08.21 15:28 Сейчас в теме
(31)
Проблема не только в старте. RAS ещё и падает тихо и самопроизвольно. Был - и нету. Ловить такое - нужен период примерно в сутки.


С падение RAS решается обычным healthcheck... Вообще как бы не проблема...
35. Yashazz 4709 26.08.21 15:52 Сейчас в теме
(32) Подробнее, пожалуйста. Это сервис, который пинает процесс и сообщает, если процесса нет? Или что-то другое?
42. Yashazz 4709 27.08.21 13:31 Сейчас в теме
(32) Автор, эффектно поумничать у вас уже получилось. Теперь давайте конкретно и чётко.

С падение RAS решается обычным healthcheck... Вообще как бы не проблема...

Распишите, как решается. Можно - ссылкой. Можно - прямо тут.
Вы советуете утилиту. Напишите, как контролировать её работоспособность.
33. Infactum 315 26.08.21 15:32 Сейчас в теме
(31) ТЖ можно фильтровать по процессу - все же в документации есть.
<?xml version="1.0"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
    <log location="C:\Logs\" history="6">
        <event>
            <eq property="process" value="ras"/>
        </event>
        <property name="all"/>
    </log>
</config>
Показать
34. Yashazz 4709 26.08.21 15:50 Сейчас в теме
(33) В документации есть, что value должно быть "ras" и условие именно на равенство?
36. Infactum 315 26.08.21 15:57 Сейчас в теме
(34) Вам просто докопаться хочется или что?
В документации прекрасно написано, как работают отборы ТЖ. Выбираете подходящее поле и условие, получаете профит.
Какое поле за что отвечает (в том числе process), там тоже написано. Даже если есть сомнения - это все проверяется за несколько минут локально.
Andreyyy; ovcharenko.di; JohnyDeath; artbear; Sedaiko; ktb; +6 Ответить
37. Yashazz 4709 26.08.21 16:00 Сейчас в теме
(36) Мне надо решить проблему, про которую некоторые утверждают, что "это легкотня", не вдаваясь в подробности.

Укажите, пожалуйста, название книги, а также название раздела (и по возможности, страницу) руководства, где "прекрасно написано" не вообще про ТЖ, а конкретно про RAS.

И заодно объясните, как я могу "проверить локально" работу утилиты, с которой имею дело на чужом сервере через rdp?

Я совершенно серьёзно.
43. Yashazz 4709 27.08.21 13:32 Сейчас в теме
(36) Так что, все поумничали "в общем", а конкретно никто ничего ответить не может? А, господа?
45. Infactum 315 27.08.21 13:46 Сейчас в теме
(43) Я вам рабочий пример ТЖ скинул с фильтром по процессу дал. Никакого иного источника, кроме документации по платформе, для его составления не нужно.

"Проверить локально" подразумевает возможность убедиться, что ТЖ с указанными настройками собирается и корректно фильтруется. Для этого нужен только дистрибутив платформы. Даже лицензии не потребуются.

В остальном, судя по уровню вопросов, вам либо скучно и вы тут в роли троля местного, либо.. как-бы выразится корректнее, у вас проблемы с профессиональными навыками, и не мешало бы по работать над своей квалификацией.
Разжевывать еще сильнее и без того очевидные вещи я вам больше не буду.
Andreyyy; ovcharenko.di; olegtymko; artbear; +4 1 Ответить
46. Yashazz 4709 27.08.21 13:51 Сейчас в теме
(45) Я задал конкретные вопросы - например, про значение поля Value и про вид сравнения в фильтре (всегда ли eq). Вы не смогли на них ответить. Следовательно - проблемы с профессиональными навыками у вас. Советую впредь не встревать в дискуссию, если вы кроме общих слов, которых где-то нахватались, ничего реально дельного сказать не можете.
53. artbear 1448 27.08.21 14:42 Сейчас в теме
(46) Предлагаю уже остановиться и не переключаться на оскорбления и наезды на профессиональные навыки. хейтерство должно идти мимо.

Коллеги пытаются помочь и рассказать, что проблемы можно решать, показали способ, как решать, с небольшими примерами.
Они, вообще-то, не обязаны ничего доказывать, если не обещали этого сделать.
sashocq; ktb; +2 Ответить
54. Yashazz 4709 27.08.21 14:44 Сейчас в теме
(53) Артур, один неточный пример в духе "ну, надо как-то так" - это мало для серьёзного разговора. Вот про стабильность упомянул автор - и никаких подробностей.

То, что любые проблемы можно решать, трюизм)

Я вообще не понимаю, почему в ответ на вопросы по предмету публикации я получил переход на личности. Считаю правильным для модераторов обратить внимание на реплику пользователя Infactum и потребовать извинения за оскорбительную фразу.
38. sdf1979 194 26.08.21 16:22 Сейчас в теме
Копируете каталог платформы в удобное место и из этого каталога запускаете ras. В этом же каталоге в папку conf кладёте logcfg. xml для сбора полного журнала и дампов. Вот и все логирование только по ras. На винде ещё можно настроить сбор wer дампов.
JohnyDeath; CSiER; ktb; Yashazz; +4 Ответить
50. Yashazz 4709 27.08.21 14:38 Сейчас в теме
(38) Дельно, попробую, спасибо.
48. Yashazz 4709 27.08.21 14:34 Сейчас в теме
В общем, я так понял, автор либо не знает, как решать проблемы с RAS, либо не хочет рассказывать.

Это на заметку всем, кто собирается всем предложенным пользоваться. Задумайтесь, нужны ли вам такие грабли.

И заметьте, коллеги, как "слились" все те, кого я спрашивал о конкретике. Ничего ровным счётом, кроме общих слов, сказано не было.

и да, давайте, навешайте сюда минусиков за ваше незнание и неумение внятно и точно ответить за ваши же "общие" голословные утверждения)))
56. user612295_death4321 28.08.21 12:50 Сейчас в теме
Вот читаю весь этот диалог и прямо пугаюсь.

Использую RAS на куче серверов своего локального контура, причем использую очень интенсивно, постоянный опрос сессий / баз / кластеров / рабочих серверов начиная от 8.3.3 заканчивая 8.3.18, в том числе и на высоконагруженных контурах.

Единственный глюк который пока ловил с RAS иногда служба самого RAS'a кладется, тьфу-тьфу-тьфу зависаний самого кластера 1С пока не ловил, эксплуатирую его довольно длительное время.

p.s: Всегда следую правилу, чтоб служба RAS, клиент RAC по версии была идентичной службе кластера 1С, в противном случае действительно наблюдались какие то странные глюки.
57. Yashazz 4709 29.08.21 09:32 Сейчас в теме
(56)
иногда служба самого RAS'a кладется
Вот я и попытался разузнать, поборол ли кто эту проблему, и если да, то как; или хотя бы в чём она состоит. Молчание и хамство были мне ответом...
60. Sloth 379 30.08.21 15:50 Сейчас в теме
У меня вопрос, а зачем вообще эта "нашлепка" в виде RAS, к которому подключаемся клиентом (rac)? Почему нельзя сразу к серверу 1С обращаться за необходимыми данными (как это делает RAS по запросу RAC)?
Может кто-то прокомментирует с точки зрения архитектурной схемы? Какие здесь "подводные камни"?
Почему не сто'ит разбирать/реализовывать в подобном ключе протокол взаимодействия ras <-> 1c server?
61. sdf1979 194 01.09.21 18:31 Сейчас в теме
(60)
Если посмотреть пакеты от ras к кластеру на 1540, то увидим там хеш в base64 зашифрованный RSA и ключик где-то внутри платформы. И судя по тому, что хеш меняется, то там есть временная метка.
62. Sloth 379 01.09.21 23:13 Сейчас в теме
(61) ну, а зачем так? Т.е. это типа защита сервера 1С от возможности его "завалить" левыми запросами? Если уж падать, то пусть падает прослойка в виде RAS?
64. KovAlexey 13.10.22 02:59 Сейчас в теме
Так следующей части и не наступило..
Оставьте свое сообщение