|   |   | 
| 
 | Вопрос с собеседования про ускорения загрузки ↓ (Волшебник 18.04.2023 21:38) | ☑ | ||
|---|---|---|---|---|
| 0
    
        nodrama 18.04.23✎ 16:06 | 
        Доброго времени суток. Не пятница но все же.. Тут не так давно смотрел вакансии что там интересного и в общем разок по собеседовался.. Вот один из вопросов с собеседования. Ответ/результат скажу позже, после ваших ;)
 Вопрос : Есть конфигурация 1c, не суть какая. Пустая по справочникам и документам. В ней есть не типовой справочник который имеет 1 реквизит, пусть будет Артикул. Мы сгенерировали некую таблицу, в которой миллионы артикулов. В общем дооооффиигаа (не повторяющихся все норм). И далее банально циклом пробежались и записали эти данные в этот справочник. Заняло это у нас допустим 12 часов. (сама обработка). Но нам надо быстрее и не на 5-10 минут, а явно быстрее. Как можно это осуществить? Сразу уточню. ОбменДанными.Загрузка=истина, ни чего не дает, проверок и т.д ни каких нет. Запись в транзакциях (Начать транзакцию) записать скажет 50к, зафершитьтранзакцию и т.д. Дало совсем мизерный прирост, который не значительный. Закинуть эту таблицу сразу в SQL средствами SQL, нельзя, это как минимум нарушает рекомендации 1с или как там правильно сказать, ну и база может быть и не на sql, а на Оракле (не знаю можно там так записывать на прямую или нет). но в общем нельзя. Вот как-то так. Что думаете ? | |||
| 23
    
        BeerHelpsMeWin 18.04.23✎ 16:30 | 
        (17) дв, заодно надо спросить, чем их не устраивает текущие 12 часов обработки? Надо каждый день полностью перезаписывать справочник в миллионы записей?     | |||
| 24
    
        Lama12 18.04.23✎ 16:31 | 
        Варианты экзотические.
 1. База при разворачивании должна иметь полностью заполненный справочник. Где и когда это делается - не важно. 2. Запихнуть базу и платформу в кэш 3 уровня AMD Epyc Genoa 9684X. 3. Весь справочник сразу вряд ли понадобится. Вообще отказаться от автоматического заполнения и вводить по мере необходимости пользователями. 4. В полях выбора сделать выбор из справочника и из таблицы. Если в справочнике элемент есть, брать из него, если нету, то создавать новый со значением выбранным из таблицы. 5. Хранить данные не в справочнике. 6. Взять базу с заполненным справочником, и одним документом. Удалить документ. 7. Вообще отказаться от хранения артикулов. Если их можно сгенерировать, то можно использовать алгоритм их формирования в логике работы программы. Ну это так, навскидку. | |||
| 25
    
        nodrama 18.04.23✎ 16:31 | 
        (23) я так же спросил. сказали тупо нужно, так как дедлайн ;)     | |||
| 26
    
        Garykom гуру 18.04.23✎ 16:32 | 
        (0) Создать подчиненную РИБ базу
 На отдельном шустром компе ее развернуть, создать элементы справочника Выполнить обмен | |||
| 27
    
        PR 18.04.23✎ 16:34 | 
        (25) То в (21) нагрузка базы для проверки производительности, то уже дедлайн     | |||
| 28
    
        nodrama 18.04.23✎ 16:34 | 
        (26) так это будет дольше. это надо развернуть базу, залить туда. а потом сделать обмен между базами.  сама загрузка в обмене в нужную базу может и быстрее пройдет. а заливка в подчиненную базу еще займет время в итоге получится + - то же самое ;) (24) ВОпрос был без фантазий, надо было ответить именно на данную ситуацию, а не предлагать другие способы из серии хранить в РС а не справочниках, отказться вообще от артикулов и т.д.
 именно данная ситуация и именно как ее ускорить)) а не избежать) | |||
| 29
    
        Garykom гуру 18.04.23✎ 16:35 | 
        (28) Проблемы индейцев ...
 Если эти лям элементов не могут быстро по РИБ то тут явно ограничение плафтормы и ответ: Никак. | |||
