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

Публикация № 1503913 25.08.21

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

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

Для тех, кто любопытен, или есть потребность администрировать много серверов 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)

Специальные предложения

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

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

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

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

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

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

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

Нетушки. "В целом" это мы все умные. Посоветовать ТЖ в двух словах я и сам умею. "Подход", ага.
Дьявол - в деталях. И потом, если RAS, обсуждаемый в теме, просто ваще не запускается и гробит сервер, то тут уж любые нюансы важны.
Иначе это рассуждизм, оторванный от грубой практики.
user790708; +1 2 Ответить
63. Cyberhawk 131 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 4481 26.08.21 12:54 Сейчас в теме
(17)
v8 баг отправить
А заказчику вы что скажете? Мол, отправили, ждём у моря погоды? Да он разорвёт контракт и прав будет. Ему работать надо, а не ждать, пока 1С почешется багтрекер почитать и тем более оргвыводы сделать.
25. Infactum 309 26.08.21 13:16 Сейчас в теме
(24) Вы только о сиюминутной выгоде думаете? Если вендора не уведомлять о проблемах, которые, судя даже по этой теме, испытывают далеко не все, их скорее всего никогда и не исправят.
Вот как столкнулись, так и собрали детали и отправили баг репорт. Как поступать дальше решаете в зависимости от проекта и договоренностей с заказчиком. Если подходит вариант "не использовать эту фичу и админить через COM" - ваше право и ничего криминального тут не вижу.
JohnyDeath; Xershi; khorevaa; Sedaiko; +4 Ответить
27. Yashazz 4481 26.08.21 13:25 Сейчас в теме
(25) У вас есть конкретика по настройке ТЖ для RAS?
40. Yashazz 4481 27.08.21 13:29 Сейчас в теме
(27) Интересный народ какой нынче. Спросишь конкретику - ответа нету, зато минусуют. Что, где-то в руководствах чётко прописано, как выглядят события RAS, и один я тупой, этого не знаю?

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

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

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

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

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

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

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


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

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

Распишите, как решается. Можно - ссылкой. Можно - прямо тут.
Вы советуете утилиту. Напишите, как контролировать её работоспособность.
33. Infactum 309 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 4481 26.08.21 15:50 Сейчас в теме
(33) В документации есть, что value должно быть "ras" и условие именно на равенство?
36. Infactum 309 26.08.21 15:57 Сейчас в теме
(34) Вам просто докопаться хочется или что?
В документации прекрасно написано, как работают отборы ТЖ. Выбираете подходящее поле и условие, получаете профит.
Какое поле за что отвечает (в том числе process), там тоже написано. Даже если есть сомнения - это все проверяется за несколько минут локально.
ovcharenko.di; JohnyDeath; artbear; Sedaiko; ktb; +5 Ответить
37. Yashazz 4481 26.08.21 16:00 Сейчас в теме
(36) Мне надо решить проблему, про которую некоторые утверждают, что "это легкотня", не вдаваясь в подробности.

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

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

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

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

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

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

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

