Имя: Пароль:
LIFE
Юмор
OFF: Программистов в т.ч. 1С не хватает, пусть юзеры сами "программируют"
,
0 Garykom
 
гуру
06.06.21
12:38
Навеяло
https://habr.com/ru/company/uipath/blog/560902/
"Лайфхаки для роботизации 1С"

Сам отношусь скептически, хотя и предлагал нечто подобное для замен КД и прочих синхронизаций

Когда метаданные сильно разные и все сложно, а вот внешне интерфейс похож
И записываем действия пользователя по копи-пасте из одной конфы/формы полей в другую конфу/форму и затем повторяем в "роботе"
1 Garykom
 
гуру
06.06.21
12:42
(0)+ В 1С кстати давно есть Vanessa-Automation
https://habr.com/ru/post/418303/
2 Вафель
 
06.06.21
12:50
Тенденция как раз наоборот. Юзер как макака жмёт только 1 кнопку и не думает вообще
3 vde69
 
06.06.21
12:50
(0) открой для себя кд3 и их универсальный формат обмена
4 Вафель
 
06.06.21
12:54
С бд у меня как то не сложилось.
Ибо бдд тесты быстрее протухают (более чувствительные к изменениям) и гораздо дольше запускаются ибо нужен старт отдельного клиента тестирования
5 Garykom
 
гуру
06.06.21
12:55
(3) 1. Для самописной или сильно переделанной типовой конфы КД3 (с его преобразованием в некий "универсальный" формат EnterpiseData и назад) сами понимаете
2. Программист нужен, у меня была идея что именно сам продвинутый юзер легко переносит список например контрагентов ли сотрудников/физлиц из одной конфы/файла ёкселя в другую конфу/файл
6 Вафель
 
06.06.21
12:58
Ну кликатель можно на Ванессе сделать.
Типа брать Эксель и накликивать в базу
7 Garykom
 
гуру
06.06.21
13:00
(6)+ У меня сейчас значительная часть работы именно такой "кликатель"
Конечно я это делаю кодом на 1С
8 Вафель
 
06.06.21
13:01
Ну если много разовых загрузок то можно и Ванессу изучить
9 vde69
 
06.06.21
13:04
(5) если в спмописеке есть фабрика хдто нужного формата, то программист не нужен
10 Вафель
 
06.06.21
13:07
(9) трансляция объектов в фабрику не автоматом же происходит
11 Aleksey
 
06.06.21
13:07
Один раз такое делал. Нужно было ввести установку новоого вида цен для части поступлений. Наваял скрипт на кликери и он тупо долбился создавая нужная документы.
Помимо проблем из комментарий на хабре (сбился фокус, не отработал буфер обмена и т.д.) столкнулся с подбором таймингов (одно и тоже действие 1с может отрабатывать за разное время) т.е. скрипт запускает следующее действие, а 1с еще не закончил предыдущее
12 Вафель
 
06.06.21
13:08
Ну в Ванессе не нужно тайминг подбирать
13 Aleksey
 
06.06.21
13:08
(5) Ну да, особенно если нужно переносить из 7.7 екселя, с сайта в 8-ку которая лежит во фреше
14 Вафель
 
06.06.21
13:08
Но вот фокус может уйти
15 vde69
 
06.06.21
13:15
(10) будешь удивлён, автоматом...
В этом и есть прелесть кд3.
Если конфа имеет поддержку, ей пофиг с кем у неё будет обмен, и настраивается по щелчку.

Ну а минус кд3 это то, что как только захочешь что то не типовое покинуть, то тут только с программистом
16 Garykom
 
гуру
06.06.21
13:18
(15) типовой обмен УТ11-БП3 погугли и офигей от кол-ва тем/ошибок
17 Aleksey
 
06.06.21
13:29
(15) это так не работает. Мне нужно было перекинуть документ из бп3 в ут11. Ну думаю есть же встроенный перенос (выгрузка загрузка EnterpriseData). Выбрал, выгрузил а загрузить не смог, кучу ошибок писал. Так что 1С как всегда, нет там универсальности. Любое отклонение от генеральный линии партии карается вызовом программиста
18 Злопчинский
 