| 30
    
        nodrama 18.04.23✎ 16:36 | 
        (27) ну так сказали. я пытался выловить смысл а зачем а нафига.. но нет ;)
 ну возможно. сделать нагрузку посмотреть производительность до дедлайна) что бы сообщить результат ;).. они хотели видимо получить ответ несколько потоков в фоне. что я примерно так и сказал. так как мои отговорки. если это разово то куда спешить, и зачем это вообще нужно и предложения сразу в sql и т.д. и что есть РС а не справочник. не принимались)) | |||
| 31
    
        Волшебник 18.04.23✎ 16:38 | 
        (28) А там не было таких вопросов?
 Если бы Вы могли стать справочником, то каким? Продайте мне синтакс-помощник. Почему плюсики круглые? Представьте, что база разрушается, но ещё запускается. Какие три регистра вы спасёте? | |||
| 32
    
        nodrama 18.04.23✎ 16:40 | 
        Я вообще не понял как они от производительности сервера и 1с.. аля тест гилева (там конфа есть в свободном доступе для этого).. дошли до загрузки миллионной таблицы в справочник 1с ;). единственное что связало то и другое, что они сказали что мы сами хотим наполнить конфу 1с. для тестов производительности и вот решили начать с загрузки артикулов в справочники ))))     | |||
| 33
    
        OldCondom 18.04.23✎ 16:40 | 
        Перевести с автоматической на управляемую блокировку уже было?     | |||
| 34
    
        OldCondom 18.04.23✎ 16:41 | 
        И да, самый главный затык думаю был не в записи, а в чтении огромного файла.     | |||
| 35
    
        nodrama 18.04.23✎ 16:42 | 
        В общем мой ответ был SQL который сразу отказали ибо 1с не разрешает. потом несколько потоков фоном.  удовлетворил их или нет не знаю)  сказали до пятницы еще смотреть будут потом решение примут)     | |||
| 36
    
        d4rkmesa 18.04.23✎ 16:42 | 
        (14) Кстати, "чем отличается регистр сведений от справочника" - на этот вопрос какой у них правильный ответ? )     | |||
| 37
    
        nodrama 18.04.23✎ 16:43 | 
        (34) они толком не сказали что это за файл и где он вообще. сказали только сгенерировали таблицу артикулов. и залили циклом. но долго) на мой вопрос. а что за таблица и где она сказали не так важно, так как суть вопроса в другом)     | |||
| 38
    
        Krendel 18.04.23✎ 16:47 | 
        (37) Спрашивали про потоковую загрузку, ты или знаешь что такая существует, или нет     | |||
| 39
    
        PR 18.04.23✎ 16:51 | 
        (36) Там много отличий     | |||
| 40
    
        nodrama 18.04.23✎ 16:52 | 
        (36) Да я им накидал, так на вскидку шаблонными ответами. которые я выучил еще лет 8 назад с яндекса ;) Сказали, ок и перешли к слудеющему. 
 А вообще если перечислять и все. там и правда дофига отличий | |||
| 41
    
        Shur1cIT 18.04.23✎ 16:58 | 
        (0) Мне похожий задовали, но там в регистр нужно было из екселя + сопоставление по полям.     | |||
| 42
    
        toypaul гуру 18.04.23✎ 16:54 | 
        (0) на этот вопрос ожидается один (по их мнению) правильный ответ из (4). к прикладному смыслу это маловероятно что имеет какое-то отношение. проходил 2 таких собеседования (у нас при заходе на проект так положено).     | |||
| 43
    
        dmt 18.04.23✎ 16:55 | 
        (35) сколько предлагают?     | |||
| 44
    
        Garykom гуру 18.04.23✎ 16:55 | 
        (38) Даже загрузка в несколько потоков упрется в блокировки     | |||
| 45
    
        toypaul гуру 18.04.23✎ 16:55 | 
        (41) сейчас все "конторы", которые более-менее заморачиваются оптимизацией, задают этот вопрос. просто выучи правильный ответ и глупых вопросов типа "а зачем"? не задавай. не трать свои и чужое время :)     | |||
| 46
    
        Ботаник Гарден Меран 18.04.23✎ 16:55 | 
        Для записи не "по одному элементу в справочник" есть транзакции.     | |||