Я вообще не понимаю, почему в ответ на вопросы по предмету публикации я получил переход на личности. Считаю правильным для модераторов обратить внимание на реплику пользователя Infactum и потребовать извинения за оскорбительную фразу.
38. sdf1979 141 26.08.21 16:22 Сейчас в теме
Копируете каталог платформы в удобное место и из этого каталога запускаете ras. В этом же каталоге в папку conf кладёте logcfg. xml для сбора полного журнала и дампов. Вот и все логирование только по ras. На винде ещё можно настроить сбор wer дампов.
JohnyDeath; CSiER; ktb; Yashazz; +4 Ответить
50. Yashazz 4481 27.08.21 14:38 Сейчас в теме
(38) Дельно, попробую, спасибо.
48. Yashazz 4481 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 4481 29.08.21 09:32 Сейчас в теме
(56)
иногда служба самого RAS'a кладется
Вот я и попытался разузнать, поборол ли кто эту проблему, и если да, то как; или хотя бы в чём она состоит. Молчание и хамство были мне ответом...
60. Sloth 316 30.08.21 15:50 Сейчас в теме
У меня вопрос, а зачем вообще эта "нашлепка" в виде RAS, к которому подключаемся клиентом (rac)? Почему нельзя сразу к серверу 1С обращаться за необходимыми данными (как это делает RAS по запросу RAC)?
Может кто-то прокомментирует с точки зрения архитектурной схемы? Какие здесь "подводные камни"?
Почему не сто'ит разбирать/реализовывать в подобном ключе протокол взаимодействия ras <-> 1c server?
61. sdf1979 141 01.09.21 18:31 Сейчас в теме
(60)
Если посмотреть пакеты от ras к кластеру на 1540, то увидим там хеш в base64 зашифрованный RSA и ключик где-то внутри платформы. И судя по тому, что хеш меняется, то там есть временная метка.
62. Sloth 316 01.09.21 23:13 Сейчас в теме
(61) ну, а зачем так? Т.е. это типа защита сервера 1С от возможности его "завалить" левыми запросами? Если уж падать, то пусть падает прослойка в виде RAS?
64. KovAlexey 13.10.22 02:59 Сейчас в теме
Так следующей части и не наступило..
Оставьте свое сообщение

См. также

Рекомендации по оформлению кода на 1С в презентациях

Инструментарий разработчика Бесплатно (free)

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

24.03.2023    2654    kuntashov    10    

23

Метаданные (Infostart Toolkit)

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

Статья о инструменте Метаданные в продукте Infostart Toolkit. Просмотр метаданных, структуры хранения в режиме 1С: Предприятия.

16.03.2023    2081    Evg-Lylyk    12    

22

Отладка внешней печатной формы в управляемом приложении без создания формы, расширения или редактирования общего модуля

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

Все мы время от времени сталкиваемся с отладкой ВПФ. Прикручивать для этого форму лично у меня никогда не вызывало восторга, поэтому для себя я когда-то нашел решение, которое использую и по сей день. В этой статье хочу поделиться им с вами. Уверен, что оно сэкономит ваше время при решении данных задач.

20.02.2023    1841    alex67dee    4    

28

Соревнование по программированию на 1С

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

Устроим соревнование по программированию? Узнаем, кто "берёт и делает", а кто только на словах специалист? Программирование - искусство или ремесло нажимания кнопок?

15.12.2022    4895    elcoan    99    

50

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Структура хранения ИБ - обработка за 5 минут и 2 строки кода - DIY

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

Платформа "1С:Предприятие 8" не держит в секрете информацию об именах таблиц SQL (или внутренней БД для файловой). Для получения подробнейшей информации - есть штатная функция "ПолучитьСтруктуруХраненияБазыДанных". Данная обработка - лишь обертка над функцией. Думаю, нет смысла качать и тратить $m на то, что можно сделать самому за 5 минут.

10.11.2022    3847    DrAku1a    12    

39

Опыт использования 1С: Исполнитель (версия 2.0)

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

Дело было так. В субботу рано утром мне не спалось, надо было срочно подкинуть мозгу что-нибудь очень занятное. И тут я вспомнил одну задачу, решение которой мне определенно не нравилось. Если кратко, задача звучит так: надо выкинуть из конфигурации код, который выполняется на клиенте. Ну и сделать так, чтобы он выполнялся в фоне и на клиенте. А пока думал, спать уже и перехотелось...

26.09.2022    3818    vandalsvq    21    

28

Методика применения однострочного кода

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

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

25.09.2022    6252    tormozit    76    

91

Вывод имени базы 1С в панель задач (скрипт)

Инструментарий разработчика Бесплатно (free)

Скрипт, который показывает имя базы 1С среди приложений в панели задач.

23.08.2022    1886    a_a_burlakov    28    

40

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