06.06.21
14:07
(2) ну, уменя примерно в 77 так и сделано во многих местах. Теперь, переходя на УНФ девки пищат от количества тыканий и ручной работы привыкши "Сергей Михайлович, а в 77 это все автоматом было..." Что я могу сказать, я жне прогаю на 8-ке? - "жрите кактус!" ;-)
19 Garykom
 
гуру
06.06.21
14:14
(18) Самый облом что в современных конфа на 8-ке хрен уже сделаешь подобное
Там уже тупо сами разрабы походу не понимают что они наговнокодили, судя по левым реквизитам и невызываемому коду
20 Garykom
 
гуру
06.06.21
14:15
(19) *левым неиспользуемым реквизитам и невызываемому ниоткуда коду, оно просто есть и не используется
21 Злопчинский
 
06.06.21
14:17
(19) ну, это нормальная ситуация, когда ресурса нет. у меня такого тоже есть но мало. потому что масштабы не соизмеримы.. ;-)
22 Garykom
 
гуру
06.06.21
14:19
(21) там не в ресурсе проблема а в его переизбытке но не того уровня
вместо пары сеньоров там толпа недомидлов
23 Злопчинский
 
06.06.21
14:22
(22) вид сбоку ;-)
24 Garykom
 
гуру
06.06.21
14:22
(22)+ Платформа 1С да начала тормозить но она все еще хороша
Но типовые тиражные решения на платформе 1С (конфигурации) превращаются на глазах в какую то хрень
25 Garykom
 
гуру
06.06.21
14:28
(24)+ https://i2.paste.pics/0464c54472296b615be08c5bcf0e21e0.png
это простой замер времени простого открытия формы документа ЭлектронныйДокументИсходящийЭДО

13 тысяч строк! 13 тысяч строк кода выполняются при открытии формы документа!
Это пипец
И там невозможно найти/понять откуда он берет данные из базы
26 Garykom
 
гуру
06.06.21
14:31
(25)+ кто то ипанулся
или я или не я
27 Вафель
 
06.06.21
14:32
Отладка бспшных вещей это конечно вещь в себе.
Мне кажется там специально консилиум собирали чтоб никто ничего не смог отладить
28 CepeLLlka
 
06.06.21
14:54
(24)Эт да.. Всё страшнее и страшнее обновы ставить.. Потому что как обнова, знай беда.. разгребать ошибки, ждать патчи и т.д..
29 DimVad
 
06.06.21
15:01
Собственно, это и есть именно то, что отвращает меня от современных конфигураций на УФ.
Ну программист я. Звонит юзер с проблеммой - чаще всего я сразу запускаюсь под ним (например, через ИР) и буквально в несколько шагов попадаю на проблемму. Это легче чем думать на старте "что же там может быть".

Попробовал на современных конфигурациях (erp в тестовом режиме, кадры и бухгалтерия - на рабочих базах, с реальными проблеммами пользователей). Йо-моё... все в РАЗЫ медленней. Т.е. теперь надо действовать как консультант а не как программист. Т.е. мне это всё надо знать а не жить в конфигураторе.

Пичалька.
30 Garykom
 
гуру
06.06.21
15:07
(29) Это не пичалька это баланс не удержали между прог/конс в одном месте
В больших ЯП там давно пришли к идее что монолит надо рубить на микросервисы, когда сложность начинает зашкаливать
Далее все просто каждый микросервис отдельно тестим, находим какой или какая пара дает сбой и работаем только с ними
Причем можно поменять версию сбойного микросервиса "на предыдущую" и пока так посидеть с обрезанным функционалом, пока правим
31 DimVad
 
06.06.21
15:09
(30) Думаю, 1с не скоро до этого дойдёт...
32 Garykom
 
гуру
06.06.21
15:09
(30)+ В 1С же к сожалению подсистемы вроде и есть но это все только ухудшило и почти не помогает
33 Garykom
 
гуру
06.06.21
15:10
(31) там местами есть попытки реализовать блочность на процедурах но такое себе
ибо интерфейсы не стандартизированы
34 DimVad
 
06.06.21
15:13
(33) По любому 1С для перехода к микросервисной архитектуре надо переписать всё. А это точно не быстро.
35 Вафель
 