| 47
    
        OldCondom 18.04.23✎ 16:57 | 
        (44) кстати да. Во всяком случае с проведением чего-либо - это всегда блокировки и эффект сомнительный. Но здесь все таки одна таблица , с управляемыми блокировками может и взлететь. Но в (38) речь о потоковом чтении была. 
 ПотокДанных = ФайловыеПотоки.ОткрытьДляЧтения("document.txt"); ЧтениеДанных = Новый ЧтениеДанных(ПотокДанных); Cтрока1 = ЧтениеДанных.ПрочитатьСтроку(); ЧтениеДанных.Закрыть(); ПотокДанных.Перейти(200, ПозицияВПотоке.Начало); ЧтениеДанных = Новый ЧтениеДанных(); Cтрока2 = ЧтениеДанных.ПрочитатьСтроку(); ЧтениеДанных.Закрыть(); | |||
| 48
    
        toypaul гуру 18.04.23✎ 16:57 | 
        По-моему в типовых таким образом (в несколько потоков) загружается адресный классификатор (с какого-то сайта)     | |||
| 49
    
        nodrama 18.04.23✎ 16:58 | 
        (43) 250 на фулл удаленку.     | |||
| 50
    
        Shur1cIT 18.04.23✎ 16:59 | 
        (45) кстати чтобы почитать про оптимизацию? смотрел курс по подготовки к экперту, но там много лишней информации которая обычным сметным не нужна, а вот аналог "простые приемы разработки" в самый раз     | |||
| 51
    
        Волшебник модератор 18.04.23✎ 22:02 | 
        Периодически в ветке есть попытки нарушить правило:
 Запрещено обсуждение работодателей и условий работы в различных компаниях без их официальных представителей. | |||
| 52
    
        Shur1cIT 18.04.23✎ 17:04 | 
        (49) на ERP?     | |||
| 53
    
        toypaul гуру 18.04.23✎ 17:01 | 
        (50) читать про оптимизацию это все равно что по картинкам женщин любить. надо смотреть курс(ы) и в бой :)     | |||
| 54
    
        nodrama 18.04.23✎ 17:04 | 
        (52) ерп, ДокументоОборот     | |||
| 55
    
        nodrama 18.04.23✎ 17:03 | 
        после пандемии 50% вакансий на хх точно удаленка. куда не тыкну. либо прям в названии (удаленная работа) либо уже в условиях.. ну иногда 1 раз в день в офис.  ;)  вот думаю перестать кататься и найти удаленку.. присматриваю потихоньку )     | |||
| 56
    
        Shur1cIT 18.04.23✎ 17:03 | 
        (54) Ок значит у одного собеседовались:-) Когда анкету СБ их увидешь поплохеет:-)     | |||
| 57
    
        nodrama 18.04.23✎ 17:05 | 
        (56) А заполнял анкету СБ на прошлом заводе (полу государственном)... там 5 листов и вопросы очень интересные) 
 особенно пункты там были. а вы знаете о какой нибудь коррупции или каком либо нарушении, сотрудников данного предприятия ? Если да, то сообщелили бы ?)) и половина все в этом духе))) | |||
| 58
    
        Garykom гуру 18.04.23✎ 17:06 | 
        (47) Время затраченное на чтение 1 ляма элементов обычно незначительно с временем записи элементов справочников в базу.     | |||
| 59
    
        PR 18.04.23✎ 17:11 | 
        (46) Транзакции не ускоряют запись
 Это вам не семерка | |||
| 60
    
        nodrama 18.04.23✎ 17:12 | 
        (59) вроде как ускоряют.. но совсем не значительно.. если было 12 часов, ну станет 11.5 грубо говоря.. я как то тестил когда заливал номенклатуру вроде чуть пошустрее.. но там не миллионы миллионов было)     | |||
| 61
    
        Garykom гуру 18.04.23✎ 17:15 | 
        (59) Ускоряют
 (60) Нет, значительно ускоряют. Бывает на порядок, но кол-во элементов в одной транзакции надо подбирать опытным путем каждый раз. | |||
| 62
    
        PR 18.04.23✎ 17:15 | 
        (60) Вроде как говорят в Москве кур доят
 В семерке транзакция ускоряла, потому что это была особенность платформы В восьмерке не ускоряет Твои пять процентов в единственном эксперименте в разы меньше, чем разница из-за разогретости базы | |||
| 63
    
        PR 18.04.23✎ 17:16 | 
        (61) Проверял?     | |||
| 64
    
        Garykom гуру 18.04.23✎ 17:17 | 
        (62)+ Но транзакции могут и замедлить ))     | |||
