Мой опыт аудита 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

См. также

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

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

21.11.2024    3083    a.doroshkevich    7    

15

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

Пользовался ранее https://infostart.ru/1c/articles/1120161/#, но она устарела, т.к. службы запускаются через systemctl, да и сами службы слегка изменились. Возможно, где-то на ИТС уже есть нужная инструкция, но мне не попалась.

15.11.2024    399    Baser    2    

1

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

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

12.11.2024    971    Tantor    20    

15

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

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

29.10.2024    3572    Tantor    38    

35

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

CDC - очень мощный механизм, который можно использовать во многих сценариях, возможность развернуть его в Docker показывает простоту и лёгкость данной технологии.

08.10.2024    847    AlexSvoykin    1    

7

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

Анализ и решение ошибок СУБД. Во время реиндексации базы Ошибка СУБД: Microsoft SQL Server Native Client 11.0: Не удалось найти объект "ИмяБазы.dbo._RefSInf21806", так как он не существует, или отсутствуют разрешения. Во время проверки целостности Ошибка СУБД: Microsoft SQL Server Native Client 11.0: Недопустимое имя объекта "dbo._RefSInf21806".

19.09.2024    4632    Xershi    10    

17

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

Бэкап в Postgres состоит из набора граблей, которые нужно обойти для успешного восстановления. Они заложены в самых неожиданных местах от предмета резервного копирования (база или кластер) до структуры каталогов. Один неверный шаг и восстановление будет невозможным. Почему нельзя было сделать проще, как в MS SQL или Oracle? Почему бэкап в Postgres оставляет впечатление чьей-то лабораторной работы? Статья адресована прежде всего специалистам 1С, избалованным комфортом в MS SQL, в суровых буднях импортозамещения на Postgres.

13.08.2024    3060    1CUnlimited    9    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. OlegAr 22 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 1401 14.07.24 22:42 Сейчас в теме
Если речь идет об аудите информационной системы, то на мой взгляд упущены такие важные пункты как:
1. Процессы: управление разработкой, управление изменениями, управление обращениями, управление доступом и т.д.
2. Документация: технический паспорт на систему, инструкции, регламенты, спецификации... Их наличие, полнота и актуальность.
limonen; Torin; +2 Ответить
10. Сисой 88 16.07.24 12:34 Сейчас в теме
(4) технический паспорт на систему, инструкции, регламенты, спецификации - особенно весело, когда вообще ничего нет. И сведения о функциональности системы передаются, как Иллиада Гомера.
matvey_boom; dmitryada; +2 Ответить
5. nixel 1434 15.07.24 00:06 Сейчас в теме
Результаты из АПК/едт можно загрузить в сонар и смотреть все в одном месте. Приходите к нам в чат bsl-language-server, расскажем, что да как.
7. triviumfan 97 15.07.24 14:27 Сейчас в теме
(5)
Приходите к нам в чат bsl-language-server, расскажем, что да как
Прикрепленные файлы:
6. rambomax 15.07.24 11:05 Сейчас в теме
"яндекс-идентификатор пользователя" из ссылок лучше вырезать)))
8. user2096380 15.07.24 22:04 Сейчас в теме
Я один удивлен? Проводится аудит 1С 8.1, это как? Зачем проводить аудит 1С с которой все давно ушли на 8.3. Вся торговля и бухгалтерия сейчас на 8.3, склады еще многие остались на 7.7, но здесь проблема железа и отсутствие необходимости обновляться, для складских задач вполне.
9. Armando 1401 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 1917 20.07.24 11:46 Сейчас в теме
"Аудит 1С - в это понятие сегодня можно много чего вложить. "

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