Когда мы сталкиваемся с необходимостью разобраться в сложной, а тем более самописной конфигурации 1С, одной из первостепенных задач становится понимание взаимосвязей между ее объектами: справочниками, документами, регистрами, перечислениями и прочими метаданными. Нам необходимо наглядно видеть, что откуда берется и как данные циркулируют по системе, чтобы быстро вникнуть в логику проекта и эффективно выполнять доработки или анализ.
Давайте рассмотрим, какие подходы и инструменты помогут нам получить такую визуальную карту и глубже понять внутреннее устройство конфигурации 1С.
Для создания визуальной карты базы 1С существуют как встроенные возможности платформы, так и специализированные внешние обработки, которые значительно упрощают процесс.
Внешние обработки с Infostart.ru
Портал Infostart является ценным источником готовых решений и инструментов для разработчиков 1С. Здесь мы можем найти обработки, специально предназначенные для анализа и визуализации метаданных конфигураций. Они позволяют:
Строить карты метаданных для редактора yED. Некоторые обработки экспортируют структуру конфигурации в формат, совместимый с такими программами, как yED Graph Editor. Это позволяет нам создавать интерактивные диаграммы, на которых представлены все виды объектов конфигурации и их взаимозависимости. Например, мы увидим, как справочник Номенклатура используется в реквизитах документа РеализацияТоваровУслуг или в измерениях регистра.
Отображать метаданные в виде блок-схем. Такие инструменты помогают нам наглядно увидеть связи по ссылкам между объектами, их реквизитный состав, табличные части, предопределенные элементы, права доступа, а также механизмы ввода на основании и подписки на события. Это становится особенно полезным при анализе объектов, входящих в ту или иную подсистему, или при изучении структуры хранения данных.
Анализировать полную структуру базы данных. Некоторые обработки предоставляют комплексный обзор метаданных, позволяя нам отбирать объекты по типу, навигироваться по связям реквизитов и детально изучать внутреннее представление данных. Это существенно облегчает понимание реляционной модели, скрытой за объектной моделью 1С.
Например, существуют обработки, которые мы можем использовать для конфигураций на платформе 8.3 даже без доступа к конфигуратору, что удобно для всей команды. Они визуализируют свойства, реквизиты, табличные части, предопределенные элементы, права доступа, связи по вводу на основании, подписки на события, а также движения и регистраторы.
Схемы данных в 1C:Enterprise Development Tools (EDT)
Современная среда разработки 1С:Enterprise Development Tools (EDT) предоставляет нам мощный инструмент под названием "Схемы данных". Этот инструмент разработан для визуализации структуры данных в виде ER-диаграмм (Entity Relationship Diagram).
Визуализация реляционной модели. EDT позволяет нам увидеть реляционную модель базы данных, которая лежит в основе объектов конфигурации 1С. Это особенно важно для конфигураций с большим числом объектов, где ручной анализ становится практически невозможным.
Просмотр, редактирование и документирование. В EDT мы можем не только просматривать автоматически сгенерированные схемы, но и редактировать их, добавлять комментарии к объектам, что делает схемы полезным инструментом для документирования проекта.
Схемы данных в EDT являются наиболее приближенным к академическому пониманию ER-диаграмм инструментом, доступным в экосистеме 1С, и позволяют нам представить концептуальную модель объектов 1С в более удобном для визуального анализа виде.
Встроенные возможности конфигуратора 1С
Хотя сам конфигуратор не предоставляет готовой "карты", он является нашим основным инструментом для непосредственного изучения структуры. Мы можем:
Открывать конфигурацию и исследовать объекты. После открытия файла .cf или подключения к базе данных мы можем последовательно изучать каждый справочник, документ, регистр. Просматривая реквизиты и табличные части объектов, мы обнаруживаем явные ссылки на другие объекты метаданных.
Использовать "Поиск ссылок в конфигурации". Для любого объекта метаданных или его реквизита мы можем выполнить поиск ссылок. Это покажет нам, где еще этот объект используется в конфигурации (например, в качестве типа реквизита другого объекта, в запросах, в коде модулей). Этот метод помогает нам проследить прямые зависимости, но он может быть очень объемным для крупных объектов.
Формировать "Отчет по конфигурации". Через меню "Конфигурация" -> "Отчет по конфигурации" мы можем получить текстовый или HTML-отчет, содержащий подробную информацию обо всех объектах метаданных, их свойствах и взаимосвязях. Хотя это не визуальная карта, но это детализированное текстовое описание, которое может быть преобразовано в более понятный формат.
Программный доступ к метаданным через встроенный язык 1С (например, через объект Метаданные) позволяет нам создавать свои собственные обработки для анализа и представления структуры, хотя и только на чтение. Это открывает возможности для разработки уникальных аналитических инструментов.
Рассмотрим пример, как мы можем программно получить доступ к метаданным и вывести информацию об объектах:
// Пример программного доступа к метаданным
Для Каждого ОбъектМетаданных Из Метаданные.ВсеОбъекты() Цикл
// Мы можем получить имя объекта метаданных
Сообщить("Имя объекта метаданных: " + ОбъектМетаданных.Имя);
// Изучить его тип
Сообщить("Тип объекта: " + ОбъектМетаданных.Тип.Имя);
// Если это справочник или документ, мы можем получить список его реквизитов
Если ОбъектМетаданных.ПринадлежитТипу(Тип("МетаданныеОбъектСправочник"))
Или ОбъектМетаданных.ПринадлежитТипу(Тип("МетаданныеОбъектДокумент")) Тогда
Для Каждого Реквизит Из ОбъектМетаданных.Реквизиты Цикл
Сообщить(" Реквизит: " + Реквизит.Имя + ", Тип: " + Реквизит.Тип.Имя);
КонецЦикла;
КонецЕсли;
КонецЦикла;
Этот простой пример показывает, как мы можем начать строить собственный инструмент для исследования структуры метаданных.
Получение визуальной карты связей объектов, несомненно, важно, но, как показывает опыт, знание того, как связаны объекты, не имеет ценности без понимания, ПОЧЕМУ они так связаны. Наиболее быстрый и эффективный способ вникнуть в логику проекта за короткое время (например, за один день, если речь идет о несложном проекте) – это сочетание технического анализа с глубоким погружением в бизнес-процессы.
Ограничения чисто технических карт
Даже самая подробная ER-диаграмма или карта метаданных покажет нам только технические связи. Она не отразит:
Логические связи, прописанные в коде. Многие критически важные взаимосвязи и алгоритмы реализованы не на уровне структуры базы данных, а программно, в модулях, подписках на события, обработчиках. Эти связи невозможно увидеть на статической схеме объектов.
Внешние обработки и интеграции. Часть функциональности может быть реализована вне основной конфигурации, например, в виде внешних обработок, отчетов или интеграций с другими системами.
Нюансы бизнес-логики. Почему тот или иной реквизит заполняется именно так? Для какого бизнес-процесса необходима данная последовательность документов? Эти вопросы не ответит техническая схема.
Поэтому, для полноценного понимания, нам всегда потребуется анализ бизнес-логики.
Интервьюирование ключевых пользователей
Самый быстрый и эффективный способ понять "что и почему" – это общение с теми, кто ежедневно работает с системой. Мы можем:
Найти ключевых пользователей по каждому функциональному блоку: бухгалтерия, отдел продаж, склад, кадры, расчет зарплаты и так далее.
Попросить их показать свои функции в системе. Нам необходимо наблюдать за тем, как они работают, какие документы создают, какие отчеты формируют, какие данные вводят и откуда их получают.
Выяснить входящие и исходящие потоки информации. От кого пользователь получает данные, кому передает результаты своей работы? Это поможет нам построить карту информационных потоков.
Фиксировать нюансы. Часто существуют негласные правила или "костыли", которые не описаны в документации, но жизненно важны для работы системы.
Этот подход позволяет нам построить карту бизнес-процессов, которая станет каркасом для понимания технической реализации.
Анализ отчетов и документооборота
Начальники и руководители часто ориентируются на ключевые отчеты. Мы можем начать изучение с них:
Выяснить, какие отчеты используют руководители. Мы можем попросить их показать, какие данные им нужны и в каком виде.
Проследить источник данных для отчетов. Затем мы выясняем у исполнителей, откуда берутся данные для этих отчетов. Возможно, часть данных собирается вручную в Excel, что уже указывает на потенциальные пробелы в автоматизации или не до конца понятые процессы.
Отследить весь путь данных. Мы продолжаем "пытать" пользователей, кто и как генерирует эти данные, какие документы при этом создаются, какие движения формируются. Это позволит нам дойти до непосредственных источников данных и понять процессы, их порождающие.
Изучение отчетов позволяет нам понять конечную цель системы и от нее двигаться к ее реализации.
В идеальном мире, для быстрого входа в проект должна существовать подробная документация. Если она есть, мы должны начать с ее изучения. Документация может включать:
Схемы высокого уровня с описанием подсистем.
Диаграммы DFD (Data Flow Diagram) или IDEF0, описывающие потоки данных и функции системы.
Технические описания объектов, алгоритмов и интеграций.
Даже если документация отсутствует или устарела, мы можем использовать инструменты для автоматизированной проверки конфигураций (например, "1С:Автоматизированная проверка конфигураций" или SonarQube). Они помогут выявить проблемные места в коде, его соответствие стандартам, что даст нам дополнительные точки для анализа.
Получение визуальной карты базы 1С – это многогранная задача. Для ее решения нам необходимо комбинировать несколько подходов:
Использовать специализированные инструменты для технической визуализации связей метаданных, такие как обработки с Infostart или "Схемы данных" в 1C:EDT.
Применять системный подход к изучению бизнес-процессов: общаться с ключевыми пользователями, анализировать их работу и используемые отчеты, чтобы понять логику системы.
Изучать доступную проектную документацию и использовать инструменты анализа качества кода.
Только такой комплексный подход позволит нам не просто увидеть связи, но и понять их смысл, что является ключом к успешной работе с любой сложной конфигурацией 1С.