| 65
    
        Garykom гуру 18.04.23✎ 17:17 | 
        (63) Да, проверял.
 Написал же что надо опытным путем подбирать. Бывает что самое быстрое вырожденный вариант по 1 | |||
| 66
    
        PR 18.04.23✎ 17:18 | 
        (64) А могут и вообще не повлиять, да
 Прекрасный разброс | |||
| 67
    
        PR 18.04.23✎ 17:19 | 
        (65) Тебе не кажется, что ты бредишь? :))
 То у тебя имеет смысл использовать транзакцию, потому что это ускоряет в десять раз, то лучше по одному элементу писать, а то как бы медленнее не было Может ты уже как-то поточнее сформулируешь? | |||
| 68
    
        Garykom гуру 18.04.23✎ 17:20 | 
        (66) От кучи факторов зависит.
 Как минимум транзакция может помочь стопорнув других юзеров/потоки блокировкой. | |||
| 69
    
        OldCondom 18.04.23✎ 17:20 | 
        (63) так это в целом логично. Либо для каждой записи своя транзакция пишет лог, либо одна скажем на 500 элементов.     | |||
| 70
    
        Garykom гуру 18.04.23✎ 17:20 | 
        (67) Куда уже точнее.
 Только ОПЫТНЫМ ПУТЕМ можно определить в каждом конкретном случае полезна ли транзакция. | |||
| 71
    
        OldCondom 18.04.23✎ 17:22 | 
        я как то напрямую в бд писал insertы на пару десятков миллионов записей. Повесил маленький сервер, который был для этих задач. Мне потом БДшник доходчиво пояснил, почему я дурак. Сказал по 1к в транзакции писать все.     | |||
| 72
    
        Garykom гуру 18.04.23✎ 17:22 | 
        (70)+ и ее размер     | |||
| 73
    
        Garykom гуру 18.04.23✎ 17:23 | 
        (71) На сервере оперативки было маловато     | |||
| 74
    
        Garykom гуру 18.04.23✎ 17:23 | 
        (73)+ разрядность     | |||
| 75
    
        Shur1cIT 18.04.23✎ 17:24 | 
        (71) почему нельзя? думал скуль довольно шустрая     | |||
| 76
    
        OldCondom 18.04.23✎ 17:24 | 
        (73) именно. После введения транзакций летало как пуля.     | |||
| 77
    
        PR 18.04.23✎ 17:24 | 
        (68) Рукалицо
 База с нуля Один справочник без кодов Один пользователь Оперативки 128Гб SSD чтение запись 7000+ | |||
| 78
    
        andryscha1c 18.04.23✎ 17:25 | 
        (76) этому есть какие то объяснения, или опытным путем получилось?     | |||
| 79
    
        PR 18.04.23✎ 17:26 | 
        (70) А, ну понятно
 Может быть все что угодно Влияет все Только замер в конкретной ситуации Прекрасные никому не всравшиеся рекомендации | |||
| 80
    
        OldCondom 18.04.23✎ 17:26 | 
        (78) Примерно так: Without a transaction, each INSERT is its own transaction. This means that SQL Server has to wait for the log record for the insert to be written to disk, so that the INSERT can be rolled forward if the server crashes and must restart.     | |||
| 81
    
        OldCondom 18.04.23✎ 17:27 | 
        плюс еще базу чистил, вот такая штука работала значительно быстрее чем без транзакций( я уже не помню сколько по времени, помню только сильно радовался, что все быстро стало): 
 -- РС Версии объектов. SET @countDel = (select count(_Fld22356) from _InfoRg22351 where _Fld22356 < @dateDelete); SET i = 0; WHILE (i <= @countDel/1000) BEGIN BEGIN TRAN T1 DELETE TOP(1000) FROM _InfoRg22351 WHERE _Fld22356 < @dateDelete SET i = i + 1; COMMIT TRAN T1 END PRINT 'РС Версии объектов OK' | |||
| 82
    
        nodrama 18.04.23✎ 17:31 | 
        (73) Так пока ты будешь тестить разное количество транзакций, что бы определить оптимальный вариант. есть вариант, и найдешь допустим. то пока ты искал о определял опытным путем. то быстрее было бы и так загрузить. если это разово ;) я образно.. а если это на постоянный основе, то конечно можно посидеть потыкать посравнивать )     | |||