06.06.21
15:18
(34) смотря что ты имеешь ввиду под микросервисами.
Так то сервер 1с можно запустить с 1 ролью.
Те наделать бинарников под каждую роль не проблема
36 Garykom
 
гуру
06.06.21
15:19
(34) идея микросервисов не в http/rest а в идее разделения монолита на минимально возможно независимые друг от друга части
со стандартизированным и документированным актуально интерфейсом (вызов, данные, ответ)
37 Garykom
 
гуру
06.06.21
15:19
(35) см (36)
38 Garykom
 
гуру
06.06.21
15:20
(36)+ по сути микросервисы это тот же ООП в части абстракции/инкапсуляции, где отказались от наследования и полиморфизма за пределами каждого микро
39 Вафель
 
06.06.21
15:23
(36) наверняка все это в сервере есть ибо иначе как можно выделять запуск по полям?
40 Garykom
 
гуру
06.06.21
15:27
(39) сервер это платформа см (24)
проблема с конфами
41 Вафель
 
06.06.21
15:30
А нужна именно микросервисная конфа?
42 Злопчинский
 
06.06.21
15:31
я сильно сомневаюсь что конфы удастся сильно разблочить.
для грамотного разбиения на блоки надо овердохрена архитектурно и алгоритимически порабатывать струткуру конф. при подходе ХХП! - это вряд ли... Конфа - это ж не просто запросом выдернуть из пары таблиц выборку...
43 Вафель
 
06.06.21
15:33
В блочной конфе появится другая проблема -
Зависимость от версий блоков (привет Линукс)
44 Garykom
 
гуру
06.06.21
15:35
(41) не обязательно
просто легкодорабатываемая если в ней вроде и дофига всего но того что очень надо нет

Например мы активно используем ЭДО и это идиотизм что до обновления БЭД допустим нельзя было разом много эл.доков на бумагу вывести, только по одному заходя в каждый и там печать
Но сейчас даже отобрать по дате отправке или получения контрагентом или подписания нельзя!!!
45 Garykom
 
гуру
06.06.21
15:36
(43) сейчас разве не так? Версии подсистем открой
46 Вафель
 
06.06.21
15:36
(45) конфа едина и об совместимости заботится поставщик, а придётся тебе
47 Garykom
 
гуру
06.06.21
15:38
(46) в линуксе пакетная система и зависимости, можно тоже самое
и поставщик может выдавать совместимые версии "пакетов"
как уже сейчас типа декларируется для разных конф между которыми есть типовая синхронизация ))
48 Вафель
 
06.06.21
15:38
Чтоб конца легко дорабатывалась нужно попроцедурно разделить получение р обработку данных и вывод само собой отдельно. Никаких выборок и тп
49 Garykom
 
гуру
06.06.21
15:39
(48) выборки будут просто внутри каждого "микро"
50 Злопчинский
 
06.06.21
15:41
(48) выборка - набор данных
51 Злопчинский
 
06.06.21
15:42
(48) это и есть "овердофига думать при ПРОЕКТИРОВАНИИ конфы". если сделать все на микросервисах без единйо концепции это имхо будет трэш похуже текущего
52 Вафель
 
06.06.21
15:46
(50) проблема выборки а том что она Рид онли и ее нельзя по простому доработать
53 Garykom
 
гуру
06.06.21
16:06
(51) Там принцип разделяй и властвуй
Замедляется разработка нового ибо надо согласовывать интерфейсы
Получаем общее торможение ибо хороший небольшой монолит может шустрей чем куча разных микросервисов
Но кратное упрощение разработки и поиска/исправления багов, ибо не надо весь монолит в памяти держать разработчику а только конкретный микро с входом/выходом
54 Djelf
 
06.06.21
16:16
(0) Не взлетит. Юзверя все тупее и тупее поступают.
Скоро их на бревна пилить получится...
55 H A D G E H O G s
 
06.06.21
16:32
(48) это начали делать в ерп, кстати.
56 Новый1сник2
 
06.06.21
17:45
(0) зря КД 2 похоронили, то что можно было поправить за полчаса час, сейчас отнимает значительно больше времени, особенно с устаревшими конфигурациями типа УТ 10.3.
и выбора не так много, либо свои обработки писать, либо обновлять в хлам переписанные конфы.
конечно есть свои плюсы, можно заработать на этих обменах. но какой то осадочек неприятный,
это как в пандемию на гробах зарабатывать.
57 Dmitry1c
 
