Не менее важное отличие (помимо конфигурирования) разработки бизнес-приложений в системе "1С:Предприятие" от разработки в универсальных системах (системах, которые можно настроить под решение практически любых задач) состоит в том, что приложения в "1С:Предприятии" разрабатываются в терминах объектов метаданных (напомним, что объект метаданных – это описание группы понятий предметной области со сходными характеристиками и одинаковым предназначением). Это одна из наиболее существенных особенностей "1С:Предприятия". Говоря проще, ваша свобода в области разработки ограничена в создании и редактировании уже встроенных объектов, таких как справочники, документы и пр.
{mosloadposition debug}
При разработке системы автоматизации для какого-либо предприятия, какого-либо бизнеса, необходимо описать целый ряд различных данных — товары, материалы, другие ресурсы, клиентов, поставщиков, счета, накладные и другие документы — и способы регистрации их движения, взаимодействия. При проектировании платформы "1С:Предприятия" все они были классифицированы и объединены в объекты метаданных, которыми и манипулирует разработчик прикладного решения (то есть программист, настраивающий конкретную конфигурацию). При этом стремились не умножать число объектов метаданных сверх необходимости, их число не должно было превышать пары десятков.
Таким образом, приложения "1С:Предприятия" опираются на структуру метаданных. Фактически можно сказать, что состав (реквизиты, поля и пр.) объектов метаданных определяет, что именно и каким образом вы будете создавать/редактировать приложение (конфигурацию). Вам поставлено задание, объяснено, какого результата нужно добиться, и именно состав объекта метаданных определяет способ достижения этого результата. Можно также сказать, что приложения на платформе "1С:Предприятие" скорее не программируются (кодируются), а проектируются.
Создав объект метаданных, разработчик получает одновременно и готовый типовой набор функций (специальные формы ввода информации в объект, механизмы обработки введенной информации, диалог с пользователем и отчеты – формы вывода информации), свойственный всем данным этого вида, и возможность указания конкретных особенностей, которыми могут обладать данные определенного типа.
В платформе "1С:Предприятие" уже заложена мощная функциональность, которая позволяет не программируя, не добавляя никакой новой (по сравнению с заложенной в платформе) функциональности быстро и удобно поддерживать объекты метаданных на уровне прикладного решения.
Рассмотрим более подробно несколько примеров выделения объектов метаданных и принципы проектирования приложений с их использованием.
Константы
В системе 1С:Предприятие константы предназначены для хранения постоянной или условно-постоянной информации. Такая информация либо совсем не изменяется в процессе деятельности предприятия, либо изменяется достаточно редко. Наиболее простой пример подобной информации – название организации, которое, как правило, не меняется. Основная причина использования констант заключается в том, что в них один раз заносится какая-либо информация, которая затем может многократно использоваться при формировании документов, в расчетах, при построении отчетных форм. Информация, внесенная в константу время от времени может редактироваться, но сути константы это не меняет: единожды введенное в систему значение константы используется многократно.
Рассмотрим такой пример. Наиболее часто на документах предприятия встречается подпись директора и главного бухгалтера. Естественно, что подписи эти должностные лица должны ставить самостоятельно. Но помимо самой подписи, в документах требуется ее расшифровка – фамилия подписавшего документ. Конечно, можно ввести фамилии директора и главного бухгалтера непосредственно в формы документов. Но, если какая-либо из фамилий изменится, то придется вновь редактировать все бланки документов и исправлять фамилии.
Поэтому гораздо удобнее создать в конфигураторе 2 константы – для хранения фамилий директора и главного бухгалтера, ввести эти фамилии один раз, а в многочисленных бланках документов использовать идентификаторы констант для получения их значений. При смене директора или главного бухгалтера достаточно внести изменения только в константы – ввести в них новые фамилии – и все изменения автоматически будут отражены в тех местах, где эти константы используются.
Конфигуратор системы 1С:Предприятие позволяет создавать практически неограниченное количество констант для хранения любой нужной информации.
Справочники
Описания таких данных, как товары, контрагенты, валюты, склады, объединяет наличие таких общих свойств, как внутренняя идентификация объекта в системе (чаще всего сокращенное название объекта, например, СПР1 – справочник1), необходимость поддержки иерархии и группировки элементов (объекты метаданных группируются в виде древовидной структуры – то есть каждый справочник лежит в группе «справочники», реквизит – в конкретном справочнике и т.д.), необходимость поддержки вложенных таблиц (таблицы используются, например, для хранения предыдущих значений объекта метаданных). Информацию об этих объектах надо хранить, они задействованы в хозяйственных операциях предприятия и т.д. В "1С:Предприятии" все такие данные объединены в общий объект "справочник", для которого перечисленные выше свойства и возможности поддерживаются на уровне платформы.
Для создания в "1С:Предприятии" нового справочника достаточно описать необходимый набор параметров. Это делается визуально, не требуется писать ни единой строчки кода. Так, для создания справочника "товары" достаточно в режиме "конфигуратор" 1С:Предприятия:
указать его название – "товары",
определить другие свойства, которые должна поддерживать система для данного справочника, такие, как способ нумерации элементов, автонумерация и т.п,
задать реквизиты элементов справочника – для товаров это может быть закупочная цена, отпускная цена, вес и т.п.
Необходимый минимум для создания (описания) основы объекта "справочник" на этом выполнен – теперь достаточно одним нажатием кнопки сохранить эту настройку и можно начать работать с ней в режиме использования "1С:Предприятия". При этом соответствующая экранная форма для работы с созданным нами справочником генерируется системой автоматически — разработчику нет необходимости прилагать какие-то дополнительные усилия для того, чтобы пользователь мог вводить наименования товаров и групп товаров, задавать цены и другие параметры и т.д. Естественно, разработчик может сконструировать экранную форму и самостоятельно, с помощью специального конструктора экранных форм придав ей в точности такой вид и свойства, которые соответствуют особенностям решаемой задачи, необходимы по эргономическим соображениям и т.д.
Документы
В системе 1С:Предприятие документ является основной учетной единицей. Документы – счета, накладные, заказы и т.п. - фиксируют различные события, происходящие в хозяйственной жизни организации. Каждый документ содержит в себе информацию о конкретной хозяйственной операции и характеризуется своим номером, датой и временем. Важным свойством документа является его привязка ко времени, позволяющая устанавливать строгую временную последовательность совершения операции.
Конфигуратор позволяет описать структуру документа, организовать диалог для ввода информации в документ и описать алгоритм построения печатной формы документа. Такой набор функциональности заложен в систему и обеспечивает быструю разработку таких объектов.
Однако сам по себе документ только описывает некоторый факт происшедший в хозяйственной жизни. В бизнес-приложениях эти факты необходимо еще учитывать — отражать движения ресурсов (товаров, финансов и т.п.) в различных системах учета. Для этого документ необходимо провести. С точки зрения пользователя это означает отдание соответствующей команды – нажатие кнопки "провести" в экранной форме документа. С точки зрения разработчика проведение означает вызов соответствующей обработки, выполнение алгоритма на встроенном языке "1С:Предприятия", описывающего отражение события в различных системах учета. Для описания систем учета в "1С:Предприятии" предусмотрены такие объекты метаданных, как регистры.
Специально для Ячайник, Евгений Пролетарский
{mosloadposition cpanel}