Что такое дублирование кода в 1С и почему это критично
Дублирование кода — это повторяющиеся участки программной логики, скопированные и вставленные в разных частях конфигурации.
В контексте 1С это может быть:
⚫️ Одни и те же процедуры/функции, написанные в разных объектах (документах, справочниках, обработках и т.д.);
Повторяющиеся запросы к данным с минимальными отличиями;
⚫️ Копирование обработчиков событий (например, проверок при проведении документа) между объектами;
⚫️ Идентичные алгоритмы расчета (например, НДС или скидок) в разных модулях;
⚫️ Дублирование логики на разных уровнях — клиентском и серверном, без вынесения в общий модуль.
Почему это плохо ❌
1️⃣ Сложность поддержки
При изменении бизнес-логики (например, добавлении нового налога или перерасчете скидок) вам придётся вручную искать все участки, где реализован соответствующий алгоритм. Один забытый фрагмент — и вы получаете баг, который сложно отследить.
2️⃣ Риск ошибок
При копировании кода легко упустить мелкие, но важные детали. Если вы меняете один участок, но забываете синхронно изменить остальные, данные начинают вести себя непредсказуемо. Это особенно критично в системах учёта.
3️⃣ Проблемы с тестированием
В дублированной логике сложнее автоматизировать тестирование. Вы не можете написать один модульный тест и быть уверенным, что он покрывает весь функционал.
4️⃣ Снижение производительности
Повторение одних и тех же конструкций может привести к неэффективным запросам, избыточным вычислениям и замедлению работы системы.
5️⃣ Рост объёма конфигурации
Больше кода = больше времени на обновления, анализ, аудит и CI/CD. Для крупных проектов это прямая потеря времени и ресурсов.
Типичные причины дублирования:
⚫️ Копипаст-культура: «Работает — не трогай». Программисту проще скопировать код, чем подумать о повторном использовании.
⚫️ Отсутствие архитектуры: Конфигурация развивается хаотично, без общего подхода к построению логики.
⚫️ Срочные правки и костыли: Внедрение правок "на скорую руку", без учета долгосрочных последствий.
⚫️ Неиспользование общих модулей: Новички часто не умеют или боятся выносить логику в общие модули, считая это "лишней абстракцией".
Как бороться с дублированием 🛠
✔️ Вынос в общие модули
Логика, повторяющаяся в разных объектах, должна быть вынесена в общий модуль. Это касается расчетов, валидаций, общих процедур работы с данными.
✔️ Использование параметризованных процедур
Не нужно копировать одну и ту же функцию с разными названиями и маленькими отличиями. Сделайте одну универсальную с параметрами.
✔️ Создание библиотек и расширений
Часто используемую бизнес-логику можно оформить в виде библиотеки общих компонентов или расширений.
✔️ Код-ревью и стандарты
Наличие гайдлайнов по архитектуре, периодический аудит кода и культура code review помогают выявлять дубли на ранних этапах.
✔️ Рефакторинг
Регулярный рефакторинг — важная практика в долгосрочной поддержке 1С-решений. Лучше переписать 100 строк сейчас, чем чинить баги в продакшене через полгода.
Заключение.
Дублирование кода — это одна из главных болезней, снижающих качество 1С-решений. Она ведёт к росту ошибок, усложнению сопровождения и ухудшению производительности. Решение проблемы — в культуре разработки, использовании инструментов анализа и системном подходе к архитектуре.
Если вы хотите, чтобы ваша конфигурация работала стабильно, масштабировалась без боли и радовала бизнес — начинайте бороться с дублированием уже сегодня. Один рефакторинг может сэкономить вам часы и даже дни в будущем.
Ручной поиск дублирующегося кода в больших конфигурациях — это утопия. К счастью, сегодня существует инструмент статического анализа, который умеет:
⚫️ Искать идентичные или похожие участки кода;
⚫️ Находить повторяющиеся запросы;
⚫️ Оценивать уровень дублирования в процентах;
⚫️ Давать рекомендации по исправлению проблемы.
EFSOL создал специальный продукт для программирования в 1С, помогающий сэкономить время, деньги и нервы
DevTools42 — анализирует код 1С на ошибки, уязвимости, а также на дублирование, которое бывает особо коварно и может привести к краху всей системы🚨
Дублирование кода — это повторяющиеся участки программной логики, скопированные и вставленные в разных частях конфигурации.
В контексте 1С это может быть:
Повторяющиеся запросы к данным с минимальными отличиями;
Почему это плохо ❌
При изменении бизнес-логики (например, добавлении нового налога или перерасчете скидок) вам придётся вручную искать все участки, где реализован соответствующий алгоритм. Один забытый фрагмент — и вы получаете баг, который сложно отследить.
При копировании кода легко упустить мелкие, но важные детали. Если вы меняете один участок, но забываете синхронно изменить остальные, данные начинают вести себя непредсказуемо. Это особенно критично в системах учёта.
В дублированной логике сложнее автоматизировать тестирование. Вы не можете написать один модульный тест и быть уверенным, что он покрывает весь функционал.
Повторение одних и тех же конструкций может привести к неэффективным запросам, избыточным вычислениям и замедлению работы системы.
Больше кода = больше времени на обновления, анализ, аудит и CI/CD. Для крупных проектов это прямая потеря времени и ресурсов.
Типичные причины дублирования:
Как бороться с дублированием 🛠
Логика, повторяющаяся в разных объектах, должна быть вынесена в общий модуль. Это касается расчетов, валидаций, общих процедур работы с данными.
Не нужно копировать одну и ту же функцию с разными названиями и маленькими отличиями. Сделайте одну универсальную с параметрами.
Часто используемую бизнес-логику можно оформить в виде библиотеки общих компонентов или расширений.
Наличие гайдлайнов по архитектуре, периодический аудит кода и культура code review помогают выявлять дубли на ранних этапах.
Регулярный рефакторинг — важная практика в долгосрочной поддержке 1С-решений. Лучше переписать 100 строк сейчас, чем чинить баги в продакшене через полгода.
Заключение.
Дублирование кода — это одна из главных болезней, снижающих качество 1С-решений. Она ведёт к росту ошибок, усложнению сопровождения и ухудшению производительности. Решение проблемы — в культуре разработки, использовании инструментов анализа и системном подходе к архитектуре.
Если вы хотите, чтобы ваша конфигурация работала стабильно, масштабировалась без боли и радовала бизнес — начинайте бороться с дублированием уже сегодня. Один рефакторинг может сэкономить вам часы и даже дни в будущем.
Ручной поиск дублирующегося кода в больших конфигурациях — это утопия. К счастью, сегодня существует инструмент статического анализа, который умеет:
EFSOL создал специальный продукт для программирования в 1С, помогающий сэкономить время, деньги и нервы
DevTools42 — анализирует код 1С на ошибки, уязвимости, а также на дублирование, которое бывает особо коварно и может привести к краху всей системы🚨
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🤣1
⚡Новое в PostgreSQL: ускорение работы с временными таблицами!
В PostgreSQL появилось новое хранилище метаданных временных таблиц в оперативной памяти! Это позволяет снизить нагрузку на диск, но требует больше CPU.
🔹 новый параметр: enable_temp_memory_catalog (по умолчанию off)
Когда включать?
✔ высокая нагрузка на диски (но CPU свободны);
✔ медленные диски или «холодный» кэш FS;
✔ активная работа с временными таблицами.
⚠ Когда не включать?
✖ низкая нагрузка на СУБД;
✖ быстрые SSD или «прогретый» кэш FS;
✖ может быть медленнее, чем работа через диск.
💡 Вывод: Опция полезна в высоконагруженных системах 1С, где диски — узкое место. Тестируйте перед применением!
#EFSOL #PostgreSQL #Оптимизация1C #БазыДанных #Администрирование
В PostgreSQL появилось новое хранилище метаданных временных таблиц в оперативной памяти! Это позволяет снизить нагрузку на диск, но требует больше CPU.
🔹 новый параметр: enable_temp_memory_catalog (по умолчанию off)
Когда включать?
✔ высокая нагрузка на диски (но CPU свободны);
✔ медленные диски или «холодный» кэш FS;
✔ активная работа с временными таблицами.
⚠ Когда не включать?
✖ низкая нагрузка на СУБД;
✖ быстрые SSD или «прогретый» кэш FS;
✖ может быть медленнее, чем работа через диск.
💡 Вывод: Опция полезна в высоконагруженных системах 1С, где диски — узкое место. Тестируйте перед применением!
#EFSOL #PostgreSQL #Оптимизация1C #БазыДанных #Администрирование
⚡1👍1
Каждое обновление — как выстрел в темноте.
То отчёт сломается, то кнопка исчезнет, то вся база решит "жить новой жизнью".
И вот уже программист устраивает настоящий погром:
🧨 чистит регистры,
🔍 лезет в конфигуратор,
🚑 спасает прод в 3 часа ночи.
👨💻 Погромист 1С — это не профессия, это диагноз.
Но можно и без паники!
💡 DevTools42: анализ кода до того, как всё поломается.
Профилактика погромов — лучший багфикс!
То отчёт сломается, то кнопка исчезнет, то вся база решит "жить новой жизнью".
И вот уже программист устраивает настоящий погром:
🧨 чистит регистры,
🔍 лезет в конфигуратор,
🚑 спасает прод в 3 часа ночи.
👨💻 Погромист 1С — это не профессия, это диагноз.
Но можно и без паники!
💡 DevTools42: анализ кода до того, как всё поломается.
Профилактика погромов — лучший багфикс!
😁2
🐞 Когда баг — это не баг, а кривой алгоритм
В 1С часто сталкиваешься с ситуацией, когда пользователь жалуется: «Ошибка!», а на деле система отрабатывает строго по алгоритму. Просто этот алгоритм — костыль на костыле.
Разберем типичный пример.
В конфигурации есть документ, который проводит движения по регистру накопления. Алгоритм заполнения движений был написан пять лет назад под одну бизнес-схему. С тех пор бизнес поменялся, а код — нет. В результате: проводки формируются «как положено», но данные — мусор. Баг? На первый взгляд — да. По факту — нет. Код работает «как написано».
💡 Проблема не в баге, а в логике.
И таких кейсов в 1С море:
- Отбор по регистру идет по дате, но забыли учитывать версию или флаг актуальности.
- Запрос собирает остатки, но в алгоритме не учтён отбор по складу, потому что склад раньше был один.
- Алгоритм расчета скидок ссылается на устаревший регистр, который давно не обновляется.
Что делать?
Не лезть править поведение «на глаз». Вместо этого:
1. Разобраться в бизнес-процессе.
2. Выяснить, что хотели получить на выходе.
3. Переписать алгоритм не под текущее поведение, а под актуальную логику.
🔍 Вывод:
В 1С баг — это не всегда ошибка в коде. Иногда это правильно работающий механизм, написанный для давно умершей логики. И чем раньше команда начнет разделять «баги» и «кривые алгоритмы», тем меньше будет бессмысочных патчей и «починили — стало хуже».
А чтобы совершать меньше ошибок и проверить уже действующий проект — используйте DevTools42: Сканер кода 1С!
В 1С часто сталкиваешься с ситуацией, когда пользователь жалуется: «Ошибка!», а на деле система отрабатывает строго по алгоритму. Просто этот алгоритм — костыль на костыле.
Разберем типичный пример.
В конфигурации есть документ, который проводит движения по регистру накопления. Алгоритм заполнения движений был написан пять лет назад под одну бизнес-схему. С тех пор бизнес поменялся, а код — нет. В результате: проводки формируются «как положено», но данные — мусор. Баг? На первый взгляд — да. По факту — нет. Код работает «как написано».
💡 Проблема не в баге, а в логике.
И таких кейсов в 1С море:
- Отбор по регистру идет по дате, но забыли учитывать версию или флаг актуальности.
- Запрос собирает остатки, но в алгоритме не учтён отбор по складу, потому что склад раньше был один.
- Алгоритм расчета скидок ссылается на устаревший регистр, который давно не обновляется.
Что делать?
Не лезть править поведение «на глаз». Вместо этого:
1. Разобраться в бизнес-процессе.
2. Выяснить, что хотели получить на выходе.
3. Переписать алгоритм не под текущее поведение, а под актуальную логику.
🔍 Вывод:
В 1С баг — это не всегда ошибка в коде. Иногда это правильно работающий механизм, написанный для давно умершей логики. И чем раньше команда начнет разделять «баги» и «кривые алгоритмы», тем меньше будет бессмысочных патчей и «починили — стало хуже».
А чтобы совершать меньше ошибок и проверить уже действующий проект — используйте DevTools42: Сканер кода 1С!
⚡1🔥1
ИИ-Агент в вашей команде — теперь это реальность от Efsol!
Если вы все еще занимаетесь рутиной вручную — готовьтесь принять в команду нового цифрового сотрудника.
🤖 Кто такие ИИ-агенты?
Это цифровые помощники, которые берут на себя повторяющиеся, трудоемкие задачи, действуют по сценариям, учатся на ваших данных и работают 24/7 — без отпусков и выходных.
📌 Несколько примеров:
— В продажах: ведут лиды, пишут письма, закрывают сделки — и не просят кофе.
— В HR: обрабатывают резюме, приглашают на интервью, собирают фидбэк — без "потерялось в почте".
— В закупках: анализируют поставщиков, мониторят цены, подсказывают, где выгоднее — экономия без Excel-паркура.
💡 Интересно узнать больше о возможностях и том, как ИИ может быть полезен именно в вашем случае? 👉 https://efsol.ru/solutions/neuro42-ai-assistants-business/?utm_source=tg&utm_medium=social&utm_campaign=AI-agent
Если вы все еще занимаетесь рутиной вручную — готовьтесь принять в команду нового цифрового сотрудника.
🤖 Кто такие ИИ-агенты?
Это цифровые помощники, которые берут на себя повторяющиеся, трудоемкие задачи, действуют по сценариям, учатся на ваших данных и работают 24/7 — без отпусков и выходных.
📌 Несколько примеров:
— В продажах: ведут лиды, пишут письма, закрывают сделки — и не просят кофе.
— В HR: обрабатывают резюме, приглашают на интервью, собирают фидбэк — без "потерялось в почте".
— В закупках: анализируют поставщиков, мониторят цены, подсказывают, где выгоднее — экономия без Excel-паркура.
💡 Интересно узнать больше о возможностях и том, как ИИ может быть полезен именно в вашем случае? 👉 https://efsol.ru/solutions/neuro42-ai-assistants-business/?utm_source=tg&utm_medium=social&utm_campaign=AI-agent
⚡1
Визуализация конфликтов блокировок 1С
Одной из самых распространённых и затрудняющих работу проблем в 1С являются конфликты блокировок. Они возникают, когда несколько процессов одновременно пытаются получить доступ к одним и тем же данным. В результате одни процессы вынуждены ждать, пока другие освободят ресурсы — и это приводит к снижению производительности, сбоям, простоям сотрудников и, как следствие, замедлению бизнес-процессов.
Для многих специалистов проблема блокировок — это настоящий кошмар. Традиционные методы диагностики, такие как изучение логов и системных отчетов, часто оказываются слишком сложными и ресурсозатратными, которые требуют от специалиста большой концентрации внимания, сноровки и сил. Возможно, вам знакомы огромные логи с сотнями или тысячами записей, где крайне трудно увидеть, кто именно блокирует кого, какие объекты данных задействованы, и где кроется корень проблемы.
Вот тут на помощь приходит визуализация конфликтов блокировок с детализацией взаимосвязей «виновник-жертва» — инструмент, который превращает сухие данные в наглядный, интерактивный дашборд. Вместо сотен строк с цифрами и логами вы получаете понятные графики и диаграммы, на которых ясно видно, кто блокирует систему, кто ждет освобождения ресурсов, и какие объекты данных находятся в центре конфликта.
Почему это так важно?
- Без визуализации сложные взаимосвязи между процессами и блокируемыми объектами остаются скрытыми.
- Трудно понять масштаб проблемы и определить приоритеты для её решения.
- Поиск и устранение блокировок затягивается, что приводит к снижению производительности всей системы и риску сбоев.
Визуализация
1. Помогает быстро увидеть всю цепочку конфликтов и взаимосвязей, а не просто отдельные факты.
2. Позволяет эффективно анализировать ситуацию и принимать решения на основе полной и понятной информации.
3. Ускоряет диагностику и минимизирует время простоев.
В следующих постах мы подробно расскажем, как именно визуализация помогает сократить время диагностики и какие инструменты сегодня доступны для автоматизации этого процесса.
Одной из самых распространённых и затрудняющих работу проблем в 1С являются конфликты блокировок. Они возникают, когда несколько процессов одновременно пытаются получить доступ к одним и тем же данным. В результате одни процессы вынуждены ждать, пока другие освободят ресурсы — и это приводит к снижению производительности, сбоям, простоям сотрудников и, как следствие, замедлению бизнес-процессов.
Для многих специалистов проблема блокировок — это настоящий кошмар. Традиционные методы диагностики, такие как изучение логов и системных отчетов, часто оказываются слишком сложными и ресурсозатратными, которые требуют от специалиста большой концентрации внимания, сноровки и сил. Возможно, вам знакомы огромные логи с сотнями или тысячами записей, где крайне трудно увидеть, кто именно блокирует кого, какие объекты данных задействованы, и где кроется корень проблемы.
Вот тут на помощь приходит визуализация конфликтов блокировок с детализацией взаимосвязей «виновник-жертва» — инструмент, который превращает сухие данные в наглядный, интерактивный дашборд. Вместо сотен строк с цифрами и логами вы получаете понятные графики и диаграммы, на которых ясно видно, кто блокирует систему, кто ждет освобождения ресурсов, и какие объекты данных находятся в центре конфликта.
Почему это так важно?
- Без визуализации сложные взаимосвязи между процессами и блокируемыми объектами остаются скрытыми.
- Трудно понять масштаб проблемы и определить приоритеты для её решения.
- Поиск и устранение блокировок затягивается, что приводит к снижению производительности всей системы и риску сбоев.
Визуализация
1. Помогает быстро увидеть всю цепочку конфликтов и взаимосвязей, а не просто отдельные факты.
2. Позволяет эффективно анализировать ситуацию и принимать решения на основе полной и понятной информации.
3. Ускоряет диагностику и минимизирует время простоев.
В следующих постах мы подробно расскажем, как именно визуализация помогает сократить время диагностики и какие инструменты сегодня доступны для автоматизации этого процесса.
👍1
Конфликты блокировок в 1С — головная боль для многих компаний. Долгая диагностика и поиск причин тормозят работу и вызывают стресс у команды.
Metrika42 решает эту проблему с помощью визуализации.
Графики и таблицы наглядно показывают причины блокировок, виновников и «жертв», позволяя быстро понять ситуацию и принять решение.
Сократите время реакции и улучшите стабильность системы с помощью мощного инструмента мониторинга!
👉 Узнайте больше и начните пользоваться уже сегодня:
Metrika42 от EFSOL
Metrika42 решает эту проблему с помощью визуализации.
Графики и таблицы наглядно показывают причины блокировок, виновников и «жертв», позволяя быстро понять ситуацию и принять решение.
Сократите время реакции и улучшите стабильность системы с помощью мощного инструмента мониторинга!
👉 Узнайте больше и начните пользоваться уже сегодня:
Metrika42 от EFSOL
❤🔥3
Если вы не сотрудник Efsol, расскажите, в какой сфере сейчас работаете?
Anonymous Poll
69%
IT, ПО
3%
Финансы, банки, страхование
3%
Производство, промышленность
6%
Торговля, ритейл
3%
Образование, наука
0%
Медицина, красота
0%
Логистика, транспорт
3%
Строительство, недвижимость
13%
Другое (пишите в комментариях 👇)
❤1