06.06.21
17:47
(56) никто кд2 не хоронил
58 Новый1сник2
 
06.06.21
17:52
(58) в новых версиях уже универсальный формат, или я что то пропустил?
настраивал обмен УНФ- БУХ, столкнулся с тем что универсальный формат версии 8 глючный (не выгружал некоторые документы) пришлось в конфигураторе унф прописать формат 1.6, тогда заработало.
59 Новый1сник2
 
06.06.21
17:58
(58) = (57)
60 Prog111
 
06.06.21
19:05
(1) Никак не могу понять, как работает автоматическое тестирование на 1С и в чем его смысл? В примере там создание и проведение накладной. Так там на создание теста времени уйдет в 10 раз больше, чем если я открою накладную в режиме предприятия, сделаю подбор и проведу её.
61 acanta
 
06.06.21
19:06
(60) во всех возможных режимах и в каждом последующем релизе?
62 Гений 1С
 
гуру
06.06.21
19:07
(3) называй вещи своими именами - не кд3, а коммерсML
63 Garykom
 
гуру
06.06.21
19:11
(62) ты меня в очередной раз убил своей неграмотностью
64 Гений 1С
 
гуру
06.06.21
19:13
(29) проблема не в УФ, а в сложности конфигураций
65 Prog111
 
06.06.21
19:13
(61) Какие могут быть режимы? Так в каждом последующем релизе логика программы может меняться, какой смысл писать тест под алгоритм, который через полгода заменят на другой?
66 Гений 1С
 
гуру
06.06.21
19:13
(63) ну Энтерпрайз Дата
67 Garykom
 
гуру
06.06.21
19:20
(60) (65) ВВ команде 10-50 разработчиков
Каждый пилит какую то фичу (или несколько) на спринте
Допустим фичу добавили в мастер
Как проверить что разраб фичи не накосячил и не появилось куча ошибок?
Быстро проверить и без кучи тестеров?
Автоматическое тестирование помогает если все тесты (интерактивные хотя бы аля действия юзера) прошли то есть вероятность что багов минимум
Написал фичу - чтобы новые/другие разрабы ее не испортили - напиши к ней свои тесты и пусть ипутся пока не пройдут
68 Garykom
 
гуру
06.06.21
19:21
(67)+ Да часто тесты падают не потому что баг просто фича меняет логику - надо понять это и исправить тесты
69 Prog111
 
06.06.21
19:25
(67) 50 разработчиков - я думаю, даже над ЗУПом столько народу не трудится.
Короче говоря, баловство это чисто для самой 1С))
70 Ivan_495
 
06.06.21
19:28
тесты дело хорошее, даже при 3х разрабах, но писать их должны тестировщики в паре с архитектором и аналитиком.
71 ДедМорроз
 
06.06.21
23:12
Вы напишете тест документа,а потом горе-архитекторы разобьют его на два.
Проблема в том,что 1с так и осталась бкхгалтерской программой,хоть завезли и бизнес-процессы и задачи,но вводят документы без всякой привязки.
72 Злопчинский
 
07.06.21
01:24
(71) а что/как привязывать документы?
бухгалтерия всегда по сути была учетом документов.
73 rphosts
 
07.06.21
02:43
(0) не прошлой работе был один юзер... он умел в режиме пользователя крутить-вертеть схему компоновки. Хорошо его помню как исключение из общей массы пользователей.
У пользователей другие служебные обязанности многие по которым весьма толковые
74 DimVad
 
07.06.21
06:58
(64) "проблема не в УФ, а в сложности конфигураций" - это понятно. Я лет 5 назад устраивался на УФ. Без проблем прорешал их тестовые примеры просто почитав перед этим "Разработка управляемого интерфейса" Радченко-Хрусталёва. Я умею читать :)

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

Повторюсь - не было ничего, что бы я не смог сделать в разных конфигурациях на УФ. Просто в той системе преимущество не у программиста а у тех, кто уже знает "какую галочку надо ставить" в какой конфигурации. А вот в УПП я постоянно пилю то, что в ней нет. Поэтому я и хочу сидеть на ней "до конца" - а там видно будет. Может продлят и после 2026 года. А может появятся альтернативы. А может я зарегистрирую своё ИП на упрощёнке и стану консом на выбранной современной конфигурации которую изучу "до корочки". Или вернусь к программированию на дельфи :) Там видно будет.

