Pull to refresh
23
0
Карташев Сергей @Elisy

IT-менеджер

Send message

ALTER DATABASE [mydb] SET ALLOW_SNAPSHOT_ISOLATION ON

ALTER DATABASE [mydb] SET READ_COMMITTED_SNAPSHOT ON

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

Не очень понятно, где альтернатива 1С? Фреймворков много, а конкурента 1С никто до сих пор не написал. По мне, так 1С с оберткой из Asp.Net Core поднимает систему на качественно новый уровень. 1С дает скорость разработки, .Net Core — стек новейших технологий. В этом симбиозе и есть возвращение былой славы.
Еще интересны выступления профессора Савельева на YouTube. Он много рассказывает про особенности работы мозга. Есть выступления про нарушения работы, например, при инсульте.
Я бы мог углубиться в тему, что вставленное на страницу youtube видео содержит ссылку на автора и его канал. Но вижу, что соавторство и сотрудничество при меркантильном подходе не получится. Один создал навороченную программу по декомпилированию, но никому не даст результат. Второй — создал видео, но никому его не покажет. Но оба сидят на страницах сайта с выложенными кем-то бесплатными материалами и результатами. Вы дополняете друг друга и удивительным образом нашли друг друга среди миллиардов страниц в Интернете. Чудеса на Рождество все-таки случаются))).
Давайте восстановим видео. Можно на моей странице декомпилирования, можно в новой статье на Хабре. У меня были похожие требования от 1С, я их вежливо отправил жаловаться моему хостеру. Хостинг у меня в США, домен com тоже зарегистрирован зарубежом. Забавно было бы увидеть суть их претензий. Вы же видите, Хабр тоже не удалил эту статью, на него можно рассчитывать. На Инфостарт нельзя рассчитывать.
ValeriVP Emelian Не кажется вам, что нужна отдельная статья на тему Декомпилирования кода 1С на Хабре? Судя по опыту этой статьи, Хабр не будет удалять статью про алгоритм декомпилирования, как делает Infostart? Можно написать в соавторстве, может написать кто-то один и комментариями значительно расширить статью?
Для анализа такого кода используются аналоги виртуальной машины, что не является простым решением.

Быстрое решение в свое время мне найти не удалось. Списал это на свое незнание существующих алгоритмах декомпилирования. Вспомню несколько приемов обфускаци:
1. Изменение имени переменных и шифрование строковых констант
2. Добавление кода, который никогда не вызывается. Код прячется в ветвления условий if-then
3. Усложнение логических выражений. Например, добавление к ним по И сложного выражения, возвращающего всегда True
4. Удаление нумерации строк
Об этом можно было бы сказать в статье. Это, по крайней мере, дает представление о возможностях вашей программы. Однако онлайн-ресурс откровенно слабый, даже не формирует внешние переменные модуля. Про операторы модуля уже не помню, может быть тоже не формирует.

На специализированных 1С ресурсах статьи про декомпилирование блокируются. Поэтому упоминал здесь вскользь. Не знал, как Хабр отнесется к этой теме.

А вам достаточно подсказки насчет самой обратимости и существования простого алгоритма этой обратимости.

Выложил исходный код, потому что затруднен по времени развивать проект. Может кто-то еще воспользуется вашими подсказками. В любом случае спасибо за интерес и подсказки.
Обработка EPF входит в проект здесь
github.com/elisy/MdInternals/tree/master/Elisy.CfProject
файл Elisy.CfProject.epf
Он требует компонент Elisy.NetBridge.
Выложен также на Инфостарт:
Декомпилирование доступно через веб-сервис здесь: www.1csoftware.com/dotnet/en-us/decompiler
К сожалению, новизны здесь никакой нет. Даже «Классы MdInternals.Cil» которые «восстанавливают исходный код из последовательности байт-кода OpCode 1С» своей задачи явно не решают.

Статистика использования онлайн декомпилирования говорит об обратном.

бывший в наличии (сейчас не проверял) онлайн-ресурс по декомпиляции байт-кода 1С полностью перекрывают все возможности данной программы

