Меню

Сортировать:

Новое Популярное
Заметки старого АБАПника (46)

Комментарий от  

Олег Точенюк

  |  22 ноября 2014, 16:27

Денис Озорнов 21 ноября 2014, 09:49

Собственно вот цитата из курса BC402 (версия 2006 Q2, страница 200) про то, какой алгоритм используется для хэш-таблиц.
Access to a hashed table is implemented using a hash algorithm. Simplified, this
means that the data records are distributed randomly but evenly over a particular
memory area. The addresses are saved in a separate table, the hashed table. To
do this, a hash function uses the key data to calculate an address where the hashed
table entry can be found.
The function is not injective, that is, there can be two data records stored at a single
address. This is implemented internally as a chained list. Therefore, the system may
have to perform a sequential search within this type of area. However, the chained list
can only contain a maximum of two entries. If the same hash table address results
for a third new key, the system uses a changed hash function and rebuilds the entire
management area. The graphic illustrates the simplest case, in which only one record
is stored at each address.

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

Комментарий от  

Артем Седловский

  |  21 ноября 2014, 18:29

Упс, неожиданно интересная статья на вроде бы банальную тему.
Отвечаю на вопрос Как Вы используете календари? применительно к Финансам и к России.
 
Есть у нас в FI, MM и SD к такая замечательная функциональность как управление сроками оплаты. Базируется в основном на полях Базовая дата и Условие платежа. Хотя, если покопаться, можно найти и поле для собственно плановой даты оплаты.
Есть у нас в России (полагаю, в других странах бывшего СССР тоже) такая бизнес-традиция как отчет отсрочки оплаты от некоей опорной (включение счетчика) не в календарных днях, а в т.н. банковских. Что характерно, нигде в законодательстве термин "банковский день" не описан, а в договорах термин применяется повсеместно и без подробного описания.
Есть у нас в России такая плохая традиция, как наплевательское отношение консультантов к этой полезной функциональности - Условия платежа и определение базовой даты. Или, как сказали бы тренеры по лицемерию (коучи по эффективности персональных коммуникаций), потенциал для улучшения практики применения этого дела.
 

Практика использования календаря именно в РФ и именно для управления сроками оплаты.
1. На одном проекте пришлось собрать целый методологический совет, чтобы определить, что банковский день = рабочий.
2. Так как клиент работал в основном на территории Республики Татарстан, но имел бизнес еще и в Москве и в Самаре, пришлось вести два календаря: один федеральный, другой республиканский.
3. Был разработан экзит по пересчету банковских дней в календарные.
4. Зачастую условия договоров включали экзотические условия определения момента включения счетчика. То есть, в переводе на саповский птичий язык, Базовая дата. Поэтому пришлось сделать некоторое число экзитов для манипулирования Базовой датой, которая по умолчанию может быть настроена всего на 4 вида дат.
Для запуска в продуктив пришлось провести инвентаризацию требований договоров и законодательства по определению алгоритмов определения сроков оплаты относительно сроков чего-то еще. Получилось, что можно разделить все алгоритмы на две группы:
- государственные, в основном связанные с уплатой налогов, настраиваются достаточно просто через фиксированное число дней после начала месяца
- коммерческие договора обычно насыщены экзотическими условиями по дате включения счетчика и по использованию банковских дней вместо календарных. Вот на коммерческих договорах и приходится чаще всего обращаться к производственному календарю для расчета экзитами правильных дат подготовки платежек и ожидаемых дат поступления денег за дебиторку.
Заметки старого АБАПника (46)

Комментарий от  

Денис Озорнов

  |  21 ноября 2014, 09:49

Олег Точенюк 19 ноября 2014, 21:23

Занятное замечание: "если я ничего не путаю, то наиболее заметно скорость поиска по хэш табле зависит от собственно длины ключа таблы"
 
Вы представляете что такое хеш доступ и как он реализуется при построении индекса? Вообще-то скорость доступа зависит не от длинны ключа (ну если мы не ассемблерный код хеш-функции анализируем и такты процессора с внутренними стеками да длину команд высчитываем), а от качества используемого алгоритма - хеш функции. Чем больше коллизий у алгоритма расчета тем медленнее поиск, так как выполняются различные дополнительные методы обхода коллизий и т.д.
 