Если я могу что-то делать - это не значит что мне надо это делать.
75 DrZombi
 
гуру
07.06.21
07:13
(74) Галочники... :)
76 ptiz
 
07.06.21
09:09
Много лет талдычу, что 1С убивает рынок программирования на своей платформе безумной сложностью типовых.
(30) "надо рубить на микросервисы" - сейчас в роли микросервисов (или микрофункций) выступают процедуры общих модулей. Проблема еще в том, что 1С часто меняет интерфейс доступа к этим функциям (перетасовывает между общими модулями или переименовывает) - это вообще ни в какие ворота.
77 Масянька
 
07.06.21
09:13
(71) Именно - бухгалтерская учетная программа.
А тормозит-то так почему?!
78 ДенисЧ
 
07.06.21
09:21
(77) Бухгалтерия - очень сложная отрасль... Ты количество законов действующих видела?
79 Ботаник Гарден Меран
 
07.06.21
09:25
(76)
Хотели, чтобы типовые писали настоящие программисты? Вот они и пишут.
Вот код, в который заходит заполнение счетов учета после изменения договора.
Кто такие эти сиблинги и кто их пустил программить в БП?

// Обеспечим связи между разными правилами - подчиненные правила смогут получать данные от владельца и сиблингов
    ВходящееСообщение = Неопределено;
            
Если ВладельцыБезСообщений[ИндексВладельца] = Неопределено Тогда
    // Получаем сообщения от владельца
    ВходящееСообщение = ВсеСообщения[ИндексВладельца];
Иначе
// Эмулируем сообщение от владельца
    РеквизитВладелец = СвойствоВладельцаПравила(Правило, "Реквизит");
    Если ЕстьСвойствоСтруктуры(Элемент, РеквизитВладелец) Тогда
        ВходящееСообщение = Новый Структура;
        ВходящееСообщение.Вставить("Владелец", Элемент[РеквизитВладелец]);
        ВсеСообщения.Вставить(ИндексВладельца, ВходящееСообщение);
    КонецЕсли;
    ВладельцыБезСообщений.Удалить(ИндексВладельца);
КонецЕсли;
80 ptiz
 
07.06.21
09:26
(79) Буквы понимаю, смысл - нет. Трындец какой-то.
81 DrZombi
 
гуру
07.06.21
09:27
(76) >>>Много лет талдычу, что 1С убивает рынок программирования на своей платформе безумной сложностью типовых.

Почему?
Не так уж и сложно там, просто вместо 2-ух часов, надо потратить 4-ре. Один раз. А так не так все сложно.
82 ptiz
 
07.06.21
09:30
(81) Не один раз. А каждый раз, на каждую доработку. И хорошо, если 4, а не 8.
83 Garykom
 
гуру
07.06.21
09:39
(80) там сейчас 90% конфы в таких буквах без смысла
а еще куча патчей-расширений (32 штуки сча было 42 до этого в типовой БП3) сверху
84 Garykom
 
гуру
07.06.21
09:43
(83)+ имхо 1С идет явно куда то не туда
да и деятели из (0) тоже
эмулировать/имитировать действия юзера вместо продвижения общих API и их использования это явный идиотизм
85 ДедМорроз
 
07.06.21
13:18
Сиблинг это дочернее окно обычно элемент управления в терминологии microsoft windows api.
И там действительно есть механизм уведомления владельца о сообщениях в дочерних окнах через WM_PARENTNOTIFY,но это низкоуровневый механизм,с которым программисты не работают,т.к.есть классы и их переопределяемые методы.
И с сообщениями можно встретиться только на старом добром Си,но там нужно очень аккуратно действовать,так как можно попасть в вечную рекурсию.
Наверное,хорошо,если 1с когда нибудь научится перехватывать сообщения клавиатурного и мышиного ввода без сторонних компонент,но большинству программистов 1с это будет не по зубам.
86 Ботаник Гарден Меран
 
