Search
Write a publication
Pull to refresh
1
0
Send message

Как проводить нагрузочное тестирование в 1С: инструкция по работе с Тест-центром

Level of difficultyMedium
Reading time8 min
Views1.9K

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

Привет, Хабр! Меня зовут Дарья Бавыкина, я разработчик IBS. На производительности 1С могут сказаться и обновление платформы до последней версии, и внедрение новых функций, и внесение каких-либо, порой даже мельчайших, изменений в конфигурацию. Чтобы бизнес-заказчик не поседел от ужаса, когда его главная учетная система начнет зависать посреди рабочего дня, после любых «телодвижений» разработчиков важно проводить нагрузочное тестирование. Ниже — подробная инструкция как.

Читать далее

Пример создания патча для PostgreSQL

Level of difficultyMedium
Reading time12 min
Views1.7K

На апрельской конференции PG BootCamp 2025 в Екатеринбурге был представлен доклад Артёма Бугаенко о том, как сделать статистику Postgres более детализированной, не повышая DST. Однако если посмотреть на доклад под немного другим углом, то ему отлично подошло бы название «Пример создания патча для PostgreSQL». Примеры правки логики планировщика есть во многих патчах, но объяснение того, куда и какой код нужно вставлять в многочисленные файлы исходного кода PostgreSQL, встречается нечасто. Можно встретить примеры описания того, как добавить параметры конфигурации, а вот пример того, как добавить опцию в команду SQL, найти подчас затруднительно. Поэтому если вам требуется добавить в какую-либо команду свою опцию, можно использовать статью, доклад и предложенный докладчиком патч как руководство.

Читать далее

Опыт использования утилиты logman для сбора метрик производительности приложения в Windows

Reading time8 min
Views20K

Введение


Добрый день!

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

В один из дней на работе была поставлена задача снятия метрик производительности для одного приложения под Windows. Главным условием было использовать по минимуму какие-либо сторонние утилиты, и так как опыта в подобных вещах у меня к тому времени не было, немного покопавшись, выбор пал на logman. Особой точности не требовалось и надо было лишь понять характер потребления ресурсов приложением, для чего logman с первого взгляда вполне подходил.

Итак, перейдем непосредственно к сути поста.
Читать дальше →

Датчик утечки воды и не только, просто и почти даром

Level of difficultyMedium
Reading time4 min
Views34K

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

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

Читать далее

СУБД Tantor Postgres 17.5: обзор улучшений для 1С

Level of difficultyEasy
Reading time23 min
Views2.7K

Новый релиз СУБД Tantor Postgres 17.5 насыщен обновлениями во всех основных аспектах: усиление безопасности, повышение общей производительности, новые расширения, а также инфраструктурные улучшения. Сегодня мы проведем обзор изменений, касающихся работы с высоконагруженными системами 1С. Релиз предлагает не просто несколько точечных исправлений, а целый арсенал специализированных функций, призванных существенно ускорить выполнение типичных для 1С операций, снизить нагрузку на инфраструктуру и упростить администрирование. Спектр улучшений распространился на многие ключевые узлы производительности от оптимизации работы с временными таблицами и сложными запросами RLS (row-level security) до ускорения критически важных процессов наподобие «Закрытия месяца». Обо всем этом и пойдет речь в статье.

Читать далее

Self-hosted EXPLAIN: наглядно и безопасно

Reading time2 min
Views8.5K

С момента первой же хабрапубликации о возможностях нашего сервиса визуализации планов запросов PostgreSQL explain.tensor.ru (а было это уже больше 2 лет назад) пользователи задавали резонный вопрос: "Все у вас круто, но у нас в запросах и планах есть коммерческая инфа, которую отправлять куда-то наружу низзя... Можно как-то ваш сервис развернуть на своей площадке?"

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

Читать далее

Автоматизированная проверка кода: просто, быстро и без ошибок

Level of difficultyMedium
Reading time19 min
Views14K

Добрый день, хабровчане!

Меня зовут Михаил Галац, за моими плечами насыщенный опыт в IT. Сейчас я руковожу Ресурсным центром и веду проекты по 1С.

