📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Стандарты разработки в 1С

IRONSKILLS - Курсы по 1С15:56

Transcription

Привет, слышали ли вы что-нибудь про стандарты разработки? Если нет, то досмотрите этот ролик до конца, и вы узнаете, где стандарты опубликованы, а также как можно быстро проверить вашу конфигурацию на соответствие стандартам. Итак, погнали.

Существует определённое правило, которое описано на сайте фирмы 1С, по которым сама фирма 1С рекомендует вести разработку на платформе 1С предприятия. И как раз свод этих правил и называется стандартами разработки. В стандартах, к примеру, указано, каким образом формировать имена для переменных, как формировать имена для процедур и функций, как оформлять программный код, который вы пишете при решении тех или иных задач. И также есть большое количество других различных стандартов, в том числе стандарты, которые связаны с управляемыми формами, например, как отображать итоги по табличной части документа и многое, многое, многое другое.

У вас может появиться вопрос: "А зачем мне использовать стандарты? Ведь это усложняет мне жизнь!" И это только на первом этапе. Действительно, по началу использование стандартов разработки оно немножко усложняет жизнь, потому что вам нужно привыкнуть писать код и вообще вести разработку по немного другим правилам, чем те, по которым вы вели разработку до этого. Но в долгосрочной перспективе стандарты - это большой плюс, потому что когда вы к ним привыкнете, и когда к стандартам привыкнет каждый разработчик в вашей команде, вам гораздо легче будет сопровождать вашу конфигурацию и дорабатывать её. Вам будет проще, а также проще дорабатывать будет и другим разработчикам тоже. То есть, в долгосрочной перспективе конфигурация, которая разработана по стандартам, её гораздо легче сопровождать, её гораздо легче дорабатывать, чем конфигурация, которая написана не по стандартам, над которой работало, например, 10 разработчиков, каждый из которых разрабатывал так, как ему захочется. Поэтому стандарты - это однозначно важный элемент в разработке, особенно если вы ведёте разработку в команде.

Стандарты опубликованы на сайте фирмы 1С, и ИТС 1С. Для доступа к стандартам вам не нужна подписка ИТС. То есть, вы можете работать с ними хоть прямо сейчас, даже если у вас нет подписки.

Ну и давайте покажу вам, как они выглядят. Открывается страница, где у нас все стандарты сгруппированы по отдельным группам. И рассмотрим для примера соглашение при написании кода. Раскрываю вот этот раздел, далее раскроем подраздел "Оформление модулей", откроем стандарт "Тексты модулей". У каждого стандарта есть номер. Конкретно у стандарта, который мы только что открыли, номер 456. Он отображается на странице вверху справа, а также он содержится в самой ссылке 456. Далее описан сам текст этого стандарта. И вот первое, что мы здесь видим, то, что тексты модулей должны быть написаны на русском языке. Это понятно и достаточно просто. В текстах модулей не допускается использовать букву "ё". Кроме того, в текстах модулей не допускается использовать неразрывные пробелы и знак минус. Ну и здесь достаточно много разных рекомендаций, но это всё один стандарт.

Вернёмся назад. Откроем стандарт "Имена процедур и функций". У этого стандарта номер 647. И на уровне этого стандарта описано, каким образом фирма 1С рекомендует вам именовать процедуры и функции. И здесь вы можете посмотреть примеры, как правильно и как неправильно поступать, когда вы придумываете имя процедуры или имя функции. Ознакомьтесь с этим документом. Я не буду сейчас, конечно же, вам показывать все эти стандарты, потому что это займёт кучу времени, в этом нет особо большого смысла. Важно, чтобы вы открыли этот документ и начали его потихоньку изучать и постепенно применять эти стандарты в своей разработке.

И для того, чтобы сделать первый шаг, я вам рекомендую начать вот с этого стандарта. Он называется "Структура модуля". Номер у него 455. Давайте я вам открою этот стандарт и покажу, что в нём написано. Тут говорится про то, что в программных модулях важно, чтобы у вас были разделы. Разделы описываются в виде областей. В зависимости от того, с каким модулем вы работаете, это общий модуль или это модуль формы, или это модуль объекта, состав областей разный. Например, в общем модуле должны быть такие области: программный интерфейс, служебный программный интерфейс, служебные процедуры, функции. Если помотаем ниже, то тут описан шаблон областей для модулей объектов, менеджеров, наборов записей, обработок и отчётов. И вот этот стандарт, его достаточно просто внедрить в свою разработку, и это уже сделает вас на шаг ближе к разработке именно по стандартам.