Если имеется ввиду онлайн-ресурс www.1csoftware.com/dotnet/en-us/decompiler, то он работает и под капотом у него один-в-один выложенный мной проект MdInternals.Cil.

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

Я пробовал декомпиляторы .Net и C# над обфусцированным кодом. Не все справлялись с защитой. Не нужно обвинять проект в том, что он не приспособлен для обхода защиты. Нужен совсем другой подход и проект.
Очень интересно. Можете дать наводку, как называется объект доступа к cf из 1С? Записывать тоже можно?
Это не серьезное обвинение. Лично я не связан с 1С никакими обязательствами. Можно уточнить, что именно нарушает мой проект?
Выложил, потому что несколько лет не доходили руки до проекта. Есть подозрение, что не дойдут. Может кому-то пригодятся алгоритмы. Смысла нет скрывать их от энтузиастов.
Декомпилирование до сих пор очень востребовано. С выходом выгрузки в XML, вы правы, все поменялось. Есть подозрение, что работа напрямую с cf в памяти может быть намного быстрее, чем выгрузка в XML на диск, обработка и загрузка из XML с диска.
1. Чаще используют декомпилирование. В 1С возможна поставка конфигурации без исходного кода. Классы MdInternals.Cil восстанавливают исходный код из последовательности байт-кода OpCode 1С
2. Восстановление поврежденных конфигураций
3. Выгрузка конфигураций для средств версионирования. После выхода 1С 8.3 этот сценарий сомнительный. В 1С появилась опция выгрузки конфигурации в XML.
4. Автоматизация труда разработчика. Например, автоинкрементация номера версии в свойствах конфигурации или установка текущей даты. После выхода 1С 8.3 этот сценарий сомнительный. В 1С появилась опция выгрузки конфигурации в XML.
Вы вероятно смешиваете понятия 1С и ORM когда вы напрямую используете update вы обходите не 1С вы обходите уровень ORM.

Я не призываю бездумно пользоваться прямым чтением/записью. Понятно, что прежде чем что-то предпринимать, нужно хорошо подумать.
Для групповой пометки на удаления документов с отменой проведения, например, прямой доступ чаще всего вполне сгодится.
На текущий момент очень трудоемко. Штатно не решены проблемы: кэша, уязвимостей, нет гибкой настройки. Самостоятельное решение упрется в медленную скорость 1С.
По идее и в 8.3.5 есть http-серисы, но 1С может использоваться в веб только для очень ограниченного круга задач. В основноа для интеграции с другими системами.
1. Мероприятия по оптимизации под поисковики будут ограничены: у URL есть префикс
2. Медленный язык 1С увеличивает время отклика веб-сервера
3. Нет штатной реализации гибких кэшей, проверок на безопасность

1С всегда будет уступать популярным веб-серверам Apache и IIS даже по числу людей в сообществах. Как следствие, если сейчас искать решение возникшей проблемы для IIS, то с вероятностью 99% уже в интернете есть решение. А в 1С такой информации не будет. А в быстро меняющемся мире веб такие проблемы возникают постоянно: от новых MIMI-типов до интернациональных доменных адресов.

По JSON тоже что-то добавили

Поддержку JSON они добавили ранее, так как сериализация скриптами 1С работала минутами.
Что бы таких проблем не было перед обновлением тестируют функционал на новой платформе, точно так же вы не станете использовать новую версию компонента DELPHI сразу в продакшен? Так почему вы решили что платформу не нужно тестировать перед тем как накатить на 70 магазинов.

По качеству работы релиз от компании 1С фактически равноценен бета-версиям или релиз-кандидатам от крупных зарубежных компаний.

Производительность языка 1С особой роли не играет т.к. основная нагрузка это запросы к БД при этом запросы в основном транслируются на субд 1:1.

Прямая запись в обход 1С дает увеличение производительности в 50-100 раз. С трансляцией запросов на чтение тоже не все гладко: когда обрабатываются значения нескольких типов, субконто или планов видов характеристик.
Производительность языка 1С начинает играть роль при использовании 1С в качестве веб-сервера.

Information

Rating
Does not participate
Date of birth
Registered
Activity