В начале введу вас немного в контекст и расскажу, как появилась идея о написании этой статьи-инструкции. Я хочу поделиться личным опытом, как развернул с нуля автоматизированное тестирование кода в одном из направлений компании, конечно, не без помощи комьюнити SonarQube_1C_APK и рекомендаций от Никиты Федькина и Олега Тымко. Наше направление «Спрайдев» (ГК «Автомакон») специализируется на внедрении проектов 1С от внедрения масштабных решений, например, WMS и ERP.

Читать далее

Рациональная методика назначения приоритетов ключевым операциям

Reading time5 min
Views3.4K
В задачах по оптимизации производительности очень важным моментом является назначение очередности работ по оптимизации. Стандартный подход для этих целей предполагает простановку значений в колонку «Приоритет». Заказчики могут не понимать назначения данной колонки, совершенно справедливо утверждая: «Для нас все одинаково приоритетно».

После этого обычно им нужно объяснить, что работы по оптимизации, как правило, не выполняются параллельно: и из-за ограниченности ресурсов, и из-за взаимного обесценивания работ, и фактически приоритет – это очередность проведения работ и решения проблем по списку ключевых операций. Исходя из этого, рождается какой-то список операций с субъективно назначенными приоритетами, который затем используется в работе, если проектом кто-то управляет, или не используется, если эксперт предоставлен сам себе и имеет собственное представление о том, в какой очередности нужно решать проблемы. Разумеется, не надо считать, что это представление неадекватное, часто оно основано на таких объективных показателях, как минимальная трудоемкость выполнения работ («стратегия быстрых побед») или степень влияния на общий результат, и в целом результат может не пострадать. Плохо в этом то, что управляемость процессом отсутствует – вы запланировали одну очередность для работ, фактически она оказалась другой. Либо вы принудительно можете добиться управляемости процесса, но ошибки при формировании очереди приведут к тому, что до каких-то реально влияющих на результат операций дело или не дойдет вовсе, или дойдет гораздо позже, чем надо бы.

Рецепт предлагается искать в том, чтобы формировать приоритеты на основе объективной информации, рациональным способом. Это позволит как автоматически добиться от эксперта соблюдения очередности проведения работ (рациональное решение послужит надежным обоснованием для людей технического склада), так и избежать смещения важных работ на заведомо дальние сроки.
Читать дальше →

Поиск множества регулярных выражений при помощи библиотеки Hyperscan

Reading time10 min
Views9K
В данной статье я бы хотел рассказать о собственном опыте оптимизации выполнения множества регулярных выражений при помощи системы hyperscan. Так вышло, что при разработке своего спам-фильтра rspamd я столкнулся с необходимостью портировать большой объем старых правил, написанных для spamassassin за несколько лет работы. Моим первым решением было написать плагин, который бы читал эти правила и строил из них синтаксическое дерево. Затем на этом дереве выполнялись различные оптимизации, чтобы сократить общее время выполнения (об этом я даже делал небольшую презентацию).

К сожалению, в ходе эксплуатации выяснилось, что pcre все равно являются узким местом, и на больших письмах этот набор правил работает слишком медленно. Выяснилось, например, что на письме размером в мегабайт pcre проверяет около гигабайта (!) текста. Различные трюки, вроде ограничения количества текста для регулярных выражений, оказывали негативное влияние на срабатывания правил, а оптимизации pcre путем интенсивного использования jit fast path через pcre_jit_exec оказались слишком опасными — некоторые старые выражения были откровенно некорректными и в сочетании с некорректным входным текстом, например, содержащим «битые» UTF8 символы, приводили к воспроизводимым багам с повреждением стека программы. Однако на конференции highload мы поговорили со Вячеславом Ольховченковым, и он мне посоветовал посмотреть на hyperscan. Далее я перейду к сути и расскажу, что из этого получилось.
Читать дальше →

Путеводитель по резервному копированию баз данных

Reading time11 min
Views50K
– О, никакое убежище не выдержит попадания метеорита. Но ведь у вас, как и у каждого, есть резерв, так что можете не беспокоиться.

