Опыт неудачной сдачи Эксперт по технологическим вопросам

06.09.24

База данных - HighLoad оптимизация

Делюсь своим опытом сдачи экзамена 1С Эксперт. Хоть опыт и неудачный, экзамен (пока) не сдан, полагаю, информация будет полезна для тех, кто планирует получить этот сертификат.

 

Коротко о себе:

В данный момент тимлид команды разработки, опыт работы в 1С большой, естественно, тема производительности всплывает в работе регулярно. 

На момент начала подготовки были пройдены курсы Виктора Богачева (пару лет назад), навыки оптимизации запросов, анализа планов запросов (правда на SQL Server).   

Подготовка:

Курсы УЦ 1

  • "Применение методик"
  • "Ремесло эксперта"

Сначала отсмотрел "Применение методик" и мне показалось, что меня обманули)

Все очень сжато, кратко, как-то не появилось ощущения, что я готов решать практические задачи. Затем посмотрел "Ремесло эксперта", и первый курс заиграл новыми красками. Что называется, "сначала не понял, а потом как понял") 

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

Посмотрел на youtube ролик Виктора Богачева по регулярным выражениям.

Развернул на виртуальной машине Linux, Postgres, установил 1С, развернул базу ERP с встроенной подсистемой нагрузочного тестирования. До этого с линуксами опыт был абсолютно нулевой, пришлось освоить командную строку и вот это вот все.

База есть на курсе "Ремесло эксперта". Это именно та база, которая будет на экзамене (возможно, другой релиз, но смысл тот же)

На курсе "Применение методик" есть задание, которое нужно выполнить, оно вполне себе иллюстрирует то, что будет на экзамене. 

На этом контуре и проходили тренировки.

Хотя экзамен и не сдан (пока), знания получены:

  • Работа с Linux(основные команды, установка)
  • Работа с Postgres(принципы работы версионника, зачем нужен VACUUM, настройки конфигурации, что такое pg_stats и др. и др.)
  • По SQL Server знаний также прибавилось, DMV, ожидания + в копилку
  • Настройка ТЖ и расследование проблем при помощи регулярных выражений(блокировки, взаимоблокировки, длительные вызовы, запросы, контексты, планы запросов, сбор статистики и тд и тп)
  • Анализ планов запросов на Postgres(основные принципы схожи с SQL Server, но немного другое пальто)
  • Нагрузочное тестирование.
  • ЦУП
  • Подходы при оптимизации (с чего начинать оптимизацию, как оперировать APDEX)
  • Кластер (назначения функциональности, отказоустойчивость, настройки)

Экзамен:

Начало в 10 МСК, должна быть веб-камера "вид сбоку", выдаются доступы и начинается экзамен.

Организацию оцениваю как не очень хорошую:

  • встреча проходит в MTS Link, которого народ раньше в глаза не видел
  • доступы выдаются с задержкой (мне например дали в 10:25)
  • на все жалобы ответ в основном один, "приезжайте очно"
  • самое главное: терминал просто дико тормозит. Когда я первый раз запустил нагрузочный тест, все просто замерло минут на 20, и невозможно было ничего делать. Я даже подумал сначала, что это часть задания, что нужно настроить счетчики и помониторить нагрузку на ресурсы, но потом таких зависаний при тесте не было. Зато были зависания при поиске использования в конфигураторе. Он просто вис наглухо. Ресурсов виртуалке выделено очень мало для нормальной работы с конфигурацией ERP.

Задание:

Нагрузочный тест должен отработать без ошибок, в ТЖ не должно быть TDEADLOCK, TTIMEOUT, EXCP. Есть код с комментариями "НЕ ИЗМЕНЯТЬ", его трогать нельзя. Тестовые обработки тоже менять запрещено.

На терминале две базы, ERP и ЦУП.

Ну раз есть ЦУП, то почему бы и не пойти по легкому пути) Запускаем, подключение уже настроено, режим мониторинга, и... отваливается с ошибкой