СПАРК помогает предотвратить мошенничество со стороны компаний и предпринимателей, благодаря актуальным сведениям о компаниях и системе выявления факторов риска.Сервис позволяет управлять налоговыми рисками и комплексно оценивать благонадежность контрагентов.

Ошибка при открытии StandardFindByRef.epf (описание и решение)

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

Как решить ошибку вызова недокументированной обработки StandardFindByRef.epf.

28.07.2022    943    CyberMax    1    

12

Phoenix BSL: правим ошибки "не отходя от кассы"

Инструментарий разработчика Рефакторинг и качество кода Бесплатно (free)

Простой инструмент проверки кода без длинных мануалов и многочасовых конвейеров.

11.05.2022    3692    mas_kot    11    

44

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Infostart Toolkit – чем инструмент будет полезен для аналитиков и консультантов

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

На митапе для аналитиков "Истории внедрения" выступил Евгений Люлюк – ведущий разработчик Infostart Toolkit. Он рассказал, какие инструменты помогут аналитику исследовать незнакомую базу, находить решения проблем, работать с данными и вносить в них точечные изменения.

04.05.2022    2000    Evg-Lylyk    0    

18

Все функции (Infostart Toolkit)

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

Улучшенный аналог "Все функции" или "Функции технического специалиста" из набора инструментов Infostart Toolkit.

15.04.2022    2904    Evg-Lylyk    5    

25

Конвертация HTML в PDF программно

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

Инструкция по конвертации HTML файлов в файлы PDF программно в 2 строчки и без заморочек.

09.03.2022    3388    maximus_2712    2    

7

Глобальное меню (Infostart Toolkit)

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

Набор инструментов Infostart Toolkit. Глобальное меню для удобства запуска.

22.02.2022    2632    Evg-Lylyk    4    

25

Подписки на события (Infostart Toolkit)

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

Все подписки на события с отбором по метаданным, поиском подписки по подстроке, отображением объектов подписки и обработчиков (с возможностью посмотреть код).

26.01.2022    2103    Evg-Lylyk    8    

35

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

В курсе обобщен опыт работы аналитика на проектах в течение пяти лет, в нескольких фирмах. Подходы к написанию документов унифицированы и по возможности не привязаны к конфигурациям 1С.

3 500 рублей

Отладка внешней печатной формы в управляемом приложении (с редактированием и записью)

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

+ 1 способ отладки внешней печатной формы в управляемом приложении (управляемые формы). Уверяю Вас, это быстро и удобно. Не нужно каждый раз обновлять конфигурацию, сохранили внешнюю форму и можно сразу проверять.

20.01.2022    10912    dreamwaver_dz    41    

66

Загрузка метаданных из расширений в СППР

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

Описание принципа, на котором можно сделать загрузку метаданных из расширений в СППР 2.

17.01.2022    1300    jf2000    0    

9

Стек технологий для 1С

Инструментарий разработчика Рефакторинг и качество кода Групповая разработка (Git, хранилище) Механизмы платформы 1С Бесплатно (free)

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

29.11.2021    29918    mrXoxot    63    

419

Решение некоторых задач с помощью "Отладчика запросов"

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

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

29.11.2021    1900    DrAku1a    6    

15

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

saby v8unpack

Инструментарий разработчика Бесплатно (free)

Ключевые отличия от аналогичных утилит: человеко-читаемые имена файлов, структура хранения максимально приближена к структуре метаданных, программный код всегда хранится в отдельных файлах и может быть разделен на несколько файлов, файлы хранятся в формате json, файлы макетов и картинки хранятся в исходном виде.

09.10.2021    4293    Businka76    67    

65

Тонкий конструктор СКД (Infostart Toolkit)

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

Реализация конструктора СКД с нуля для управляемых форм. Контекстная подсказка для языка выражений СКД и другое.

01.09.2021    5441    Evg-Lylyk    22    

64

Загрузи это.... или Консольная утилита для загрузки пакетов с releases.1c.ru