Станислав Лем, «Звёздные дневники Ийона Тихого»

Резервным копированием называется сохранение копии данных где-то вне основного места их хранения.



Главное назначение резервного копирования – восстановление данных после их потери. В связи с этим нередко приходится слышать, что при наличии реплики базы данных с неё всегда можно восстановить данные, и резервное копирование не нужно. На самом деле резервное копирование позволяет решить как минимум три задачи, которые не могут быть решены при помощи реплики, да и реплику без резервной копии не инициализировать.

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

Во-вторых, современные СУБД – весьма надёжные программные комплексы, однако изредка всё же происходит повреждение внутренних структур базы данных, после которого доступ к данным пропадает. Что особенно обидно, такое нарушение происходит обычно при высокой нагрузке или при установке какого-нибудь обновления. Но как высокая нагрузка, так и регулярные обновления говорят о том, что база данных – отнюдь не тестовая, и данные, хранящиеся в ней, ценны.

Наконец, третья задача, решение которой требует наличия резервной копии, – это клонирование базы, например, для целей тестирования.

Резервное копирование баз данных так или иначе базируется на одном из двух принципов:

  • Выборка данных с последующим сохранением в произвольном формате;
  • Снимок состояния файлов БД и сохранение журналов.

Давайте рассмотрим эти принципы и реализующие их инструменты подробнее.
Читать дальше →

Руководство по SQL: Как лучше писать запросы (Часть 2)

Reading time11 min
Views57K
Продолжение статьи Руководство по SQL: Как лучше писать запросы (Часть 1)

От запроса к планам выполнения


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

Следует также отметить, что некоторые из антипаттернов, упомянутых в последнем разделе, коренятся в проблемах производительности, таких, как операторы AND, OR и NOT и их отсутствие при использовании индексов. Размышление о производительности требует не только более структурированного, но и более глубокого подхода.

Однако этот структурированный и углубленный подход будет в основном основан на плане запроса, который, как вы помните, является результатом запроса, впервые проанализированного в «дерево синтаксического анализа» или «дерево разбора» («parse tree»), и точно определяет, какой алгоритм используется для каждой операции и как координируется их выполнение.
Читать дальше →

Релиз lsFusion 6.0 — открытой и бесплатной альтернативы платформе 1С

Level of difficultyMedium
Reading time22 min
Views11K

Недавно вышла шестая версия бесплатной открытой платформы lsFusion. В этой статье я постараюсь вкратце рассказать об основных новых возможностях этой версии и проиллюстрировать их примерами и gif-картинками для тех, кто предпочитает визуальное восприятие информации. Многие из этих возможностей можно попробовать онлайн на официальном сайте или в демо-версии одного из решений на базе lsFusion.

Шестая версия lsFusion делает значительный шаг вперед, окончательно превращая платформу из инструмента для разработки бизнес-приложений в мощную платформу для создания веб-приложений. Основной акцент сделан на улучшение Web UX, что критически важно для современных приложений. Среди ключевых нововведений — интеграция с Bootstrap, использование различных API браузеров и поддержка прогрессивных веб-приложений (PWA).

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

Читать далее

Почему не SQL?

Reading time67 min
Views73K


Без преувеличения можно сказать, что SQL — один из самых распространенных в мире языков. Информационные системы могут быть написаны на Java, Python, JavaScript, C#, PHP и десятке других языков, но SQL база в том или ином виде будет в абсолютном большинстве таких систем. Среди бизнес-приложений процент систем, использующих SQL, вообще стремится к 100%.

При этом большинство существующих материалов о SQL на хабре и других ресурсах сводятся к простым вопросам, вроде: «какие типы соединений бывают», «чем левое соединение отличается от правого», «что такое триггеры» и так далее. Более того, в этих материалах практически ничего не говорится о проблемах SQL (и его реализациях), которых на самом деле очень и очень немало. Поэтому мы решили восполнить оба этих пробела: с одной стороны рассказать, как многие вещи в SQL работают изнутри, а с другой стороны — почему они работают не так как нужно / хотелось бы.

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

Как Программисту 1С стать Java developer'ом