PS: Не я понимаю что простое сложение байт строки в 10 символов и строки в 20 выполняется дольше, но мы то про базы данных, а не про что быстрее посчитается на уровне процессора и памяти.

Собственно вот цитата из курса BC402 (версия 2006 Q2, страница 200) про то, какой алгоритм используется для хэш-таблиц.
Access to a hashed table is implemented using a hash algorithm. Simplified, this
means that the data records are distributed randomly but evenly over a particular
memory area. The addresses are saved in a separate table, the hashed table. To
do this, a hash function uses the key data to calculate an address where the hashed
table entry can be found.
The function is not injective, that is, there can be two data records stored at a single
address. This is implemented internally as a chained list. Therefore, the system may
have to perform a sequential search within this type of area. However, the chained list
can only contain a maximum of two entries. If the same hash table address results
for a third new key, the system uses a changed hash function and rebuilds the entire
management area. The graphic illustrates the simplest case, in which only one record
is stored at each address.
Обеспечение результативности SAP-обучения. Руководство (4)

Комментарий от  

Елена Колбей

  |  20 ноября 2014, 15:01

Относительно обучения SAP - алгоритм полезен больше заказчику, чем тренерам\компаниям\фрилансу\etc, занимающимся обучением. Для этой категории все более, чем очевидно.
По таблице 3 - использование новичков в обучении -может быть ошибкой, зависит от модуля SAP, и от начальных требований, предъявляемых к новичкам.
 
По поводу публикаций - не смотрела источники, но выглядит, как западная\американская действительность, не адаптированная к российским реалиям. Очень много хороших тренеров, не имеющих публикаций. Наличие последних - не показатель степени квалификации.
Заметки старого АБАПника (46)

Комментарий от  

Денис Озорнов

  |  20 ноября 2014, 12:28

Олег Точенюк 19 ноября 2014, 21:14

Ну вы их читали, но по факту так ничего в примеры кроме вот этого вот: "являются скорее уж вредными советами" не привели, поэтому беседа как бы ни о чем. Хотя я предложил вам ранее это сделать на конкретных примерах, где по вашему или совет не тот или граната не той системы.
 
По повожу технического редактора, ну я писал, Александры Дублин и Яков Михалыч Басок редактировали, Василий Ковальский вроде как рецензировал, но если для вас это ни о чем не говорит, то фиг с ним, оригинал тоже подойдет, хотя именно это издание я не читал. Но если вы думаете что мне было нечего делать, просто пересказать своими словами приведенную вами ссылку, то я тоже не возражаю.
 
PS: По поводу статей, именно статей тут по абапу их вообще-то мало (кажется 2), вы наверное имеете в виду авторские колонки/блоги. Их конечно же кроме автора вряд ли кто редактирует. Кстати, сделайте свою колонки, а мы почитаем...

для анализа взята версия 1-2 с сайта
Ну начнем с простого.
1) В файле с советами везде проводится замер производительности на примере таблиц MKPF\MSEG. При этом, говорится о многократном выборе данных из одной и той же таблы, но с разными вариантами параметров. Но нигде не озвучивается, что у БД есть, в общем-то, свой кэш, и что для чистоты замеров кэш надо бы сбрасывать (забивать каким-то мусором, иначе БД будет брать данные из кэша)
2) Цитата со стр 7 "Кстати,
известный факт при использовании довеска «FOR ALL ENTRIES IN», не забываем делать
проверку на наличие данных в таблице, используемой в условии. Потому что, если данных
там нет, то будет выполнен полный проход по таблице выборки, а это плачевно отражается на
скорости выбора данных, даже если вам нужно получить все записи.". Не совсем понятно что понимается в этом случае под таблицей выборки. Проще было написать "при пустой таблице фильтра, будет прочитана полностью таблица СУБД из которой производится выборка"
3) Примеры с чтением таблицы T006A(стр16-18): нигде не указывается что таблица буферизована и в соответствии с этим при джойнах буфер не используется.
4) Стр 19: цитата "При массовых вставках или изменениях данных, не следует использовать COMMIT WORK,
после каждой вставки или изменения данных.". Если до этого были просто замечания, то вот это как раз вредный совет. решение о том, как именно производится коммит\роллбэк принимается на основании бизнес-процесса.  Общего рецепта тут нет и быть не может. Кроме того, стоит помнить, что все изменения логируются в спец. областях СУБД до своей фиксаци в БД. если выполнять длинную транзакцию БД (или LUW если угодно использовать терминологию SAP), то есть все шансы нарваться на переполнение rollback segment\transaction log
5) не менее шикарно смотрится рассуждение с 19 по 25 страницу, о том как после коммита ловить факт создания объекта. Скажите, а почему просто не используется синхронное обновление с использованием COMMIT WORK AND WAIT? Ведь, согласно хелпу, как раз в этом случае программа будет гарантировано ждать, когда же объекты доедут в БД.
Я могу искать и дальше, но я не буду этого делать по той же причине почему не буду вести здсь блог\колонку: мне за это не платят зарплату.
Заметки старого АБАПника (46)