Инструментарий разработчика Бесплатно (free)

Зайду на сайт releases.1c.ru введу логин/пароль, найду нужную версию и еще пти раза ткну мышкой, чтобы скачать нужный файлик.. и это повторить 3 раза... Надоело?... Мечтаете об одной кнопке? Вам сюда.

26.08.2021    3089    khorevaa    34    

22

Разработка скриптов для Снегопата

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

Это небольшая статья для тех, кто хочет сам разрабатывать скрипты для нового Снегопата, или править сам движок Снегопата, или просто собирать модуль самостоятельно для внесения оперативных исправлений. В ней я расскажу, как установить и настроить всё необходимое для этого. Скрипты будем создавать на языке TypeScript, инфраструктура заточена именно под этот язык. Предполагается, что вы умеете пользоваться git’ом и настраивать переменные окружения.

26.07.2021    2950    orefkov    1    

30

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

Infostart Toolkit – инструмент, в котором сделано то, что давно просят от 1С

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

Лауреат Infostart Awards-2019, ведущий разработчик инструментов Infostart Toolkit Евгений Люлюк рассказывает о том, как развивается, какие задачи закрывает и какие проблемы решает представляемый им набор инструментов разработчика.

09.06.2021    8960    Evg-Lylyk    6    

38

HTML таблица для начинающих

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

Несколько примеров HTML таблиц со стилями и без. Хорошая замена отчетов на СКД.

02.06.2021    9957    dsdred    27    

66

Редактор кода, запроса, ... Infostart Toolkit (интеграция с MS Monaco)

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

Контекстная подсказка, подцветка синтаксиса в тонком клиенте. В платформе 1С редактор кода на управляемых формах обладает нулевой функциональностью, интеграция с MS Monaco позволяет запустится просто в космос.

28.05.2021    7887    Evg-Lylyk    14    

52

re: Flowcon

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

Flowcon возвращается.

28.04.2021    2870    1c-intelligence    26    

25

10 полезных, но малоизвестных возможностей IS Toolkit

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

Будет полезно пользователям Toolkit, а также тем, кому интересны возможности данного инструмента.

23.04.2021    4089    Evg-Lylyk    0    

26

Работа с 1С:Аналитика Промо

Онлайн-курс предусматривает изучение возможностей системы “1С:Аналитика”, которая работает как составная часть платформы “1С:Предприятие” и обеспечивает оперативный просмотр и анализ необходимых данных.

4500 рублей

Быстрый запуск информационной базы 1С:Предприятия 8.3 в Python c использованием bat файла

Инструментарий разработчика Россия Бесплатно (free)

В статье излагается решение задачи быстрого запуска требуемой пользователю информационной базы 1С:Предприятия 8.3. Под быстрым запуском подразумевается запуск информационной базы без выбора в списке информационных баз. Один из способов - запуск информационной базы с использованием ярлыка. Второй способ - быстрый запуск информационной базы в Python с использованием bat-файла.

12.04.2021    2729    fscorp~~61    2    

0

Редактор схемы компоновки для тонкого клиента

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

Аналог платформенного конструктора схемы компоновки данных для работы в тонком клиенте. Входит в состав набора "Универсальные инструменты 1С"

08.03.2021    6608    cprit    32    

63

Структура запроса (Infostart Toolkit)

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

Описание механизма разбора запроса на части (дерево), используемого в IS Toolkit и Управляемой консоли отчетов

02.03.2021    3538    Evg-Lylyk    14    

22

Чтение метаданных 1С из SQL Server и PostgreSQL

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

Описание файла DBNames таблицы Params и файлов объектов метаданных таблицы Config.

16.02.2021    10870    zhichkin    72    

76

Отладка логики запроса в консоли запросов ИР

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

Облегчаем поиск причины неожиданного результата запроса в консоли запросов из подсистемы "Инструменты разработчика" (ИР)

05.01.2021    9619    tormozit    9    

134