А для того, чтобы этот стандарт вам было внедрить быстрее и проще, мы подготовили для вас небольшой файл с шаблонами текста. Ссылку на этот файл вы найдёте в описании к этому ролику. Сейчас покажу, как это можно использовать на практике. Для этого я открою конфигуратор Учебной базы и открою "Сервис" - "Шаблоны текста". У меня пока подключены только стандартные шаблоны текста. И добавим сюда новый файл шаблонов. Действие: "Настройка шаблонов". Добавляю новый файл и указываю путь к файлу шаблонов. Это тот файлик, который вы можете скачать в описание к этому ролику. Нажимаю "Открыть", потом нажимаем "ОК". И в итоге у вас появится ещё один файл шаблонов. И здесь представлено четыре шаблона текста: текст с набором областей для общего модуля, текст с набором областей для модуля объекта, менеджера, набора записей, текст с набором областей для модуля формы и текст с набором областей для модуля команды.

Ну и теперь давайте вам покажу, как это можно использовать. Открою, например, документ "Заказ" и открою модуль объекта этого документа. Мы видим, что здесь области не используются, соответственно, этот стандарт здесь не использовался при разработке этой конкретной конфигурации. Чтобы быстро сюда добавить все области, мы вводим сюда ключевое слово STM, потом выбираем нужный нам модуль. Мы находимся в модуле объекта, поэтому выбираю второй вариант, и у меня сразу появляются все области, которые нужны на уровне модуля объекта. После чего процедуры, которые здесь описаны, мы размещаем в нужных областях. Тут описаны три процедуры: "Обработка заполнения", "Перед записью" и "Обработка проверки заполнения". Все эти процедуры являются обработчиками событий объекта, поэтому эти процедуры переношу в область "Обработчики событий". Остальные области в данном случае нам не потребуются, их просто можно удалить. То есть, останется только одна область - "Обработчики событий".

Рассмотрим более сложный пример - это модуль формы. Открою модуль формы документа и увидим, что здесь у нас также области не используются. Давайте это исправим. Опять же, за счёт того, что у нас используются шаблоны, я пишу STM, потом нажимаю Enter и выбираю, что мы находимся в модуле формы, чтобы у нас сразу появились все области, которые используются на уровне модуля формы. Ну и дальше наша задача - это распределить код по областям. Во-первых, мы видим, что у нас есть переменная модуля "Адрес товаров", "Хранилище". Эту переменную переношу в область "Описание переменных". Дальше ищем обработчики событий и формы. Они тут наверняка должны быть, и в этом легко убедиться, можно перейдя в свойства формы, закладка "События". Вот мы видим, что определённые события у нас обрабатываются. Ну и найдём, например, событие "При создании на сервере". Тут рядом также есть "Чтение на сервере", "После записи на сервере". Вот эти три процедуры - это всё обработчики событий и формы, поэтому их переношу в область "Обработчики событий и формы". Дальше найдём ещё обработчики событий - это у нас "При открытии", "Обработка получения списка навигационных ссылок" и "Обработка получения навигационной ссылки". Эти процедуры тоже переношу в область "Обработчики событий формы". Двигаемся дальше. У нас на форме, наверняка, есть команды. Вот я уже вижу, есть команда "Подбора", например. И все процедуры, которые являются обработчиками команд, мы их должны разместить также в отдельной области. Давайте сначала найдём эти процедуры, и я нашёл вот их. У нас есть две: "Позвонить", "Отправить SMS". Поднимаюсь повыше, находим нужную область "Обработчики команд формы" и вставляю сюда вот эти процедуры. Что у нас тут есть ещё? У нас есть такие процедуры, как "Товары.КоличествоПриИзменении", "Товары.СуммаПриИзменении", "Товары.ЦенаПриИзменении". Это процедуры, которые являются обработчиками событий элементов таблицы формы "Товары". То есть, у нас есть таблица, у неё есть колонки, каждая колонка - это отдельный элемент формы, и у нас есть процедуры, которые обрабатывают события этих элементов. И обработчики таких событий надо размещать в области, имя которое формируется по следующему шаблону: "Обработчики событий элементов таблицы формы", а имя таблицы формы меняю на "Товары", потому что так называется наша таблица, и сюда вставляю как раз вот эти три процедуры. Дальше посмотрим, что у нас тут ещё осталось. Так, вот ещё "Товар" и "Товар ПриИзменении". Это, кстати, тоже процедура, которая является обработкой элемента таблицы формы "Товары". Дальше, пролистав далее, вижу здесь есть вот такие процедуры: "Покупатель ПриИзменении", "Вид цен ПриИзменении". Это обработчики событий элементов шапки формы. Эти процедуры должны находиться в отдельной области, которая так и называется "Обработчики событий элементов шапки формы". И что у нас тут ещё осталось? Это "Организация ПриИзменении". Это также у нас обработчик события элемента шапки формы. Переношу его в эту область. Плюс внизу я ещё обратил внимание, есть у нас процедура "Обработка записи нового". Это обработчик события формы. Его переношу в соответствующую область "Обработчики событий формы". Теперь у нас остались только те процедуры, которые являются служебными и функции также. То есть, процедуры и функции. Все эти процедуры и функции переношу в область "Служебные процедуры и функции". Ну и лишний комментарий, конечно, здесь тоже есть смысл убрать. Лишние пустые строки тоже уберём, и, в принципе, всё.