Комментарий от  

Денис Озорнов

  |  20 ноября 2014, 11:27

Олег Точенюк 19 ноября 2014, 21:23

Занятное замечание: "если я ничего не путаю, то наиболее заметно скорость поиска по хэш табле зависит от собственно длины ключа таблы"
 
Вы представляете что такое хеш доступ и как он реализуется при построении индекса? Вообще-то скорость доступа зависит не от длинны ключа (ну если мы не ассемблерный код хеш-функции анализируем и такты процессора с внутренними стеками да длину команд высчитываем), а от качества используемого алгоритма - хеш функции. Чем больше коллизий у алгоритма расчета тем медленнее поиск, так как выполняются различные дополнительные методы обхода коллизий и т.д.
 
PS: Не я понимаю что простое сложение байт строки в 10 символов и строки в 20 выполняется дольше, но мы то про базы данных, а не про что быстрее посчитается на уровне процессора и памяти.

По поводу хэш функции используемой в сапе в таблице есть тонкость: сап использует какую-то адаптивную функцию с коллизией не более 2 раз(описание попадалось в одном из старых курсов, сейчас не найду, но можно поискать), т.е. : если для хэш ключа есть 2 записи, то ок, если 3 - то они перестраивают таким образом, что бы было только 2 коллизии.
Возможно, что с развитием ядра. алгоритм изменился. Но ранее было так.
Про то что "мы про базу данных" - это вообще чушь. мы как раз не про базы данных, а про то, что выполняется на сервере приложений.
Заметки старого АБАПника (46)

Комментарий от  

Олег Точенюк

  |  19 ноября 2014, 21:26

Олег Точенюк 19 ноября 2014, 21:14

Ну вы их читали, но по факту так ничего в примеры кроме вот этого вот: "являются скорее уж вредными советами" не привели, поэтому беседа как бы ни о чем. Хотя я предложил вам ранее это сделать на конкретных примерах, где по вашему или совет не тот или граната не той системы.
 
По повожу технического редактора, ну я писал, Александры Дублин и Яков Михалыч Басок редактировали, Василий Ковальский вроде как рецензировал, но если для вас это ни о чем не говорит, то фиг с ним, оригинал тоже подойдет, хотя именно это издание я не читал. Но если вы думаете что мне было нечего делать, просто пересказать своими словами приведенную вами ссылку, то я тоже не возражаю.
 
PS: По поводу статей, именно статей тут по абапу их вообще-то мало (кажется 2), вы наверное имеете в виду авторские колонки/блоги. Их конечно же кроме автора вряд ли кто редактирует. Кстати, сделайте свою колонки, а мы почитаем...

Так извините, нашел переписку, по поводу общения правильно не правильно, это были не вы. Но тем не менее, все равно хотелось бы конструктивных замечаний.
Заметки старого АБАПника (46)

Комментарий от  

Олег Точенюк

  |  19 ноября 2014, 21:23

Денис Озорнов 18 ноября 2014, 09:51

На мой не скромный взгляд: тест по хэшу ни о чем.
1) скорость измерения для хэш-таблы не коррелирует линейно с числом строк в таблице
2) речь идет о микросекундах, т.е. скорее всего это погрешности связанные с накладными расходами на обслуживание работы с таблой собственно, а не на поиск.
3) для чистоты замеров стоит исключить перекладывание найденных данных, использовав вместо INTO конструкцию TRANSPORTING NO FIELDS
4) если я ничего не путаю, то наиболее заметно скорость поиска по хэш табле зависит от собственно длины ключа таблы.
ЗЫ: Непонятно про рекламируемую книгу: зачем она, если есть первоисточники
sap-press.com/abap-performance-tuning_2092

