Мой опыт аудита 1С баз

14.07.24

База данных - Администрирование СУБД

В статье описала свой опыт аудита 1С базы, порядок действий + статьи, которые сильно помогли в работе.

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

Когда приходишь на новое рабочее место, программистом, бухгалтером, аналитиком, тимлидом - хочешь или нет, аудит будешь проводить. Хотя бы чтобы понять, что и в каком состоянии тебе досталось)

В статье хочу описать свой опыт проведения 1С аудита. Может, кому пригодится.

  1. Первичный осмотр
Платформа    
Конфигурация    
Количество пользователей    
Режим совместимости    
Архитектура клиент серверная/Файловая /SQL и кластер в одном месте или нет  
Тестовые базы/контуры Где находятся? Не мешают ли рабочим?  
Лицензии Проверяю утилитой ring  
Наличие бэкапов Наличие/Расположение/Периодичность  

Сравнение конфигурации БД с конфигурацией поставщика - если включена возможность редактирования.

Посмотреть - может все и не плохо вовсе)

Если возможность редактирования включена, проверяем измененные объекты - сразу понимая, что можем вынести в расширение - выносим все, что так или иначе будет мешать обновлению. Естественно, все неоднозначно и зависит от множества факторов, например:

  • Найдется код, который стоит оптимизировать и перенести в общие модули
  • Найдется код, который пора убрать, как архаизм
  • Найдется, то, что и оставить надо

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

  • какие расширения нужно объединить между собой,
  • из каких код и добавленные объекты надо перенести в основную конфигурацию,

Про расширения:

https://v8.1c.ru/platforma/rasshireniya/?

//infostart.ru/1c/articles/442003/?ysclid=lybk7ltj7c206357256#queue

Но это первичный осмотр, при котором просто намечаем некоторые шаги.

2. APDEX

При первичной настройке целей у меня две:

  1. Определить неиспользуемый код и отключить (архаизмы)

Во все дополнительные отчеты и обработки, а так же добавленные в конфигурацию обработки и отчеты добавляем код замеров (если конфигурация самописная, можно просто добавить в нее из БСП подсистему “Оценка производительности”)

Более подробно можно почитать на ИТС или тут:

//infostart.ru/1c/articles/1686856/?ysclid=lt9xm6hn19297174663

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

  1. Начать сбор статистики для последующей оптимизации

Тут надо добавлять замеры не “втупую” при открытии/формировании/нажатии кнопок, как делала в первом случае, а поумнее.

Как поступила я:

  • Поговорила с ключевыми пользователями, из разговора выделила “медленные” процессы
  • Составила список ключевых процессов, которые не нравятся пользователям.
  • На каждый процесс подвесила APDEX, на некоторые сделала ручной замер.

В моем аудите, одной, конкретно взятой базы я настроила APDEX:

  1. Доработанный (не типовой) механизм проведения РТиУ - в том числе и по самописным регистрам. Замеры ставила на запись движений в каждый регистр отдельно.
  2. Открытие/создание на сервере формы документа Заявка на оплату
  3. 4 отчета - на которые показали пользователи

Для начала, все, буду корректировать сбор данных по мере необходимости и понимания что еще нужно.

Вручную - замером производительности прошла по 2м документам:

  1. РТиУ - модуль объекта - обработки записи и проведения

  2. Заказ поставщику - обновление формы, реакции кнопок на определенные действия пользователя.

3. SonarQube - Использовала модуль BSL

При настройке использовала статью: //infostart.ru/1c/articles/1661973/#_Toc1

И очень благодарна ребятам в группе https://t.me/SonarQube_1C_APK

Так как у меня тестовый сервер не самый модный, тут пришлось подождать, но оно того стоило.

Хвастаться пока нечем. Но!

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

  • названиях не по стандартам 1С,
  • длины строк,
  • Модификатор Знач,
  • опечатки и пр.

Сконцентрировалась на разделе “Ошибки”

Проанализировала его и получила отличный объем работ.

4. 1С АПК

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

https://v8.1c.ru/tekhnologii/1s-avtomatizirovannaya-proverka-konfiguratsiy/

Это полностью 1Сная история, для разработчика 1С она понятнее, чем Sonar, но у этой конфигурации есть серьезное ограничение, проверяет она только файловые базы, то есть если говорим про большие базы, проверить их быстро не удастся. Если проверить все же хочется, есть время и желание, можно попробовать, ключевое слово ПОПРОБОВАТЬ поступить следующим образом:

  • Из cf создать новую файловую базу
  • Выделить для этой операции максимальное количество ресурсов (можно определить, проверив сначала типовую БУХ или ЗУП)
  • Попробовать запустить проверку