ОК. Раз не должно быть TDEADLOCK, TTIMEOUT, EXCP, настраиваю сбор ТЖ по этим событиям, включаю отладку на сервере(на будущее, наверняка понадобится), запускаю тест.

Все виснет часа на пол.

Тест падает с ошибкой нехватки памяти. Легкая проблема, открываем ТЖ, нахожу EXCP, контекст, процедуру. Вижу, что в ней написана явно какая-то фигня(конкатенация длинных строк), но на всякий случай запускаю поиск во всех текстах чтобы найти и проверить использование. Конфигуратор виснет, минут через 20 принимаю решение его срубить. Как это делать, на обучении я не освоил), перезапускаю службу, запускаю конфигуратор, "Найти использование". Индекс заполняется, все отрабатывает, нахожу использование процедуры, делаю расширение, проблемный код убираю.

Итого: поиск проблемы 5 минут, решение 10 минут, ожидание  не меньше часа.

Появляется версия, что зависание это не баг а фича (ну то есть часть задания), иду проверить настройки постгреса, на каталог не хватает прав, sudo пользователю недоступно. Время неумолимо бежит вперед. 

Настраиваю ТЖ уже на полный сбор, запускаю тест.

Как обычно, все виснет, настолько, что меня срубают(в ТЖ событие о завершении сеанса).

Запускаю снова.

Ошибка на взаимоблокировке.

Тут все просто: повышение уровня блокировки. 

Примерно так:

//НЕ ИЗМЕНЯТЬ
Процедура Блокировка()

//НЕ ИЗМЕНЯТЬ
Набор = РегистрыСведений.КакойТо.СоздатьНаборЗаписей()
Набор.Отбор.Установить...
Набор.Прочитать();
Пауза();
Набор.Записать();
КонецПроцедуры

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

//НЕ ИЗМЕНЯТЬ
Процедура Блокировка()
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.КакойТо");
ЭлементБлокировки.УстановитьЗначение("НужныйОтбор", НужныйОтбор);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();

//НЕ ИЗМЕНЯТЬ
Набор = РегистрыСведений.КакойТо.СоздатьНаборЗаписей()
Набор.Отбор.Установить...
Набор.Прочитать();
Пауза();
Набор.Записать();
КонецПроцедуры

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

Анализирую ТЖ по длительным вызовам, нахожу процедуру, в которой в топе процедура:

Из табличной части Контактная информация справочника Партнеры получается Значение(это JSON), парсится, затем при обходе выборки в цикле идет запрос по одному из полей jsona. Не нахожу ничего лучшего, чем засунуть ее в модуль ПовтИсп, предположив, что вызов идет по одним и тем же данным.

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

Запускаю тест, вижу, что с исправлениями взаимоблокировки ошибся, исправляю, запускаю тест снова.

Ловлю ошибку на этот раз с блокировками, вижу, что конфликт с тем местом, где исправлял дэдлок.

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

Занавес)

Выводы:

Пока не понял.

Вроде делал все, как следует, но медленно и ошибался.

Выходит, нужно набивать руку с парсингом, наверное.

Буду ли сдавать второй раз, пока не принял решение.

Всем удачи!

экзамен Эксперт технологическим вопросам

См. также

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

Анализ простого плана запроса. Оптимизация нагрузки на ЦП сервера СУБД используя типовые индексы.

13.03.2024    4698    spyke    28    

48

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

Обработка для простого и удобного анализа настроек, нагрузки и проблем с SQL сервером с упором на использование оного для 1С. Анализ текущих запросов на sql, ожиданий, конвертация запроса в 1С и рекомендации, где может тормозить.

2 стартмани

15.02.2024    11091    214    ZAOSTG    75    

111

HighLoad оптимизация Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Встал вопрос: как быстро удалить строки из ТЗ? Рассмотрел пять вариантов реализации этой задачи. Сравнил их друг с другом на разных объёмах данных с разным процентом удаляемых строк. Также сравнил с выгрузкой с отбором по структуре.