Занятное замечание: "если я ничего не путаю, то наиболее заметно скорость поиска по хэш табле зависит от собственно длины ключа таблы"
 
Вы представляете что такое хеш доступ и как он реализуется при построении индекса? Вообще-то скорость доступа зависит не от длинны ключа (ну если мы не ассемблерный код хеш-функции анализируем и такты процессора с внутренними стеками да длину команд высчитываем), а от качества используемого алгоритма - хеш функции. Чем больше коллизий у алгоритма расчета тем медленнее поиск, так как выполняются различные дополнительные методы обхода коллизий и т.д.
 
PS: Не я понимаю что простое сложение байт строки в 10 символов и строки в 20 выполняется дольше, но мы то про базы данных, а не про что быстрее посчитается на уровне процессора и памяти.
Заметки старого АБАПника (46)

Комментарий от  

Олег Точенюк

  |  19 ноября 2014, 21:14

Денис Озорнов 19 ноября 2014, 09:36

Вы уж простите, я книгу Точенюка не читал. Но я читал его заметки по производительности с сайта sapforum.biz. Могу сказать, что там были моменты, которые, на мой взгляд, являются скорее уж вредными советами. Т.е. модель "дешево и сердито" конечно хороша, но не стоит забывать про "кроилово ведет к попадалову".
Изданная книга это конечно хорошо, но был ли у нее тех.редактор? На примере статей этого ресурса по ABAP, можно сказать, что они не подвергаются рецензированию и редактуре (да какая редактура, если даже орфографические и синтаксические ошибки в статьях не вычищены?)

Ну вы их читали, но по факту так ничего в примеры кроме вот этого вот: "являются скорее уж вредными советами" не привели, поэтому беседа как бы ни о чем. Хотя я предложил вам ранее это сделать на конкретных примерах, где по вашему или совет не тот или граната не той системы.
 
По повожу технического редактора, ну я писал, Александры Дублин и Яков Михалыч Басок редактировали, Василий Ковальский вроде как рецензировал, но если для вас это ни о чем не говорит, то фиг с ним, оригинал тоже подойдет, хотя именно это издание я не читал. Но если вы думаете что мне было нечего делать, просто пересказать своими словами приведенную вами ссылку, то я тоже не возражаю.
 
PS: По поводу статей, именно статей тут по абапу их вообще-то мало (кажется 2), вы наверное имеете в виду авторские колонки/блоги. Их конечно же кроме автора вряд ли кто редактирует. Кстати, сделайте свою колонки, а мы почитаем...
Заметки старого АБАПника (46)

Комментарий от  

Денис Озорнов

  |  19 ноября 2014, 09:36

Юрий Сычов 18 ноября 2014, 11:39

печально то, что в СНГ только 2 нормальные книги на русском: Виталия Поцелуева и Олега Точенюка.
 
далеко нам уже до индусов и остальных - те книги пачками выпускают.

Вы уж простите, я книгу Точенюка не читал. Но я читал его заметки по производительности с сайта sapforum.biz. Могу сказать, что там были моменты, которые, на мой взгляд, являются скорее уж вредными советами. Т.е. модель "дешево и сердито" конечно хороша, но не стоит забывать про "кроилово ведет к попадалову".
Изданная книга это конечно хорошо, но был ли у нее тех.редактор? На примере статей этого ресурса по ABAP, можно сказать, что они не подвергаются рецензированию и редактуре (да какая редактура, если даже орфографические и синтаксические ошибки в статьях не вычищены?)
Заметки старого АБАПника (46)

Комментарий от  

Юрий Сычов

  |  18 ноября 2014, 11:39

Денис Озорнов 18 ноября 2014, 10:05

1) очень печально, если программер не может читать на английском хотя бы тех.литературу
2) - папа, зачем ты пьешь водку из горла? Возьми стакан!
   - Сынок, папе не нужны посредники!

печально то, что в СНГ только 2 нормальные книги на русском: Виталия Поцелуева и Олега Точенюка.
 
далеко нам уже до индусов и остальных - те книги пачками выпускают.
Обеспечение результативности SAP-обучения. Руководство (4)