Я, в рамках эксперимента, выполняла и проверку Sonar, и проверку АПК - моя конфигурация прошла обе проверки, но проверку АПК раза с третьего, по причине нехватки ресурсов моей машины.

Результаты получились сопоставимыми лишь условно. В результате я решила опираться на результаты Sonar.

5. Аудит обменов опишу кратко:

  • Проверка наличия описания логики
  • При отсутствии описания, проверка логики работы + опрос пользователей
  • Проверка обменов на безопасность (например: бывает, программисты используют оператор: Выполнить() - не проверяя, что за база подключается, что выполняет - фактически в нее можно передать любой код)
  • План по оптимизации обменов (например: есть организации, в которых до сих пор обмен через файл - как со сторонними системами, так и обмен 1С-1С)
  • По необходимости: План по рефакторингу и переработки логики работы обмена
  • Переход на современные сервисы(web, http)

6. Выводы.

В процессе аудита:

  • Определен технический долг
  • Список процессов к оптимизации
  • Намечена работа по оптимизации разработки
  • Определен неиспользуемый код к отключению

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

Пока все!

Аудит проверка базы анализ кода APDEX

См. также

HighLoad оптимизация Администрирование СУБД Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Опубликовали первую статью по итогам доклада «Дамп – не приговор, а повод задуматься», с которым выступали на конференции INFOSTART TECH EVENT 2024.

25.03.2025    294    it-expertise    5    

4

Администрирование СУБД Системный администратор Абонемент ($m)

Всегда надо обслуживать индексы SQL. В том числе по рекомендации самой 1С. Но обслуживать все и сразу - долго, тяжело серверу и, главное, бессмысленно. Особенно для больших баз. Данный скрипт выбирает, что надо делать, и делает это автоматически. Готового полного аналога не нашел, поэтому сделал этот. Можно примерять для любых конфигураций и платформ 1С. Проверено на 8.3.25.1501.

10 стартмани

12.02.2025    647    23    GreyCardinal    14    

4

HighLoad оптимизация Администрирование СУБД Программист Платформа 1С v8.3 Бесплатно (free)

В рамках мастер-класса мы запустим нагрузочный тест на 3К пользователей и посмотрим, как будет вести себя PostgreSQL при такой нагрузке.

11.12.2024    2021    Tantor    1    

6

Администрирование СУБД Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Бесплатно (free)

Много вариантов определения номера собственного процесса самого 1С8. В ходе поиска, опираясь на общедоступную информацию, дополнил алгоритм, но с учетом определения ИД запущенного приложения.

09.12.2024    948    artly2000    6    

4

Администрирование СУБД Системный администратор Программист

В крупных компаниях, где много типовых и сильно доработанных баз с режимом работы 24/7, переход с MS SQL на PostgreSQL затягивается. Получается гетерогенная структура – когда прод уже на PostgreSQL, а разработка и тестирование – пока на MS SQL. О том, какие варианты помогут постепенно перевести прод с несколькими базами MS SQL на PostgreSQL, не сломав среду тестирования и разработки, пойдет речь в статье.

21.11.2024    4411    a.doroshkevich    9    

16

HighLoad оптимизация Администрирование СУБД Системный администратор Программист Платформа 1С v8.3 Россия Бесплатно (free)

Мы исследуем проблему долгого выполнения запросов PostgreSQL при использовании конструкции VALUES: когда она возникает, как на нее можно повлиять, а главное, почему ее продуманная отработка важна для более быстрого функционирования решений на базе 1С

12.11.2024    1720    Tantor    20    

19

HighLoad оптимизация Администрирование СУБД Механизмы платформы 1С Программист Платформа 1С v8.3 ИТ-компания Россия Бесплатно (free)

В данной статье мы рассмотрим, как работает механизм временных таблиц на postgres на платформе 8.3.23 и что изменилось в нем при добавлении новых возможностей в платформе 8.3.25. А также на примере покажу, как понимание работы платформы позволяет оптимизировать СУБД для работы с 1С.

29.10.2024    5589    Tantor    38    

37
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. OlegAr 27 14.07.24 11:35 Сейчас в теме
а я не оцениваю созданное, а провожу аудит учета.
2. user612295_death4321 14.07.24 16:41 Сейчас в теме
В рамках 5-го пункта в условиях отсутствия информации отлично помогает еще:

1. Посмотреть логи веб-сервера с целью определить какие хосты в него ходят, какие эндпойнты дергают.
2. Посмотреть журнал регистрации на предмет обмена с помощью COM.
3. Собрать трассировки на уровне SQL, чтоб оценить кто ходит в базу мимо сервера приложений.
4. Хардкорный путь, но вполне себе имеет право на жизнь, это анализ сетевого трафика в сторону серверов приложений \ СУБД. Есть более сложный путь через Wireshark, есть лайтовый пособирать Get-NetTCPConnection и поработать с результатом.
5. Посмотреть опубликованные каталоги на сервере приложений, через аудит проанализировать, кто туда ходит.
Сисой; limonen; +2 Ответить
3. limonen 160 14.07.24 17:27 Сейчас в теме
(2) Да, спасибо, попробую. Рег. задания еще анализирую, много интересного нахожу)
4. Armando 1402 14.07.24 22:42 Сейчас в теме
Если речь идет об аудите информационной системы, то на мой взгляд упущены такие важные пункты как:
1. Процессы: управление разработкой, управление изменениями, управление обращениями, управление доступом и т.д.
2. Документация: технический паспорт на систему, инструкции, регламенты, спецификации... Их наличие, полнота и актуальность.
limonen; Torin; +2 Ответить
10. Сисой 88 16.07.24 12:34 Сейчас в теме
(4) технический паспорт на систему, инструкции, регламенты, спецификации - особенно весело, когда вообще ничего нет. И сведения о функциональности системы передаются, как Иллиада Гомера.
matvey_boom; dmitryada; +2 Ответить
5. nixel 1443 15.07.24 00:06 Сейчас в теме
Результаты из АПК/едт можно загрузить в сонар и смотреть все в одном месте. Приходите к нам в чат bsl-language-server, расскажем, что да как.
7. triviumfan 99 15.07.24 14:27 Сейчас в теме
(5)
Приходите к нам в чат bsl-language-server, расскажем, что да как
Прикрепленные файлы:
6. rambomax 19 15.07.24 11:05 Сейчас в теме
"яндекс-идентификатор пользователя" из ссылок лучше вырезать)))
8. user2096380 15.07.24 22:04 Сейчас в теме
Я один удивлен? Проводится аудит 1С 8.1, это как? Зачем проводить аудит 1С с которой все давно ушли на 8.3. Вся торговля и бухгалтерия сейчас на 8.3, склады еще многие остались на 7.7, но здесь проблема железа и отсутствие необходимости обновляться, для складских задач вполне.
9. Armando 1402 16.07.24 08:14 Сейчас в теме
(8) На основании чего сделан вывод, что речь про версию 8.1?
11. Andreeei 50 16.07.24 14:25 Сейчас в теме
Задачу переиначивания наделанного предшественниками вы сами себе поставили, потому что скучно сидеть без дела, или начальство попросило из-за каких-то реальных проблем с системой?
d4rkmesa; корум; alex1973; IgorS; mpvrus21; +5 Ответить
12. siamagic 17.07.24 21:31 Сейчас в теме
(11) Пришла школота и смузи, очередной поток бесполезного текста написано на бесполезной работе - уволить. Хотя судя по тексту человек работает копирайтом и текст генерит с нейрионки.
16. d4rkmesa 12.08.24 09:37 Сейчас в теме
(11) Ну вот тоже ощущение, что это нужно прежде всего ТС для какой-то видимости работы.
13. Азверин 3 18.07.24 09:09 Сейчас в теме
Аудит базы и ни слова про регламентные/фоновые задания?
Я бы их поставил на 3-4 место по очередности. Реально вычищал Авгиевы конюшни.
14. Gilev.Vyacheslav 1918 20.07.24 11:46 Сейчас в теме
"Аудит 1С - в это понятие сегодня можно много чего вложить. "

Аудит это проверка.
Что проверять, на предмет чего, по каким критериям определяет суть проверки.
А какова ваша цель аудита - процесс ради процесса, за все хорошее против всего хорошего? Ну так это не аудит. Всё на всё проверить нельзя.
bolikov; d4rkmesa; Natalia29; +3 Ответить
15. Armando 1402 21.07.24 22:15 Сейчас в теме
(14) я бы назвал это оценкой состояния информационной базы с точки зрения разработчика 1С.
Есть и спорные моменты, например, вынести доработки в расширения.
Где-то вообще поверхностно, например, про резервное копирование. Бекапы есть и ладно. А рабочие они или нет уже не важно. Наличие плана восстановления тоже не интересует, как и в целом процесс обеспечения непрерывности.
Andreeei; +1 Ответить
Оставьте свое сообщение