Для партнеров фирмы «1С», участвующих в бета-тестировании «1С:Предприятия 8.0»
Настоящий документ является рабочим материалом фирмы «1С» и предназначен для ознакомления партнеров фирмы «1С» с техническими и проектными решениями, используемыми при разработке типовых конфигураций для платформы «1С:Предприятие 8.0».
Данный документ не является окончательной редакцией и в него могут быть внесены изменения.
Публикация, цитирование или иное распространение данного документа или его фрагментов без согласия фирмы «1С» не разрешается.
Система стандартов и регламентов разработки конфигураций для платформы «1С:Предприятие 8.0»
СТП СРК.03.004.01
Требования, направленные на облегчение модификации и доработки конфигураций
Дата последней модификации: 30 апреля 2003 г.
Предмет стандартизации
Технологические решения, направленные на облегчение доработки конфигураций сторонними разработчиками, последующее сопровождение и обновление таких доработанных конфигураций.
Вызов глобальных обработчиков
В конфигурации создается общий модуль (один или несколько) - хранилище пользовательских обработчиков. Все обработчики событий конфигурации вызывают процедуры этого общего модуля. В типовых конфигурациях процедуры этого модуля состоят из одной строки - вызова соответствующей процедуры глобального модуля.
Такое добавление позволит «расширять» функциональность обработчиков объектов без модификации самих объектов.
Таким образом, события обрабатываются следующим образом:
· сначала выполняется обработчик объекта конфигурации;
· обработчик объекта вызывает пользовательский «обработчик»;
· пользовательский «обработчик» вызывает (или не вызывает) «обработчик» глобального (общего) модуля.
В тех случаях, когда модификация поведения обработчика объекта недопустима, пользовательский обработчик не вызывается.
Подключение внешних алгоритмов
Возможность вызова в определенных местах конфигурации внешних обработок для выполнения каких-либо необходимых действий.
Пока непонятно: в каких местах типовых конфигураций и для выполнения каких необходимых действий могут быть использованы внешние обработки. Заводить внешний файл с описанием ошибок пока не предполагается.
По мере конкретизации требований к подобным внешним обработкам возможно описание «интерфейса плагинов»:
· что вызывать?
· как?
· что возвращает?
Доступ к механизмам конфигурации
Включение в глобальный модуль процедур и функций; которые могут использовать для доступа к «внутренним» механизмам конфигурации: итогам различных промежуточным расчетам, преобразований, присвоений.
Для реализации этих требований необходимо объявить экспортными не только «официальные» функции, но и «промежуточные».
Учет разного состава объектов конфигурации
Универсальные механизмы должны учитывать наличие или отсутствия тех или иных предопределенных объектов различных конфигураций, для которых они предназначены.
Обработка наличия объектов партнерских конфигураций не планируется.
Разделение общих функциональных возможностей конфигурации между общими модулями
Комментарий: Такое разделение позволит «развязывать» модернизацию кода сторонним разработчиком и изменение конфигурации авторами.
Например – вынесение механизмов работы с расшифровками в отдельный общий модуль позволит при программировании практически не отвлекаться на этот код, т. к. с большой долей вероятности, он будет писаться один раз, и в дальнейшем практически не будет изменяться. Таким образом, данный код можно будет переносить во вновь создаваемую конфигурацию «в одно касание». В качестве еще одного примера можно привести создание одного внешнего модуля под глобальные предопределенные процедуры, такие как глПриЗаписи, глПриПроведении и т. д.
Разделение функциональных возможностей конфигурации по различным подсистемам
Комментарий: Это позволит при разработке концентрироваться на работе тех подсистем, с которыми в данный момент работает специалист. Кроме того, разделение на подсистемы повышает дисциплину разработки и способствует более формальному подходу к разработке.
Разделение функционального наполнения каждой конкретной общей функции/процедуры
Комментарий: Это требование вытекает из удобства написания и модернизации этих функций. Такой набор небольших функций позволит достаточно свободно комбинировать необходимую функциональность путем комбинации вызова каждой из этих «примитивных» функций. Естественно, такие «примитивные» функции должны корректно отслеживать текущее состояние конфигурации: наличие тех или иных объектов конфигурации, наличие тех или иных реквизитов табличной части (частей) документа и т. д.
Исключить прямые проверки на виды документов и справочников
Желательно убрать из кода конфигурации прямые проверки на виды документов и справочников. Для этого можно завести специальные списки значений и проверять принадлежность вида проверяемого документа к тому или иному списку. Желательно, чтобы принадлежность документа или справочника к тому или иному виду формировалось «расстановкой галочек» у документов, а затем, при начале работы системы, заполнялись эти списки.
Комментарий: для типовых конфигураций принято как пожелание: стремиться к этому будем, но что это будет всегда - не гарантируем.
Передача параметров через списки значений
Крайне желательно передавать параметры в универсальные обработки через списки значений (либо подходящие аналоги новой платформы) и закладывать такой подход к проектированию и разработке таких обработок, чтобы появление новых версий этих обработок не влияло на функционирование существующих конфигураций.
Комментарий: для типовых конфигураций принято как пожелание: стремиться к этому будем, но что это будет всегда - не гарантируем.