09.01.2024    11351    doom2good    49    

71

HighLoad оптимизация Системный администратор Программист Бесплатно (free)

При переводе типовой конфигурации 1C ERP/УТ/КА на PostgreSQL придется вложить ресурсы в доработку и оптимизацию запросов. Расскажем, на что обратить внимание при потерях производительности и какие инструменты/подходы помогут расследовать проблемы после перехода.

20.11.2023    12219    ivanov660    6    

80

HighLoad оптимизация Бесплатно (free)

Казалось бы, КОРП-системы должны быть устойчивы, быстры и надёжны. Но, работая в рамках РКЛ, мы видим немного другую картину. Об основных болевых точках КОРП-систем и подходах к их решению пойдет речь в статье.

15.11.2023    6581    a.doroshkevich    22    

74

Мониторинг Журнал регистрации Технологический журнал Системный администратор Программист Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

13.11.2023    4289    9    AlexSTAL    0    

47
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user864894 06.09.24 14:01 Сейчас в теме
первый вывод после прочтения - "приезжайте очно!! " :-)
shard; mysm; maksa2005; ubnkfl; +4 Ответить
2. The Ded 203 06.09.24 14:38 Сейчас в теме
(1) Очно такой же терминал выдадут, мне кажется
mrsmrv; Xershi; +2 Ответить
19. Darklight 32 09.09.24 13:39 Сейчас в теме
(2) Думаю тут имеет смысл и на подготовке поднимать тестовый стенд на виртуальных машинах с очень сильно ограниченными ресурсами - тем самым и база ERP в несколько гигабайт покажется Вам почти как высоконагруженная бигдата.
А вообще было бы интересно узнать "железную" конфигурацию тестовой системы на экзамене?
3. partizand 136 06.09.24 18:49 Сейчас в теме
Спасибо за информацию.
У блокировки нет уровня изоляции. Уровень изоляции есть у транзакции.
4. ivrent 07.09.24 10:08 Сейчас в теме
Нужно внимательнее читать ТЖ, тогда станет понятна причина блокировки в том же месте. Первая часть экзамена очень простая. Сдавал три раза без проблем. А вот вторую только на третью попытку удалось пройти
6. The Ded 203 07.09.24 11:58 Сейчас в теме
(4) Расскажите поподробнее, что имеете в виду?
16. ivrent 09.09.24 10:40 Сейчас в теме
(6) Иногда в контексте блокировки встречается слово "Расширение"
5. gzharkoj 513 07.09.24 10:39 Сейчас в теме
Как и почти на любом экзамене рука должна быть набита, то есть опознание проблемы и методика ее решения должны быть как рефлекс, моментом вырабатывается, иначе времени не хватает, ну и плюс все работает на достаточно слабых машинах, то есть не получится по многу раз моделировать всё нагрузочным тестом. У меня намертво ничего не зависало, в принципе было терпимо.
Второй раз надо сдавать 100%, сейчас вы только, так сказать, осмотрелись, поняли условия/ограничения/требования, под них теперь нужно выработать подход и на второй круг =) Я вот собрался на второй круг :)
7. dmpas 418 07.09.24 12:43 Сейчас в теме
круто там нынче. Аж захотелось пойти по новой сдать.
8. cheshirshik 69 07.09.24 13:22 Сейчас в теме
Приветствую коллега. Сейчас сам прохожу курс Богачева на эксперта 1С. На сколько я понял посмотрев несколько уроков из курса, это не курс, а план подготовки. То о чем в нем говорится надо знать и понимать, а еще нужна колосальная практика. Поэтому я решил не торопиться и в каждый рассмотренный вопрос погружаться досконально. Я не работаю с высоконагруженными системами. Увы. Но у меня есть домашняя лаборатория на которой я буду ставить эксперименты.

На счет Линукса. Нынче в современных реалиях импортозамещения эксперты 1С должны его знать и знать как с ним работать. Если раньше Линукс скорее использовали, как средство сэкономить на лицензиях, то теперь тренды на отказ от МС серверов и МС Скуля.

