Модель работы с базой данных
Архитектура базы данных в «1С:Предприятие 8» устроена иначе, чем в привычных ИТ-системах. Простыми словами, разработчик здесь никогда не общается с базой данных напрямую. Между программистом и самой базой всегда стоит надежный посредник — платформа «1С:Предприятия 8».
Как это работает?
Вместо ручного создания сложных таблиц разработчик даёт команды платформе 1С. При такой работе он может:
- Использовать конфигуратор для описания структуры данных в базе;
- Выполнять различные операции с данными с помощью объектов встроенного языка;
- Используя язык запросов составлять запросы для извлечения данных из базы.
Преимущество такого подхода
При подобной реализации разработчик просто говорит платформе, что нужно сделать, а платформа сама «переводит» эти команды на язык, понятный технической базе данных.
При этом команды могут быть как системы управления базами данных, при клиент-серверном варианте работы, так и команды собственного движка базы данных при работе с файловым вариантом.
Общая система типов данных
Одной из ключевых особенностей работы с базой данных является то, что в «1С:Предприятии 8» реализована общая система типов языка и полей баз данных. Иначе говоря, программист создает поле в базе данных и переменную в коде, работая с ними по одним и тем же правилам.
В универсальных средах разработки все сложнее. Там разработчику приходится постоянно «переводить» данные. Например, превращать формат текста из базы данных в формат текста для кода. В 1С такой проблемы нет, что экономит кучу времени и защищает от ошибок.
Как программа находит объекты (Ссылки)
Часто работа с данными в «1С:Предприятия 8» происходит как с целыми объектами. Программа читает или записывает не отдельные строчки, а сразу всю карточку целиком — например, справочников, документов, планов видов характеристик и т.п..
У каждого такого объекта в базе есть свой паспорт — уникальная ссылка. Она создается автоматически и никогда не повторяется, что позволяет точно определить объект внутри базы.
Эта ссылка также хранится в поле базы данных, вместе с остальными данными объекта. Помимо этого, она может исполнять функции связи объектов внутри системы. Пример подобной реализации:
В документе «Приходная накладная» есть поле «Поставщик». Туда не копируются данные компании вручную. Программа просто берет ссылку на нужную карточку из справочника «Контрагенты» и привязывает её к накладной.
Составные типы
В системе «1С:Предприятием 8» имеется необычная для подобных систем возможность — одному и тому же полю в базе данных можно разрешить хранить разные типы информации. В конкретный момент времени там лежит что-то одно, но это может быть и простой текст, и дата, и ссылка на совершенно разные карточки.
Такая возможность важна для экономических задач — например, в расходной накладной в качестве покупателя может быть указано либо юридическое лицо из справочника организаций, либо физическое лицо из справочника частных лиц. Разработчики же заранее определяют какие поля будут хранить значения разных типов ещё на этапе проектирования базы данных.
Хранилище значения (Сейф для любых файлов)
Вся логика «1С:Предприятии 8» построена на принципе: всё, что относится к программе, должно лежать внутри самой базы. Картинки, договоры в PDF или инструкции в Word — всё должно храниться внутри.
Для этого в системе придумали специальный тип данных — Хранилище значения. Это своеобразный универсальный сейф прямо внутри базы данных.
Благодаря этому разработчик имеет возможность сохранять в базе данных значения, тип которых не может быть выбран в качестве типа поля базы данных, например, графические изображения.
Создание и обновление структур данных на основе метаданных
В процессе создания или модификации прикладного решения программисту вообще не нужно лезть внутрь базы данных, чтобы создавать или менять таблицы. Вся техническая рутина полностью автоматизирована.
Разработчик работает как в конструкторе: он просто наглядно рисует структуру, добавляя в неё реквизиты разных типов данных. Как только изменения сохраняются, платформа 1С сама перестраивает базу данных под новые требования.
Два способа работы с данными: объектный и табличный
Штатной платформа «1С:Предприятия 8» предлагает два разных режима работы с информацией: объектный (для чтения и записи) и табличный (только для чтения).
Объектный подход
В этой модели обращения к объекту, например документу, происходят как к единому целому — он полностью загружается в память, вместе с вложенными таблицами, к которым можно обращаться средствами встроенного языка как к коллекциям записей и т.д. Подход нужен для безопасного изменения данных, не нарушая их кеширование, вызов соответствующих обработчиков событий и т.д.
Табличный подход
В этом режиме база данных превращается в огромную сводную таблицу. С помощью специального языка запросов программа может мгновенно вытащить отдельные строчки или колонки сразу из множества разных документов и справочников. Подобный подход работы с базой удобен, когда нужно проанализировать информацию, например, при построении отчёта. Важно, данные, выбираемые таким способом содержат не все реквизиты, поэтому табличный способ доступа не позволяет изменять эти данные.