Reading time8 min
Views29K
Несколько лет назад, когда я искал пути из программистов 1С в Java developer'ы — я бродил впотьмах, пытаясь нащупать дверь, в существовании которой был не уверен. Я пытался найти истории успеха, но кроме пары комментариев ничего не нагуглил. Мир Java выглядел огромным, а количество фрэймворков бесконечным. Было совершенно непонятно: что учить, что не учить, что нужно в работе, а что никто не использует. Если ты хочешь в Джаву, теряешься в бесконечных названиях технологий и фрэймворков и хочешь узнать какие же из них надо изучать, а на какие не обращать внимания — эта статья для тебя!


Читать дальше →

Ещё один пост о прокрастинации

Reading time5 min
Views13K


В последнее время много статей о прокрастинации. Это означает, что людей постиг этот недуг, некоторые с ним справились и делятся опытом. А чуть больше полугода назад случился массовый «переход на удалёнку». Совпадение? (с) Нет, не совпадение. Посмотрим на этот вопрос сквозь призму базовых принципов функционирования мозга и мотивов принятия решений, поймем как удалёнка влияет на мотивацию и разберемся что со всем этим делать.
Читать дальше →

Мой опыт работы в Фирме 1С

Reading time8 min
Views131K

Кажется, писали уже обо всех: от Яндекса до Мэйлру, от Люксофта до Туту. Но про самую отстраненную, самобытную и изолированную компанию на ИТ рынке еще не было. Расскажу о своем опыте работы в отечественной Корпорации зла.

К тому чтобы поделиться своим опытом меня подтолкнула эта статья, а не состоявшееся накануне увольнение, я работал в фирме несколько лет назад, поэтому что-то я могу помнить не совсем точно, а что-то могло уже измениться. С другой стороны, 1С — не стартап и изменения там происходят неспешно.
Читать дальше →

Форма на сайте = штраф от 100 тысяч. Многие даже не подозревают

Level of difficultyEasy
Reading time3 min
Views78K

Я часто общаюсь с предпринимателями и вижу: даже те, кто давно в бизнесе, не знают, что если на сайте есть форма с запросом имени или телефона — они уже считаются оператором ПД и обязаны соблюдать требования закона.

Многие думают, что формальная политика конфиденциальности, скачанная из интернета, спасёт. Это глубокое заблуждение. Кстати, эти правила касаются не только сайтов — Telegram-ботов тоже , если они собирают данные пользователей.

Читать далее

Scrum/Agile/Kanban/Lean — как выравнивать процессы, убирать посредников, максимизировать ценность

Reading time6 min
Views35K

История методик управления проектами

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

Читать далее

Установка и настройка hyper-v server для тех, кто впервые его видит

Reading time7 min
Views83K

Вступление


Сегодня я расскажу о том, как установить и настроить гипервизор hyper-v server от компании Microsoft, а так же о некоторых подводных камнях и способах их избежать.
Поводом для написания этот статьи стал материал данного поста. Этот пост подходит больше как шпаргалка, если вы уже работали с данным гипервизором. Новичку же придется столкнуться с кучей нюансов и перекопать немало форумов, в поисках ответов на нестандартные вопросы.

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

Под катом много текста и скриншотов
Читать дальше →

1С: Ассемблер — пишем чистый байт-код для стековой машины 1С: Предприятие

Reading time21 min
Views30K


Стековые машины используются в большом множестве современных языков программирования. Они просты для понимания и при этом достаточно эффективны. Хотите попробовать одну такую в действии?


Все вы, наверное, слышали, что 1С-ники жалуются на свою систему, считая язык 1С недостаточно низкоуровневым, скучным и т.п. Все они с тоской поглядывают в сторону "настоящих" языков программирования. Так вот, господа, они неправы. В системе 1С есть места, где можно размять программерский мозг и получить удовольствие от низкоуровневой техники. Предлагаю вам погрузиться в недра виртуальной машины 1С и понять, как она работает. Там есть свой "ассемблер" и сегодня мы будем писать на нем рабочий код для 1С. Заходите под кат, будет весело!

Читать дальше →
1
23 ...

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Registered
Activity