Теперь мы можем, используя комбинацию клавиш Ctrl+Shift+минус, свернуть всё до уровня заголовков областей и увидеть всю структуру нашего модуля: "Описание переменных", "Обработчики событий и формы", "Обработчики событий элементов шапки формы". И в таком модуле ориентироваться гораздо проще. То есть, найти, например, обработчик события формы, вы можете очень быстро и просто. Не надо листать весь модуль, а вы просто сворачиваете всё до уровня имён областей, находите нужную область, раскрываете её и ищете здесь процедуру, которая связана с тем событием, которое вы хотите доработать или переопределить, или доопределить.

Рассмотрим ещё один пример - это модуль команды. Общая команда. Вот у нас есть, например, команда "Установить сканер штрихкодов". Тут тоже нет каких областей. И в модуле команды у нас должны использоваться другие области. Опять же, пишу здесь STM, используем наш файл шаблонов, указываю, что мы находимся в модуле команды, и у нас создаётся две области для модуля команд: это "Обработчики событий" и "Служебные процедуры и функции". У нас тут только одна процедура - это "Обработка команды". Это процедура является обработчиком события, поэтому переношу в соответствующую область. А область "Служебные процедуры и функции" в данном случае нам не нужна, просто её удаляем. То есть, пустые области оставлять тоже нет смысла. И вот таким образом мы с вами применили стандарт 455 "Структура модуля" к трём модулям в нашей конфигурации: это модуль команды, это модуль объекта документа "Заказ", и это модуль формы документа "Заказ" опять же. Ну а дальше можно этот стандарт внедрить во все остальные модули, которые есть в текущей конфигурации. Но я этого делать сейчас не буду. Мне важно было вам показать сам принцип, как этот стандарт вообще можно применять на практике. Не откладывайте на потом, а внедрите этот стандарт сегодня и начните использовать области во всех модулях, с которыми вы работаете. Поверьте, уже спустя неделю вы почувствуете, насколько это удобно и круто, когда у вас есть в модуле области.

И покажу вам ещё один полезный инструмент, который позволяет быстро проверить конфигурацию на соответствие стандартам. Есть специальная конфигурация, она называется "1С: Автоматизированная проверка конфигурации", которая позволяет в автоматическом режиме проверить вашу конфигурацию на соответствие стандартам. Скачать эту конфигурацию можно с сайта фирмы 1С releases.1c.ru. Ссылка перед вами на экране. И у этой конфигурации, как и у других конфигураций, есть разные версии. Последняя версия вышла 18 декабря этого года, и эту версию я уже скачал. Покажу вам, как эта конфигурация может применяться. Для этого я открою каталог, где у меня находится архив с дистрибутивов шаблона конфигурации, извлеку из архива. После этого установим шаблон конфигурации на этот компьютер. В моём случае это папка E:\Шаблоны\1С. После установки шаблона нам нужно будет создать информационную базу на основе этого шаблона. Добавляю новую информационную базу. База у нас будет файловая, и в качестве шаблона выбираю "1С: Автоматизированная проверка конфигурации", причём шаблон не "Демо", а без данных, то есть просто "Автоматизированная проверка конфигурации". Выбираю эту версию. Дальше укажем здесь сокращение "АК" и в нашем случае это версия 1.28.0. Пусть это будет файловая база. Размещу её на диске D в каталоге bases, укажу папочку АК, дальше 1_28, и это будет каталог нашей файловой базы. Далее "Готово". И теперь запустим сеанс в режиме 1С предприятия.

Перед нами открывается вот такое окошко, где мы можем добавить новую конфигурацию, которую мы хотим проверить на соответствие стандартам. Я не буду вам подробно рассказывать про весь функционал этой конфигурации, потому что это займёт много времени. Вместо этого я вам просто скажу, где можно почитать более подробно про функционал этой конкретной конфигурации. В каталоге шаблонов, куда вы установите шаблон этой конфигурации, вы найдёте вот такой документ "Руководство пользователя". Это PDF-документ, который фактически содержит в себе инструкцию по использованию вот этой конфигурации. Ну, а я вам покажу просто, как можно проверить вот эту нашу конфигурацию, где мы только что внедрили стандарт 455 в парочку модулей, на соответствие стандартам. Для этого мы добавляем новую конфигурацию, потом указываем её имя. Ну, в моём случае, пусть имя будет "Демо". Указываем наименование полное тоже "Демо" и указываем ответственного за конфигурацию. В конфигурации "Автоматизированная проверка конфигурации" может быть несколько пользователей, каждый из которых будет отвечать за какую-то одну конфигурацию. В моём случае пользователя нет, выбираю пользователя "Не авторизован". После чего мне нужно выбрать версию платформы. На моём компьютере используется 8.3.23, поэтому оставляю эту версию. И здесь указан путь к файлу 1cv8.exe, который находится в каталоге платформы. Дальше нам нужно указать путь к источнику проверки. Это как раз путь к файловой базе, которая содержит в основе ту конфигурацию, которую вы хотите проверить. То есть, если у вас база работает в клиент-серверном варианте работы, то вы можете сделать следующее: сохранить конфигурацию в файл, дальше создать новую файловую информационную базу, куда загрузить эту конфигурацию и потом её уже проверять. В текущей версии конфигурации нет возможности подключиться к клиент-серверной базе, поэтому путь к источнику данных я указываю путь к АК базе вот этой. Для этого я посмотрю этот путь. D:\bases\АК\1_28. Выбираю эту папку. И дальше нужно указать пользователя. В моём случае это будет пользователь "Администратор", и пароль у него пустой. Здесь также есть возможность загружать конфигурацию из хранилища. То есть, если вы разработку ведёте в команде, используете хранилище конфигурации, то можно получать изменения из хранилища и проверять их на соответствие стандартам. Также тут есть возможность настроить проверяемые требования. Ну и по умолчанию у нас включена группа "1С:Совместима". Выключу эту группу, включу группу "Система стандартов". Это как раз те стандарты, которые я вам показывал. Также здесь можно включить проверку орфографии, но мы этого делать сейчас не будем. Затем нажимаю "Записать и проверить подключение". Если проверка прошла успешно, то вы увидите вот такое предупреждение: "Подключение выполнено успешно". Нажимаем "ОК". После этого ещё раз "ОК". И дальше нужно создать новую проверку. Выбираем вариант "Собрать данные", "Проверить". И запускается отдельная форма "Запуск проверки", где мы можем ещё выполнить ряд настроек. Оставим всё по умолчанию, не буду ничего здесь настраивать. Нажимаю "Выполнить проверку", потом соглашаемся с предупреждением, и начинается проверка конфигурации на на соответствие стандартам. И нам остаётся только дождаться, пока эта проверка завершится.

Когда у вас откроется вот такое окошко, нажмите здесь просто "Да". И теперь ждём, пока завершится проверка. Это займёт определённое время. Чем больше конфигурация, тем дольше будет выполняться проверка. В моём случае конфигурация небольшая, поэтому проверка должна пройти достаточно быстро. Итак, проверка завершена, и мы видим на экране количество обнаруженных ошибок. Это гиперссылка, можно кликнуть по ней, и дальше откроется отчёт. Отчёт по ошибкам, где мы можем уже проанализировать конкретные ошибки. Все ошибки, они сгруппированы по объектам метаданных. Вот, например, у нас есть документ "Заказ". Если мы раскроем этот документ, то мы увидим, что вот у нас есть нарушение стандартов, например, "Серверный код не заключён в инструкцию директивы #region". Чтобы понять, что это за стандарт, кликаю два раза по ячейке, открывается форма, где более подробная информация об ошибке, и здесь есть ссылочка на сам стандарт. Мы видим 680. Кликнув по ссылке, откроется страница этого стандарта. Вот, обратите внимание, это стандарт номер 680 "Поддержка Толстого клиента, управляемое приложение и клиент-сервер". Другой пример - это "Документ не имеет реквизиты Комментарий". Открываю эту ошибку, кликаем по ссылке, и видим, что есть оказывается стандарт номер 531, который говорит о том, что у документов должен быть реквизит "Комментарий", и здесь также указано, как этот реквизит надо настроить, то есть какой тип у него должен быть и как реализовать редактирование комментария. Вот таким образом, используя этот отчёт, мы можем очень быстро понять, где нам нужно внести изменения для того, чтобы наша конфигурация соответствовала стандартам.

Вот такой есть полезный инструмент. К слову, это не единственный инструмент, позволяющий проверять конфигурацию на стандарты. Есть и другие, но в этом ролике я специально не хотел усложнять, хотел вам показать достаточно простой инструмент, который может применить любой человек, даже если вы только начинаете писать код и только изучаете программирование в 1С.

Итак, теперь вы знаете, где найти стандарты разработки 1С, а также как проверить конфигурацию на соответствие стандартам. Начните использовать стандарты разработки уже сегодня. Пока!