| 83
    
        PR 18.04.23✎ 17:34 | 
        (82) Не не не, так нельзя
 Сейчас использование транзакций на 11 элементов даст выигрыш в 7.5% А через пять минут влажность в комнате повысится и уже все не так, не нужно транзакции использовать Транзакции дело такое | |||
| 84
    
        Garykom гуру 18.04.23✎ 17:36 | 
        (83) Как это не смешно но один знакомый (по одной работе) нам обоим товарищ.
 Когда то давным-давно хватался тем что у него для долгой большой загрузки кол-во элементов в следующей транзакции подбирается на лету. Путем сравнения затраченного времени на предыдущие транзакции. | |||
| 85
    
        Garykom гуру 18.04.23✎ 17:38 | 
        (84)+ Товарищ с коротким именем на букву А, а не длинным     | |||
| 86
    
        Ботаник Гарден Меран 18.04.23✎ 17:44 | 
        (85)
 И фамилия на Г? | |||
| 87
    
        Garykom гуру 18.04.23✎ 17:47 | 
        (86) нет, на С     | |||
| 88
    
        Garykom гуру 18.04.23✎ 17:48 | 
        (84) *хвастался     | |||
| 89
    
        Новиков 18.04.23✎ 17:54 | 
        истинно-правильный ответ то какой?     | |||
| 90
    
        Garykom гуру 18.04.23✎ 18:01 | 
        (89) Имхо на собесе от такого ответа ждут не "истинно-правильный ответ"
 А знания-опыт и умение рассуждать | |||
| 91
    
        Garykom гуру 18.04.23✎ 18:02 | 
        (90) *на такой вопрос     | |||
| 92
    
        Krendel 18.04.23✎ 18:55 | 
        (89) ставлю на ядра, потоки     | |||
| 93
    
        timurhv 18.04.23✎ 19:06 | 
        (77) транзакция в 50000+ элементов заблокирует всю таблицу без тюнинга MSSQL     | |||
| 94
    
        Dotoshin 18.04.23✎ 20:43 | 
        (0) Поделить файл на несколько частей и запустить загрузку каждой части на отдельном компе.     | |||
| 95
    
        timurhv 18.04.23✎ 21:03 | 
        (94) зачем отдельные компы?
 В БСП добавили многопоточную обработку: ВыполнитьПроцедуруВНесколькоПотоков ВыполнитьФункциюВНесколькоПотоков | |||
| 97
    
        Aleksey 18.04.23✎ 21:26 | 
        (95) предлагаешь перед вставкой внедрить БСП?     | |||
| 98
    
        experimentator76 18.04.23✎ 21:27 | 
        (0) воспользуюсь размытой формулировкой задачи (возможно намеренно)
 Создаем реквизит Артикул в табличной части справочника. Справочник.Создать ТЧ.Загрузить(ОгромнаяТаблицаАртикулов); Записать должно быть быстро. если нужно ссылаться на строку с артикулом - никто не мешает генерить идентификаторы и хранить их в полях ссылающихся объектов конфигурации. | |||
| 99
    
        H A D G E H O G s 18.04.23✎ 21:29 | 
        (98) 99999     | |||
| 100
    
        experimentator76 18.04.23✎ 21:29 | 
        сыто     | |||
| 101
    
        experimentator76 18.04.23✎ 21:30 | 
        (99) разве оно осталось? ну тогда не подходит     | |||
| 102
    
        experimentator76 18.04.23✎ 21:32 | 
        (99) хотя тоже можно обойти.
 артикул - это малоограниченная или неограниченная строка. тогда артикула можно писать в одну строку на сколько хватит здравого смысла :) | |||
| 103
    
        experimentator76 18.04.23✎ 21:33 | 
        через запятую или иной разделитель     | |||
| 104
    
        experimentator76 18.04.23✎ 21:36 | 
        или артикул - это хранилище значения :)
 но с индексированием могут быть заморочки | |||
| 105
    
        MyNick 18.04.23✎ 21:37 | 
        (0) Правильный ответ - запросить конфигурацию сервера.
 Потом громко рассмеяться, порекомендовать выкинуть это овно и купить нормальное железо. - Поздравляем, Вы приняты. | |||
| 106
    
        experimentator76 18.04.23✎ 21:37 | 
        (99) или по достижении предела создавать новый элемент справочника.
 в общем я на сегодня закончил :) | |||