07.06.21
13:40
(85)
Вопрос не в сиблинге как термине.
А в том, что в компилируемом языке можно как минимум посмотреть типы передаваемых параметров, структуры данных.
В 1С, как интерпретируемом языке, среда разработки не может подсказать типы, и всё зависит от документирования и описания.
Смотрим. Не осилили документирование. Копать такое можно долго, разбор в результате одноразовый и повторно не применимый, т.к. в других модулях другой типовой разработчик по-другому архитектурил.

// Детальный алгоритм - как из настроек и данных заполнения вычисляется счет,
// какие значения используются по умолчанию - можно узнать, заглянув в ЗаполнитьРеквизит()
// и вызываемые из него методы.

// Параметры - см. НовыйПараметрыЗаполненияРеквизита()
Процедура ЗаполнитьРеквизит(Параметры)
    
    // Это функция-маршрутизатор.
    // Громоздкий прикладной код следует выносить в отдельные процедуры
.... //дальше длинный case, вызывающий другие процедуры
КонецПроцедуры

Функция НовыйПараметрыЗаполненияРеквизита()
    
    // Параметры используются как для процедур заполнения реквизита,
    // так и для процедур проверки.
    // Модифицируемые и возвращаемые параметры используются только в процедурах заполнения.
    
    Параметры = Новый Структура;
    Параметры.Вставить("Элемент");
    Параметры.Вставить("Правило");
    Параметры.Вставить("ПланВыполнения");
    Параметры.Вставить("НастройкиЭлемента");
    Параметры.Вставить("КешОбщихЗначений");
    // Модифицируемые параметры
    Параметры.Вставить("ВходящееСообщение",  Новый Структура);
    Параметры.Вставить("ИсходящееСообщение", Новый Структура);
    // Возвращаемые параметры
    // Если указать Значение, то оно затрет то, что указано в документе.
    Параметры.Вставить("Значение");
    // Если не указать Значение, то может быть использовано ЗначениеПоУмолчанию. В двух случаях: если в документе ничего не указано или если установлено Очистить
    Параметры.Вставить("ЗначениеПоУмолчанию", ПланыСчетов.Хозрасчетный.ПустаяСсылка());
    Параметры.Вставить("Очистить", Ложь);
    
    Возврат Параметры;
    
КонецФункции
87 Garykom
 
гуру
07.06.21
13:46
(86) так и я про что
уровень конф 1С больших вырос до того что нужны сильно или строгое ООП или строгое разделение на микросервисы (под этим подразумеваю в т.ч. разделение на независимые блоки внутри одной пусть единой системы)
короче не дичайший монолит как сейчас

монолит можно для MVP а для нормального развития/поддержки надо разделять
88 Garykom
 
гуру
07.06.21
13:47
(87)+ в т.ч. для меня "монолит" это даже если разделено и все передается туда-сюда но интерфейсы передачи на стандартизированы и не задокументированы
89 Garykom
 
гуру
07.06.21
13:48
(88)+ нельзя взять и в одном месте все понять
надо обязательно ползти в кучу мест (привет монолит) чтобы понять а что там то творится, откуда вот эта структура, что внутри и науя все это!!!
90 Garykom
 
гуру
07.06.21
16:37
Уже старенькое

https://habr.com/ru/company/neuronet/blog/560182/
"Microsoft разработала ИИ-систему, преобразующую простые текстовые запросы в код"

"Обычный текст в код? Так разве бывает?

В целом, да, нейросеть способна преобразовать не самые сложные вопросы вроде «найти товары, название которых начинается со слова kids». Система обрабатывает такой запрос без проблем, выдавая результат вида «Filter('BC Orders' Left('Product Name',4)=»Kids")".

Пока что нейросеть работает лишь с одним ЯП — языке с открытым исходным кодом Power FX, основанном на Excel. Как и говорилось выше, система распознает лишь один язык — английский. Разработчики обещают, что дальше будет больше языков."
91 Garykom
 
гуру
07.06.21
16:43
(90) Понятно дело пока это полная хрень
Но конечный итог всего этого в виде неких Искинов которые в массе заменят программистов вполне виде
И останутся только разрабы искинов, их обслужка и работа прогом там где на искин денег нету
92 Злопчинский
 
07.06.21
19:21
(83) чем более универсализирован код - тем он абстрактнее
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.