На счет экзамена. Не отчаивайся. Сдают его по статистике 5 человек из 30 с первого раза. Некоторые даже по 4му сдают. Это не просто экзамен на специалиста. Тут надо знать и понимать предметную область, а время выделенное на экзамен в притык. Лично я не буду сдавать на терминалке, а поеду в Москву... в Москву. Мало сдать практику. Еще ведь будет очная часть экзамена на котором придется отвечать на разные вопросы экзаменатора.

Так что как следует готовься. Еще раз проанализируй свои ошибки. Подтяни узкие места. Езжай в МСК, чтобы не сидеть на терминалке. Лично я считаю, что чем больше экспертов по платформе, тем меньше будет пользователей, которые считают, что ваша 1С-ка тормозит. :-)))
mefalcon; support; +2 Ответить
9. acimbo 07.09.24 14:17 Сейчас в теме
Задачи в интернет запрещено сливать. И добавлю что зря вы после решения каждой проблемы тест заново запускаете. Я сначала запустил, решил все что смог, потом запустил повторно. Времени и так немного, а вы его тратите на повторные прогоны. Нужно на опыте решать задачу с первого раза.

К событиям лучше сразу добавить DBPOSTGRS, SDBL и CALL, чтобы лишние прогоны не делать. И обязательно на первый прогон НЕ включать в ТЖ поиск циклических ссылок, утечек и сбор планов запросов. Под это лучше отдельно заготовки ТЖ сделать.

Терминалки не очень быстрые, но не смертельно. И да было бы неплохо конечно не ЕРП использовать на экзамене, хотя ерп чтобы запутать больше.

Удачи в повторной сдаче!

п.с я с первого раза сдал, сдавал тоже онлайн.
bercut13; support; +2 Ответить
10. The Ded 203 07.09.24 14:49 Сейчас в теме
(9) То, что я описал, уже есть здесь же, на инфостарте +-.
Рекомендуете после первого прогона фиксить все EXCP + самые длительные вызовы анализировать и исправлять?
Если в первый прогон не включать план запроса, зачем ловить DBPOSTGRS? В решении комментировать не опираясь на план, просто исходя из общих рекомендаций?
13. s22 22 09.09.24 10:12 Сейчас в теме
(9)
Терминалки не очень быстрые, но не смертельно. И да было бы неплохо конечно не ЕРП использовать на экзамене, хотя ерп чтобы запутать больше.


а есть смысл поиском найти все "НЕ ИЗМЕНЯТЬ", что бы избежать работы с ТЖ?
14. acimbo 09.09.24 10:15 Сейчас в теме
(10) При первом прогоне мы находим проблемные точки, и дальше мы их уже с планом воспроизводим и исправляем, но точечно , а не глобально. Т.е сначала находим медленные запросы, думаем как сделать лучше. Собираем план до, исправляем, собираем план после. Это и будет обоснование решения


(13) с ТЖ придется работать все равно. Потому что при блокировках в одном месте будет НЕ ИЗМЕНЯТЬ, а в другом как раз будет возможность изменить
18. Darklight 32 09.09.24 13:36 Сейчас в теме
обязательно на первый прогон НЕ включать в ТЖ поиск циклических ссылок, утечек и сбор планов запросов

Т.е сначала находим медленные запросы, думаем как сделать лучше. Собираем план до, исправляем, собираем план после

Так когда планы запросов то собирать?
Ну, я вот согласен с тем - что на первом прогоне теста нужно скорее блокировки искать, и различные длительные вызовы, явные исключения.
Анализ утечек памяти и цикличеких ссылок надо сделать отдельно - это третий прогон (после решения проблем первого - второй - тестовый как первый)
И только потом переходить к планам запросов, и оставшимся блокировкам

(14)
Потому что при блокировках в одном месте будет НЕ ИЗМЕНЯТЬ, а в другом как раз будет возможность изменить