| 107
    
        Волшебник 18.04.23✎ 21:39 | 
        (105) Правильнее сначала узнать режим базы: файловая или серверная, а если серверная, то какой сервер СУБД. Иначе услышите "Мы вам перезвоним"     | |||
| 108
    
        experimentator76 18.04.23✎ 21:54 | 
        (107) а если MS SQL то спросить на какой OS :)     | |||
| 109
    
        MyNick 18.04.23✎ 21:55 | 
        На самом деле все просто.
 Кажытсо работодатель имел ввиду, что нужно отключить в метаданных справочника контроль уникальности кода и автонумерацию (код присваивать самому при загрузке). Даже на моем компике 10 летней давности мульен записей в файловой базе создается менее пяти минут. 12 лямов будет за час. На нормальном железе думаю до сотки лямов за час набьется. За 12 часов получится лярд и более, а это уже далеко не "несколько лямов" Поэтому либо (0) забыл про эти галки, либо вариант (105) | |||
| 110
    
        Волшебник 18.04.23✎ 21:57 | 
        (109)👍 Красивое решение!     | |||
| 111
    
        experimentator76 18.04.23✎ 22:02 | 
        (110) не по ТЗ     | |||
| 112
    
        PR 18.04.23✎ 22:02 | 
        (105) в админы     | |||
| 113
    
        experimentator76 18.04.23✎ 22:03 | 
        "В ней есть не типовой справочник который имеет 1 реквизит"
 то есть ни кода ни наименования у справочника нет | |||
| 114
    
        experimentator76 18.04.23✎ 22:03 | 
        (112) разжаловать     | |||
| 115
    
        experimentator76 18.04.23✎ 22:04 | 
        (110) не опускай тему до пятницы :))     | |||
| 116
    
        Волшебник 18.04.23✎ 22:04 | 
        (113) Код и Наименование имеются по умолчанию + 1 реквизит Артикул     | |||
| 117
    
        experimentator76 18.04.23✎ 22:05 | 
        (116) ТЗ неточное и отправляется на доработку.
 с таким прогать начинать нельзя | |||
| 118
    
        Волшебник 18.04.23✎ 22:06 | 
        (115) Уже всё решили, загадку разгадали. Тут больше нечего обсуждать. Осталось только дождаться результата собеседования. Я почему-то уверен, что кандидат будет отклонён, потому что нельзя публиковать вопросы с собеседования, да ещё публиковать название компании (которое я тщательно подтирал за ним). Он совершенно не умеет держать язык за зубами.     | |||
| 119
    
        Грю 19.04.23✎ 00:10 | 
        (0) Не помню уже как именно в 1С это делается, давно с ней не работал. Но суть в следующем:
 Создать какой-либо новый объект метаданных с табличной частью, типа документа, например. И чтобы в табличной части строками являлись/содержались элементы справочника. Чтобы при проведении/записи этого документа, записались все эти строки сразу пачкой, а не по одному в цикле. Может не точно объяснил, поправьте с поправкой на 1С-овскую терминологию, но думаю что идея понятна: Запись пачкой, лююым из доступных способов. | |||
| 120
    
        ILM гуру 19.04.23✎ 07:06 | 
        Рарус на конференции в Новосибирске, рассказывал как они грузили все продажи, закупки и логистику для одной конторы за 4 часа. Создавали документы из регистров сведений. Сначала грузили регистры в несколько потоков, потом сразу в фоне, в несколько потоков загружали данные из регистров в документы. Причём после успешной загрузки данные в регистре сведений удалялись, получался супер быстрый ввод в регистры сведений, и помедленее уже в документы. Причем заливались все продажи за день по каждому магазину в одну базу, а из неё агрегаты уже заливались в управленческую базу для анализа, оплат и т.д. Было это в году 2014, и лили они около лярда строк в день.     | |||
| 121
    
        Valdis2007 19.04.23✎ 10:26 | 
        (0) это вопрос на смекалку ...ключевая фраза здесь -"и записали эти данные в этот справочник"...После этого у вас уже есть база с таким справочником, соответственно выгружаем в дтэшник, и загружаем в новою конфу когда надо!))     | |||
| 122
    
        Волшебник 21.04.23✎ 14:09 | 
        (121)🔥 Оригинально     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |