Что такое система стандартов и методик разработки конфигураций и зачем она нужна?
Основные аргументы для использования.
Система стандартов разработки конфигураций это общепринятые правила, описанные на сайте 1С, по которым рекомендуется вести разработку на платформе 1С. Также стал часто встречать на рынке труда требование к разработчикам на знание и применение стандартов разработки.
1С рекомендует, но многие ли из разработчиков соблюдают эти стандарты, особенно в начале карьеры или, например, когда горят сроки, а заказчику уже нужно что-то ставить, тогда не важно, что там под капотом, лишь бы работало по заявленным требованиям. Второй момент, а нужно ли вообще соблюдать эти стандарты, если и так все работает, квалифицированный специалист разберется и в таком коде.
Я все же склоняюсь к тому, что нужно соблюдать стандарты и методики разработки конфигураций от 1С, пришел к этому выводу исходя из личного опыта. Повидав много решений, "самописных" конфигураций, различных доработок еще начиная с обычных форм, тогда действительно немногим разработчикам были известны эти стандарты и каждый писал как мог, как умел. Со временем бизнес-требования усложнялись, как следствие усложнялась архитектура и код решения и, если он изначально написан не по стандартам и содержит много авторского кода, сопровождать и дорабатывать его становится сложнее и дольше, чем структурированный код с понятными названиями имен переменных, имен таблиц и реквизитов, имен функций и процедур, использования БСП и т.д. К тому же нельзя забывать про сменяемость кадров, и общепринятые правила со временем приобретут более массовый характер, поэтому применяйте их сейчас, чтобы быть востребованным завтра.
Вплотную столкнулся со стандартами и глубоким изучением их на одном из моих мест работы, где разработчики осуществляли перевод отраслевого решения с обычных форм на управляемые, на этом месте работы разработчиков обязали переводить код по системе стандартов. К тому моменту я знал некоторые стандарты, но далеко не все. Решил уделять в день в среднем по часу для изучения и закрепления на практике свод правил. Стандарты находятся в открытом доступе по ссылке 1С:Предприятие 8. Система стандартов и методик разработки конфигураций. Но свод правил немаленький, и все в голове не удержишь и не запомнишь, а постоянно бегать по закладкам такое себе удовольствие, и тогда возникла идея фиксировать изученные правила в шаблонах текста в конфигураторе. Суть в том, что во время разработки, когда необходимо применить стандарт, выбираешь нужный в контексте подсказки шаблон и адаптируешь его в участке своего кода.
Продемонстрирую, как это выглядит на практике, к примеру, создали новый объект метаданных, добавили управляемую форму и начали описывать логику работы формы. Чтобы это сделать по стандартам, нам сначала нужно будет изучить сам стандарт, например, по ссылке Соглашения при написании кода > Оформление модулей > Структура модуля, далее все это закрепляем в шаблонах текста, у меня получилось 4 отдельных стандарта по этому разделу. Создаем новые шаблоны текста в конфигураторе "Сервис - Шаблоны текста". Для удобства я создал новые шаблоны текста "Действия - Новый файл шаблонов", чтобы их легко можно было копировать на другие системы и применять в отдельности.
Первый шаблон - "Ст_РазделыМодулейФорм" (поставил префикс Ст_ вначале названия шаблона для более быстрого вызова в коде), содержание (скопировал из описания стандарта):
Второй шаблон - "Ст_РазделыМодулейКоманд", содержание:
Третий шаблон - "Ст_РазделыМодулейОбъектовМенеджеровНаборовЗаписейОбработокОтчетов", содержание:
Четвертый шаблон - "Ст_РазделыОбщихМодулей", содержание:
Далее для формы объекта я вызываю шаблон -
"Ст_РазделыМодулейФорм" и формирую структуру модуля, далее по областям распределяю процедуры и функции (также написанные по стандартам). Что имею в итоге - более читаемый и структурированный код, который в дальнейшем легче отладить и сопровождать.
Или, например, мне нужно собрать несколько текстов запросов в пакет, открываю стандарт Реализация обработки данных > Работа с запросами > Оформление текстов запросов, сохраняю, например, такую конкатенацию:
в новый шаблон текста "Ст_КонкатенацияЗапросов" и вызываю этот шаблон в дальнейшем, где это будет необходимо.
Также, например у вас разработка с учетом локализации, изучаем стандарт Требования по локализации и описываем, например, стандарт сообщения с учетом локализации "Ст_Сообщение" (стандарт ОбщегоНазначенияКлиентСервер.СообщитьПользователю устарел. С версии БСП выше 2.1.4 cледует использовать ОбщегоНазначенияКлиент.СообщитьПользователю или ОбщегоНазначения.СообщитьПользователю), с кодом:
Еще пример по стандартам Реализация обработки данных > Обработка и модификация данных > Транзакции: правила использования, хотим где-то явно открывать транзакцию, создаем шаблон "Ст_ТранзакцияЯвная" с содержанием:
Таким образом со временем я формирую помощник по всеми стандартам и при необходимости использую уже сохраненные шаблоны текста, вместо того чтобы бегать по разделам в браузере, выискивать подходящий стандарт и, в конце концов устав от поиска, написать так, как получилось :), в итоге забросив совсем эти стандарты и писать так, как можешь :). Вот такой небольшой кейс из своей практики, который лично мне экономит время и улучшает качество моего кода. Кроме того, я привыкаю писать по стандартам, стал лучше читать и выявлять потенциальные ошибки в своем и чужом коде, лучше стал разбираться в применении тех или иных методов. Например вместо метода ОписаниеОшибки() лучше использовать ИнформацияОбОшибке() более подробное описание тут Соглашения при написании кода > Использование конструкций встроенного языка > Перехват исключений в коде .
Спасибо за внимание, хорошего дня.
Также предлагаю решения вашему вниманию:
Простой пример разработки регулярного обмена с использованием БСП на примере ERP 2.4 и УПП 1.3.
Универсальный отчет для сравнения записей регистров накопления между базами.
Универсальная выгрузка и загрузка зарегистрированных справочников и документов по узлу.
Загрузка данных из унифицированных форм УПД и ТОРГ-12.
Список документов и их количество в базе.
Консоль запросов к базе Oracle для 1С, без использования специализированных программ.