В слое прикладных решений реализуются функции взаимодействия с пользователем (представления данных) и алгоритмы прикладных расчетов. Часто слой прикладных решений называют слоем бизнес-логики программы. В свою очередь, он также может делиться на несколько слоев.
Слой прикладных решений может быть закрыт или открыт от модификации пользователем программного средства. В первом случае любое санкционированное внесение изменений в программу может выполнить только ее разработчик, во втором — пользователь может самостоятельно изменить те или иные фрагменты бизнес-логики системы. Используется также подход, при котором слой прикладных решений разделен на отдельные слои, часть из которых закрыта от изменений пользователем, а часть — открыта.
В системах с замкнутой функциональностью слой прикладных решений полностью закрыт от внесения изменений пользователем.
В системах с ограниченно развиваемой функциональностью есть закрытые и открытые для изменения пользователем слои прикладных решений. Обычно в такого рода программном обеспечении АИС-БУ пользователь имеет возможность составлять свои определения типовых операций и части правил получения проводок по документам, а также модифицировать алгоритмы формирования всех или части показателей отчетности, создавать новые выходные формы.
Например, в программном комплексе «БЭСТ-4» пользователь может проектировать новые отчеты, создавать свои разновидности типовых операций, определять правила расчета сумм проводок по данным первичных документов. В формулах, определяющих порядок расчета сумм проводок, можно применять специальные переменные, характеризующие, например, остатки и обороты счетов, ставки НДС, акцизов, себестоимость и другие характеристики товаров. При вычислении значений переменных, представляющих себестоимость товаров, система автоматически применяет установки, характеризующие учетную политику. Поэтому формула, использующая такого рода переменную, не зависит от того, каким способом должна рассчитываться себестоимость — методом средневзвешенных цен, ЛИФО или ФИФО. Однако сам порядок расчета себестоимости реализуется в закрытом от модификации пользователем слое прикладных решений. В этой системе можно даже создавать свои формы документов, но только с заранее заданным перечнем вводимых и отображаемых реквизитов, которые записаны в базе данных.
В полностью реконфигурируемых системах весь слой прикладных решений открыт для модификации пользователем. Здесь он может не только определять новые или модифицировать имеющиеся типовые операции и отчеты, но и создавать новые типы справочников, документов, экранные формы для ввода/просмотра информации, переопределять расчетные алгоритмы.
Например, в стандартной и профессиональной поставках системы «1С:Бухгалтерия 7.7» открытый для модификации пользователем слой прикладных решений называется «конфигурацией системы» и включает определения всех экранных форм, отчетов, меню и алгоритмов обработки данных. Для описания алгоритмов здесь используется встроенный в систему объектно-ориентированный язык программирования. При необходимости пользователь может полностью переопределить любую экранную форму, документ, расчетный алгоритм, отчет, создать свои виды документов, отчетов. Однако это требует хорошего знания особенностей функционирования системы и серьезных навыков программирования. В то же время навыки программирования нужны только при необходимости изменения конфигурации, да и то не всегда. Процесс изменения конфигурации выполняется в специальном режиме работы, называемом «конфигурированием системы». Потребность в серьезном изменении конфигурации возникает не очень часто и обычно пользователи ограничиваются созданием типовых операций и «косметической» модификацией настроек форм отчетности, которые можно производить в штатном режиме работы с информационной базой программы.
Иногда различные части слоя прикладных решений могут быть открыты для модификации только определенным категориям пользователей.
Например, система «Concorde XAL» датской компании Damgaard Data изначально создавалась как открытая система, которая должна распространяться во многих странах мира и параллельно развиваться как самим производителем, так и национальными дистрибьюторами, дилерами и специалистами предприятия-заказчика. Поэтому здесь структура слоя прикладных решений включает несколько программных слоев, каждый из которых может изменяться относительно независимо друг от друга.
Базовый слой (SYS) разрабатывается самим производителем — компанией Damgaard Data.
Дистрибьюторский слой (DIS) представляет собой вариант, локализованный для конкретной страны и, помимо базовых возможностей, включает специфические для нее функции и отчеты. Этот слой разрабатывается компаниями, наделенными правами национальной локализации системы.
В отдельный слой (BUS) включаются отраслевые решения, а в слой (VAR— варианты системы, доработанные под конкретного заказчика. Возможность вносить изменения в эти два слоя относятся к компетенции дилеров.
Следующие два слоя — это варианты системы с доработками, самостоятельно созданными предприятием-пользователем. Первый включает доработки, касающиеся всего холдинга (CUS), а второй—доработки, выполненные в его конкретных филиалах (USR).
Такое построение системы обеспечивает безопасность ее развития разными участниками разработки. Когда дистрибьютор, дилер или конечный пользователь изменяет какой-либо из элементов системы, например программу, производящую обработку проводок, то система фактически изменяет ее копию, оставляя исходный вариант в неприкосновенности. Благодаря этому при обнаружении ошибки всегда можно вернуться к исходной версии и установить, в каком слое кроется ошибка, а, соответственно, и кто ее автор.
Разделение системы на несколько слоев облегчает также решение задачи по обновлению версий. При установке новой версии запускается механизм, который анализирует, какие элементы предыдущей версии были изменены, выделяет их и позволяет естественным образом интегрировать в систему. Таким образом, переход к новой версии не сопровождается потерей изменений, внесенных в предыдущую версию.
Средства разработки системы «Конкорд» предоставляют возможность практически неограниченного наращивания функциональности. Они включают средства разработки и отладки прикладных программ на языке XAL, a также следующие редакторы: отчетов; экранных форм; запросов к базе данных; макросов и макробиблиотек; файлов помощи; словаря данных (позволяющий вносить изменения в таблицы, поля, индексы, перечислимые типы и триггеры таблиц информационной базы); настроек принтеров; списков просмотра; меню.
