Переход от классической доработки конфигурации к использованию механизма расширений — это важный этап для любого разработчика 1С. Расширения позволяют кастомизировать типовые решения, сохраняя их на поддержке, что значительно упрощает процесс последующих обновлений. В данной статье мы разберем, как оперативно войти в тему расширений, какие ресурсы использовать и на какие «подводные камни» стоит обратить внимание в первую очередь.
Если задача стоит «прямо сейчас», первым делом необходимо определить качественные источники знаний. Разберем основные ресурсы, которые помогут быстро погрузиться в тему:
Рассмотрим подробнее, как именно происходит процесс доработки. Большинство задач сводится к изменению логики процедур или добавлению новых элементов интерфейса. Проанализируем ключевой инструмент — аннотации. Они определяют, в какой момент выполнится ваш код относительно типового кода конфигурации.
Аннотация &Перед (&Before). Ваш код выполняется до начала работы типовой процедуры. Это удобно, когда нужно выполнить проверку условий и, при необходимости, прервать выполнение основной логики. Рассмотрим пример использования:
&Перед("ЗаписатьОбъект")
Процедура мп_ЗаписатьОбъектПеред(Отказ, Замещение)
Если НЕ ЗначениеЗаполнено(ЭтотОбъект.Автор) Тогда
Отказ = Истина;
Сообщить("Поле Автор должно быть заполнено!");
КонецЕсли;
КонецПроцедуры
Аннотация &После (&After). Процедура расширения вызывается сразу после завершения типовой. Идеально подходит для изменения результатов расчетов или заполнения дополнительных реквизитов, которые вы добавили в расширении.
Аннотация &Вместо (&Around). Полностью заменяет типовой алгоритм. Будьте осторожны: при обновлении типовой конфигурации разработчики могут изменить логику исходной процедуры, и ваше расширение может начать работать некорректно или вызывать ошибки. Если вы используете эту аннотацию, обязательно вызывайте ПродолжитьВызов(), чтобы не разрывать цепочку выполнения, если это допустимо.
Выясним причину, по которой многие разработчики опасаются работать с данными в расширениях. Платформа позволяет добавлять собственные справочники, документы и реквизиты. Однако важно помнить о критическом риске: если расширение будет удалено из базы, все данные, хранящиеся в созданных этим расширением объектах или реквизитах, будут безвозвратно удалены вместе с ним.
При добавлении объектов рекомендуем придерживаться следующих правил:
мп_МойСправочник). Это предотвратит конфликты имен, если в будущем обновлении типовой конфигурации появится объект с таким же названием.Разберем ситуации, в которых расширения ведут себя не так, как обычная конфигурация. Проанализируем список проблем, с которыми вы можете столкнуться:
Безопасный режим и Защита от опасных действий.Рассмотрим по шагам, как лучше выстроить процесс обучения «методом погружения»:
Шаг 1: Создание расширения. Создайте новое расширение, выбрав назначение «Адаптация». Это наиболее универсальный тип для большинства задач по доработке логики.
Шаг 2: Доработка интерфейса. Попробуйте добавить новую кнопку на форму существующего документа. Заимствуйте форму, добавьте команду и выведите ее на панель. Это поможет понять механизм связи форм расширения и основной базы.
Шаг 3: Простая логика. Реализуйте заполнение какого-либо поля при открытии формы, используя аннотацию &После. Посмотрите, как работает отладчик — он заходит в модули расширения точно так же, как в обычные модули.
Шаг 4: Проверка применимости. Регулярно используйте встроенную функцию конфигуратора «Проверить применимость». Это позволит вовремя заметить, если после изменений в основной конфигурации ваше расширение перестало «цепляться» к объектам.
В завершение отметим, что расширения — это мощный и адекватный инструмент. Несмотря на ряд ограничений (сложность массового добавления объектов, нюансы с предопределенными данными), это единственный путь для грамотной кастомизации современных типовых решений 1С. Главное — не бояться пробовать, использовать префиксы и всегда иметь под рукой актуальную справку ИТС.