Комментарий от  

Ильдар Дауранов

  |  18 ноября 2014, 10:40

В доступной форме приведен концептуальный алгоритм положительного решения достаточно сложной задачи по обеспечению результативности обучения. Может быть полезен не только специалистам  в области SAP-обучения, но и более широкому кругу ученых и практиков, занимающихся различного рода тренингами и обучающими семинарами.
С уважением,
И. Дауранов,к.э.н.
Заметки старого АБАПника (46)

Комментарий от  

Денис Озорнов

  |  18 ноября 2014, 10:05

Юрий Сычов 18 ноября 2014, 09:58

4) книга на русском. и она дешевле :)

1) очень печально, если программер не может читать на английском хотя бы тех.литературу
2) - папа, зачем ты пьешь водку из горла? Возьми стакан!
   - Сынок, папе не нужны посредники!
Заметки старого АБАПника (46)

Комментарий от  

Юрий Сычов

  |  18 ноября 2014, 09:58

Денис Озорнов 18 ноября 2014, 09:51

На мой не скромный взгляд: тест по хэшу ни о чем.
1) скорость измерения для хэш-таблы не коррелирует линейно с числом строк в таблице
2) речь идет о микросекундах, т.е. скорее всего это погрешности связанные с накладными расходами на обслуживание работы с таблой собственно, а не на поиск.
3) для чистоты замеров стоит исключить перекладывание найденных данных, использовав вместо INTO конструкцию TRANSPORTING NO FIELDS
4) если я ничего не путаю, то наиболее заметно скорость поиска по хэш табле зависит от собственно длины ключа таблы.
ЗЫ: Непонятно про рекламируемую книгу: зачем она, если есть первоисточники
sap-press.com/abap-performance-tuning_2092

4) книга на русском. и она дешевле :)
Заметки старого АБАПника (46)

Комментарий от  

Денис Озорнов

  |  18 ноября 2014, 09:51

На мой не скромный взгляд: тест по хэшу ни о чем.
1) скорость измерения для хэш-таблы не коррелирует линейно с числом строк в таблице
2) речь идет о микросекундах, т.е. скорее всего это погрешности связанные с накладными расходами на обслуживание работы с таблой собственно, а не на поиск.
3) для чистоты замеров стоит исключить перекладывание найденных данных, использовав вместо INTO конструкцию TRANSPORTING NO FIELDS
4) если я ничего не путаю, то наиболее заметно скорость поиска по хэш табле зависит от собственно длины ключа таблы.
ЗЫ: Непонятно про рекламируемую книгу: зачем она, если есть первоисточники
sap-press.com/abap-performance-tuning_2092
Введение в HANA Live для создания оперативных логистических отчетов (1)

Комментарий от  

Дмитрий Буслов

  |  15 ноября 2014, 00:45

В этой статье сравнивается подход к построению отчётности в BW на «классических» БД. Но на текущий момент есть BW on HANA. Возможна репликация непосредственно в DSO. И построение отчётности на данных приближенных к реальному времени в BW. На рис. 1 представлена модель использования BW, но в «классическом» виде сверху обычно строятся ещё кубы и агрегаты. Только построения дополнительных индексов в DSO будет недостаточно для производительной отчётности.

Кроме этого, хочется отметить,что HANA Live разворачивается из пакета и при импорте активируются все модели. Если исходных таблиц в физической схеме нет, то активация моделей падает. А так как большинство моделей зависят друг от друга, то это также влияет и на зависимые модели. В данном случае выручает массовая активация объектов.

Мэппинг физической схемы и схемы авторизации, которая создаётся при установке HANA Live влияет на доступ ко всем таблицам моделей, включая пересчёт валют. И единиц измерений. VDM (Виртуальные модели данных) которые предлагает HANA Live можно использовать не только в любых средствах отчётности, но также и писать SELECT-ы напрямую из ABAP-а, так как это самые обыкновенные ракурсы в HANA.

В плане расширения и дополнения также есть некоторые ограничения, так как для собственных Z-моделей, которые были скопированы в свои пакеты нельзя автоматически добавить в уже имеющуюся иерархию, так как сама иерархия ведётся в отдельной таблице. То есть HANA Live Browser или по-другому HANA Live Explorer не позволяет их вести, они все (модели) будут в разделе «не присвоенные».