Это намёк на то, что блокировки будут всплывать в одном месте - а искать их надо в другом? Какие рекомендации?
20. acimbo 09.09.24 13:40 Сейчас в теме
(18) "Так когда планы запросов то собирать?" Когда нашли после первого прогона медленные запросы, и решили что их стоит исправить.

"Это намёк на то, что блокировки будут всплывать в одном месте - а искать их надо в другом?" - Искать нужно везде. У каждой взаимоблокировки, таймаута и ожидания есть виновник и есть жертва. Вы сначала выйдете на жертву, и там будет то самое НЕ ИЗМЕНЯТЬ например. А виновник это не просто параллельная транзакция, вызывающая этот код, а вообще другой код.
22. Darklight 32 09.09.24 13:47 Сейчас в теме
(20)
Вы сначала выйдете на жертву, и там будет то самое НЕ ИЗМЕНЯТЬ например. А виновник это не просто параллельная транзакция, вызывающая этот код, а вообще другой код.

Вот это я и спросил - как от жертвы перейти к виновнику? Есть эффективные рекомендации?
23. acimbo 09.09.24 13:48 Сейчас в теме
(22) стандартные рекомендации. WaitConnection.
24. Darklight 32 09.09.24 13:53 Сейчас в теме
(23)
WaitConnection

И "DeadlockConnectionIntersections "
Но подождите, это же в той же записи ТЖ, что и "TTIMEOUT" и "TDEADLOCK"
Я то думал - там что-то более хитрое надо искать...
25. acimbo 09.09.24 13:54 Сейчас в теме
(24) Дальше по этому раскручиваем что делал виновник.
26. Darklight 32 09.09.24 14:01 Сейчас в теме
(25) Спасибо за уточнение
15. The Ded 203 09.09.24 10:27 Сейчас в теме
(13) Можно, но решение должно иметь обоснование. Боюсь, ответ "я нашел все ваши кривые доработки и оптимизировал", экзаменаторов не устроит) В реальной жизни такого не будет ведь. Так-то можно и сравнение с конфигурацией поставщика выполнить
11. user1950534 09.09.24 08:27 Сейчас в теме
И сколько нынче может быть ЗП специалиста такого уровня (после экзамена, разумеется)?
21. Darklight 32 09.09.24 13:44 Сейчас в теме
(11) 300-400К руб - в зависимости от опыта, но совсем без опыта или с очень малым, вообще не нужны - тут только расти... пока не как эксперт....
Но могут и свыше 500К быть - ну это для гуру (и они нарасхват)! Хотя наверняка, кто-то и без очень большого опыта умудряется поднимать 500К с корочкой 1С Эксперта - это как повезёт и как себя преподнести!
А так, да, можно и не быть "экспертом" в 1С - и срубать те же 300-400К - тут кому что больше нравится - шарить в процессах железа и ПО или в процессах учёта "хозяйственной деятельности"
28. user1950534 09.09.24 14:30 Сейчас в теме
(21) ну короче зарплата не зависит от наличия сертификата. Всё понятно, вопросов нет)
29. Darklight 32 09.09.24 16:28 Сейчас в теме
(28) Срубать "большие бабки" именно как "Эксперт по тех. вопросам" без сертификата будет солоновато (но такое, конечно бывает). Другое дело - что можно срубать "большие бабки" не позиционируя себя как "Эксперт по тех. вопросам". Тут уже как себя ставить и как развиваться - можно практически без сертификатов (а найдутся "уникумы" или, скорее "баловни судьбы" без единого сертификатов) срубать те же 300-400К (это не везде так, конечно) - не сертификаты образуют твою з/п, а твой опыт (и блат)! Но... чащ опыт набирается вместе с сертификатами... хотя бывает так, что попадаешь в струю и, вместе с прожаренной командой семимильными шагами набираешь опыта, и тебя никто не подстёгивает к получению сертификатов! Но это, скорее исключение! Но хорошее портфолио всегда будет ценнее сертификата. Но, повторюсь, это не прокатывает для "Эксперта по тех вопросам" - тут желательны и сертификат и рекомендации!
30. user1950534 09.09.24 17:28 Сейчас в теме
(29) да это всё понятно, как говорит молодежь, жиза такая жиза))