2. Построение типовой системы управления ТОРО на платформе SAP ERP. Часть 1 (2)

Комментарий от  

Олег Точенюк

  |  13 ноября 2014, 19:40

Сергей Расолько 13 ноября 2014, 18:42

Виктор, спасибо за Ваши публикации.
У меня вопрос относительно "инициация процедур создания новой записи ЕО при приемке на склад МТО вновь поступающего оборудования", рассматривали ли Вы в теории, возможность использования функциональности "серийные номера" для решения данной задачи, либо использовали СН на практике? Если отклонили СН, то по каким причинам?
Спасибо за ответ.

Вообще-то серийный номер это одна из закладок ЕО, даже если вы будете использовать только серийные номера, все равно у вас будет создаваться запись серийного номера как объект единицы оборудования  в таблице EQUI, поэтому чего там отклонять? Ну только если вам в серийном номере интересен только сам серийный номер, тогда можно использовать без полной активации функциональности ЕО, только ракурс серийных номеров, но у меня чего-то обычно все потом выливается в доактивацию ракурсов ЕО, так как закладка только серийного номера довольно ограничена по информативности.
2. Построение типовой системы управления ТОРО на платформе SAP ERP. Часть 1 (2)

Комментарий от  

Сергей Расолько

  |  13 ноября 2014, 18:42

Виктор, спасибо за Ваши публикации.
У меня вопрос относительно "инициация процедур создания новой записи ЕО при приемке на склад МТО вновь поступающего оборудования", рассматривали ли Вы в теории, возможность использования функциональности "серийные номера" для решения данной задачи, либо использовали СН на практике? Если отклонили СН, то по каким причинам?
Спасибо за ответ.
Адаптация и автоматизация функционала SAP Dispute Management (SAP Управление спорами) (1)

Комментарий от  

Олег Башкатов

  |  13 ноября 2014, 13:34

В статье автор использует достаточно длинные пути к настроечным транзакциям.
Удобно использовать такие транзакции (можно создать папку в фаворитах):

  •  SRMCUSTOMIZING — Настройка управления записями
  •  SCASE_CUSTOMIZING — Настройка управления случаями
  •  RMPS_CUSTOMIZING — Настройка: госсектор: упр. записями
  •  DMWB — Document Modeling Workbench
  •  SCASE — Управление случаями
  • ORGANIZER — Управление записями
  • SRMREGEDIT — SRM Ведение таблицы регистрации.

Рис. 8. Вид меню настройки управления случаями при запуске транзакции SCASE_CUSTOMIZING

Переход к ориентированному на обработку данных проектированию с использованием SAP HANA (1)

Комментарий от  

Олег Точенюк

  |  12 ноября 2014, 23:28

Спорные какие-то приведены примеры в таблице 1. Например выборка данных во внутреннюю таблицу, чтобы получить максимальное или минимальное значение?! Не я понимаю что HANA обгонит Oracle на таком запросе как SELECT min/max и т.д., но тут вроде как не производительность базы данных измеряли, а новые и старые подходы, это выходит я по большей части все время новые подходы использовал, как и большинство знакомых. О, какие вы умные были, ханы еще небыло, а мы уже того... ее подходы использовали. Кстати, ABAP Database Connectivity (ADBC) - жесткая вещь. Ну т.е. типа если там DB6 или MS не к ночи будет вспомненный, то EXEC SQL это зло, а вот если это же аналог EXEC SQL, но к хане, то это уже уже и не то что бы зло, а это очень даже и плюс в карму.
 
В общем перефразируя одну цитату из очень старого фильма, можно сказать и так:
 
"Главное у человека не абап, а натурально ХВорма базы данных на HANA. Потому ежели человек c HANA, так ему уже свет переворачивается вверх ногами, пардон вверх дыбом. И тогда когда тому, одному которому, на Oracle будетЬ в SQL белое, так уже ему, на HANA, которому, будет уже как ну рябое!"
Продолжая использовать сайт, вы соглашаетесь на обработку персональных данных, собираемых с использованием cookie-файлов и сервиса «Яндекс Метрика» для анализа использования сайта и оценки эффективности маркетинговых кампаний. Более подробная информация представлена в Политике конфиденциальности.
Понятно