Тут в укор компании 1С аргументы, что сертификаты сами по себе не весят на рынке нифига.
Поверьте на слово, к примеру, сертификат Cisco Security Expert принесет вам 200-250к долларов в год дохода.То же самое SAP или Oracle. Стоимость бренда, не знаю, стоимость продукта или капитализация, как угодно, всегда складываются из таких кирпичиков как industry education. В 1С же, будь ты хоть стопицотэкспертом с/без сертификатов не важно, твой потолок несчастные 30-40к долларов в год и точка. Смысл в этой "гонке"? Это гонка на "легендарном москвиче" 60х годов)))
32. Darklight 32 10.09.24 09:28 Сейчас в теме
(30) Так изучайте западные системы, сдавайте сертификаты и валите отсюда - ибо тут такие нафиг не нужны уже! А таким - нафиг не нужно всё вот это тут!
Никтож не держит.... пока не держит! Торопитесь!

P.S.
Лично против Вас в этом сообщение ничего нет - не принимайте близко на свой счёт!
user596529_a-ivashenko60; smit1c; +2 Ответить
33. user1950534 10.09.24 09:34 Сейчас в теме
(32) сам и вали, мне и тут хорошо)
34. Darklight 32 10.09.24 16:36 Сейчас в теме
(33) Раз хорошо - то нечего жаловаться! И просил же - не принимать на свой счёт!
12. s22 22 09.09.24 09:43 Сейчас в теме
а замером производительности в конфигураторе нельзя пользоваться?
(ТЖ знаю, но иногда проблемы легче ловить вначале в конфигураторе)
17. pyrkin_vanya 492 09.09.24 11:28 Сейчас в теме
Прочитал и как будто я писал)))) Прям один в один все. Даже по работе))) Вам случайно не 36 лет? )))
27. Darklight 32 09.09.24 14:26 Сейчас в теме
А чем логи анализировать на экзамене? Только регулярками? Никаких редакторов не доступно?
36. pyrkin_vanya 492 11.09.24 07:07 Сейчас в теме
(27) Консоль линукса с регулярными и все
38. reset2 17 11.09.24 09:21 Сейчас в теме
(27) Sublime установлен, он вроде может в регулярки.
31. RustIG 1726 10.09.24 00:58 Сейчас в теме

В данный момент тимлид команды разработки, опыт работы в 1С большой

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

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

Но не приемлю любые проявления слабости...

Ни плюса, ни минуса не ставил... Просто прочитал, задумался и высказался...
35. unichkin 1577 10.09.24 20:15 Сейчас в теме
Хочу поблагодарить автора за наводку на курс "Основы ремесла"! Как-то он мимо меня прошел, курс отличный. И его содержимое - это то, что ожидал от "Применение методик". Очень много полезной практики, с хорошим, заранее подготовленным стендом. Там даже временные лицензии на сервер купить можно, на три месяца. На CE больше трех сеансов не запустишь, а по факту надо не менее четырех - если хочется ЦУП погонять. В самом обрезанном варианте получается сам ЦУП, база с агентом, база с двумя пользователями = 4 лицы.
37. pyrkin_vanya 492 11.09.24 07:13 Сейчас в теме
(35) Я сервер-мини себя для этого взял. Там до 5 сеансов
39. unichkin 1577 11.09.24 11:19 Сейчас в теме
(37) у меня на локальной машине он тоже есть, но все тестовые стенды на виртуалках.. Не проверял кстати, расшарится ли серверная лица через nethasp, надо попробовать. И отдельная физ. машина на Linux - пока с 8.3.21 сижу, там до 10 сеансов бесплатно, клиентские лицы тащу с хоста (комплект разработчика). Но все-равно все эти "приключения" с урезкой сеансов - неудобно.
Оставьте свое сообщение