Главная Документация и Регламенты компании Порядок внесения изменений в конфигурацию

Порядок внесения изменений в конфигурацию

Инструкция

О порядке внесения изменений и обновления конфигурации баз данных (БД)

г. Москва«07» октября 2019 г.

Ответственный за обновление: Румянцев Даниил Романович

Версии

Версия документаДатаАвторОписание основных изменений
1.021.07.2017Румянцев Д.Р.Документ разработан
2.010.10.2019Румянцев Д.Р.Документ изменен

Аннотация

Настоящий документ составлен с целью определения порядка выполнения доработок конфигурации по задачам, выполняемым в рамках проекта.

В документе приведен порядок выполнения работ по задачам, которые касаются внесения изменений в конфигурацию БД (база данных), а также порядок обновления конфигурации.

Документ является обязательным к соблюдению изложенных в нем правил для всех участников проектной команды.

Общие требования к выполнению доработок конфигурации

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

Формат комментариев приведен в Приложении 1;

  1. Конфигурация БД, разрабатывается через расширение конфигурации.
  2. Новые объекты, такие как справочники, документы, регистры, а также новые реквизиты существующих объектов, добавляются в основную конфигурацию.
  3. В расширения добавляются — модули, формы, отчеты, обработки и т.д. По умолчанию в системе должно содержаться одно расширение. При добавлении других расширений необходимо согласовывать с Руководителем разработки 1С и на общем Stand Up.
  4. Использование скриптов допускается только с уведомления всей команды разработки и пониманием данных скриптов всех программистов.
  5. Для отчетов и обработок наименование и синоним должны совпадать.

ПРИЛОЖЕНИЕ 1

Оформление внесения изменений в конфигурацию

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

Обязательным является соблюдение следующих правил.

Оформление модулей

  • Длина строки в общем случае не должна превышать 120 символов.
  • Для отступов необходимо использовать символы табуляции.
  • Одна строка кода — одна управляющая конструкция.

// Плохо:

Если ЭтоБрак Тогда Продолжить; КонецЕсли;

// Хорошо:

Если ЭтоБрак Тогда

Продолжить;

КонецЕсли;

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

// Плохо:

Сообщить(“Сумма: “+Сумма);

// Хорошо:

Сообщить(“Сумма: “ + Сумма);

  • Для разделения на логические части внутри модуля следует использовать пустые строки
  • При вызове функции с несколькими параметрами при переносе строк необходимо выравнивать параметры по первому

// Начальное состояние (строка слишком длинная):

НалоговыйУчет.ОстаткиВременныхРазниц(СтрокаВидАктиваОбязательства, СписокОрганизаций, Реквизиты.НачалоГода, Реквизиты.КонДата);

// Плохо:

НалоговыйУчет.ОстаткиВременныхРазниц(

СтрокаВидАктиваОбязательства, СписокОрганизаций, Реквизиты.НачалоГода, Реквизиты.КонДата);

// Лучше:

НалоговыйУчет.ОстаткиВременныхРазниц(СтрокаВидАктиваОбязательства,

СписокОрганизаций,

Реквизиты.НачалоГода,

Реквизиты.КонДата);

// Хорошо:

НалоговыйУчет.ОстаткиВременныхРазниц(

СтрокаВидАктиваОбязательства,

СписокОрганизаций,

Реквизиты.НачалоГода,

Реквизиты.КонДата);

  • Выравнивание однотипных операторов. При следовании друг за другом нескольких однотипных операторов допускается их выравнивание. Выравнивание следует выполнять с помощью пробелов

// Хорошо:

НоваяСтрока = ВидыОпераций.Добавить();

НоваяСтрока.ВидОперации = ВидОперации;

НоваяСтрока.НомерГруппы = ГруппаПоВидуОперации(ВидОперации);

НоваяСтрока.ПоОрганизацииВЦелом = ГруппаПоОрганизации(НоваяСтрок);

Изменение (добавление) кода

Все изменения в коде обязательно должны сопровождаться комментариями следующего вида:

//<—PR93 : [Автор] [ДатаВремя]

// СсылкаНаЗадачуВЯндексТрекер

// СсылкаНаЗадачуВАтлассиан

// КомментарийИзменений

… программный код …

//—>PR93:

Где:

  • Автор — Фамилия и инициалы лица, совершившего изменения, например Иванов А.А.;
  • ДатаВремя — дата внесения изменений в формате «дата-время», например 27.08.2015 14:00;
  • КомментарийИзменений – описание реализованных изменений (что сделано и для чего)
  • СсылкаНаЗадачуВЯндексТрекер – ссылка на задачу в яндекс трекер
  • СсылкаНаЗадачуВАтлассиан – ссылка на задачу а атлассиан

Пример комментария:

//<—PR93: [Автор] [ДатаВремя]

// https://tracker.yandex.ru/ODINSDEV-504

// https://1c.programs93.ru/wiki/spaces/TECHSUPPORT/pages/2916356/1×26

// Исправление ошибки конфигуратора

// СтрокаНовая = 35 + «тест»;

СтрокаНовая = Строка(35) + «тест»;

//—>PR93:

Методы

Параметр функции не должен возвращать значение. Иными словами не используйте входные параметры функций как дополнительный вывод. Весь вывод должен быть в возвращаемом значении. Если нужно возвращать несколько значений следует использовать такие типы как Структура, Массив и т.д.

// Плохо:

URLСервиса = «»;

ИмяПользователя = «»;

ПарольПользователя = «»;

ЗаполнитьПараметрыПодключения(URLСервиса, ИмяПользователя, Пароль);

// Хорошо:

ПараметрыПодключения = ПолучитьПараметрыПодключения();

// Возвращаемое значение — структура:

// URLСервиса — Строка

// ИмяПользователя — Строка

// ПарольПользователя — Строка

Условия

Предпочтительней использовать тернарный оператор для простых конструкций.

// Плохо:Если НДС0 Тогда    Возврат 0;Иначе    Возврат 18;КонецЕсли; // Хорошо:Возврат ?(НДС0, 0, 18);

Не допускайте использования вложенных тернарных операторов.

Ключевое слово Тогда пишется на той же строке, что и последнее условие.

Сложные условия (содержащие 3 конструкции и более) необходимо выносить в отдельные методы в случае их использования в коде не менее.

// Плохо:

Если НДС0 Тогда

Возврат 0;

Иначе

Возврат 18;

КонецЕсли;

 

// Хорошо:

Возврат ?(НДС0, 0, 18);

Не допускайте использования вложенных тернарных операторов.

Ключевое слово Тогда пишется на той же строке, что и последнее условие.

Сложные условия (содержащие 3 конструкции и более) необходимо выносить в отдельные методы в случае их использования в коде не менее.

// Плохо:

Если ИдентификаторОбъекта = «АнализСубконто»

ИЛИ ИдентификаторОбъекта = «АнализСчета»

ИЛИ ИдентификаторОбъекта = «ОборотноСальдоваяВедомость»

ИЛИ ИдентификаторОбъекта = «ОборотноСальдоваяВедомостьПоСчету»

ИЛИ ИдентификаторОбъекта = «ОборотыМеждуСубконто»

ИЛИ ИдентификаторОбъекта = «ОборотыСчета»

ИЛИ ИдентификаторОбъекта = «СводныеПроводки»

ИЛИ ИдентификаторОбъекта = «ГлавнаяКнига»

ИЛИ ИдентификаторОбъекта = «ШахматнаяВедомость» Тогда

 

ПараметрыРасшифровки.Вставить(«ОткрытьОбъект», Ложь);

 

ЕстьПоказатель  = Ложь;

ЕстьКорЗначение = Ложь;

ЕстьСчет        = Истина;

Счет            = Неопределено;

ПервыйЭлемент   = Неопределено;

КонецЕсли;

 

// Хорошо:

Если ОткрыватьОбъектПриИдентификаторе(ИдентификаторОбъекта) Тогда

ПараметрыРасшифровки.Вставить(«ОткрытьОбъект», Ложь);

 

ЕстьПоказатель  = Ложь;

ЕстьКорЗначение = Ложь;

ЕстьСчет        = Истина;

Счет            = Неопределено;

ПервыйЭлемент   = Неопределено;

КонецЕсли;

 

Функция ОткрыватьОбъектПриИдентификаторе(ИдентификаторОбъекта)

 

Возврат ИдентификаторОбъекта = «АнализСубконто»

ИЛИ ИдентификаторОбъекта = «АнализСчета»

ИЛИ ИдентификаторОбъекта = «ОборотноСальдоваяВедомость»

ИЛИ ИдентификаторОбъекта = «ОборотноСальдоваяВедомостьПоСчету»

ИЛИ ИдентификаторОбъекта = «ОборотыМеждуСубконто»

ИЛИ ИдентификаторОбъекта = «ОборотыСчета»

ИЛИ ИдентификаторОбъекта = «СводныеПроводки»

ИЛИ ИдентификаторОбъекта = «ГлавнаяКнига»

ИЛИ ИдентификаторОбъекта = «ШахматнаяВедомость»;

 

КонецФункции

Избегайте использование Йода-синтаксиса.

// Плохо:Если 0 = Сумма Тогда // Хорошо:Если Сумма = 0 Тогда

Имена процедур, функций, переменных

Следуйте общему подходу именования

// Плохо:этобрак, ЭТОБРАК, этоБрак // Хорошо:ЭтоБрак

Не используйте отрицание в именах переменных и методов, не используйте слова со скрытыми значениями, отличными от предполагаемого.

// Плохо:Функция ПроверкаНеПройдена()… Если Не (Условие И Не ПроверкаНеПройдена()) Тогда // Хорошо:Функция ПроверкаПройдена()… Если Не Условие И Не ПроверкаПройдена() Тогда

Имя переменной, функции или класса должно отвечать на все главные вопросы. Оно должно сообщить, почему эта переменная (и т. д.) существует, что она делает и как используется. Если имя требует дополнительных комментариев, значит, оно не передает намерений программиста.

Имена методов должны представлять собой глаголы или глагольные сочетания.

В идеальном случае количество аргументов функции равно нулю (нульарная функция). Далее следуют функции с одним аргументом (унарные) и с двумя аргументами (бинарные). Функций с тремя аргументами (тернарных) следует по возможности избегать. Необходимость функций с большим количеством аргументов (полиарных) должна быть подкреплена очень вескими доводами — и все равно такие функции лучше не использовать.

Комментарии

Если код требует комментария для пояснения работы — в первую очередь необходимо рассмотреть варианты рефакторинга, чтобы код не требовал комментария.

К комментариям также относятся ограничения на длину строки в 120 символов.

Обрамление областей функция и процедур

Все добавленные функции и процедуры должны быть включены в область

#Область Доработки_PR93

… добавленные процедуры и функции …

#КонецОбласти

Добавление\изменение объектов конфигурации

Имена новых объектов конфигурации (документы, справочники, отчеты, реквизиты, измерения регистров и т.д.) должны начинаться с префикса, состоящего из идентификатора и нижнего подчеркивания. Если реквизиты входят в состав нового объекта, то префикс ставится для объекта, для реквизитов не ставится. Например если в документ добавлена новая табличная часть, то префикс ставится у табличной части, реквизиты именуются без префикса. Аналогично с реквизитами добавленных объектов, например “документ, справочник” и т.д.

Описание добавленных объектов помещать в общий модуль “Описание добавленных объектов”.

В рамках текущего проекта устанавливается идентификатор

PR93

Если производится добавление нового объекта с подчиненными (справочник и реквизиты с табличными частями), то нет необходимости ставить префикс в именах подчиненных объектов.

Пример:

Документ: PR93_ЗаявкаНаОборудование

Измерение регистра накопления: PR93_ИзмерениеНовое

В комментариях к новому или изменяемому объекту конфигурации необходимо добавить изменения вида:

//PR93:[ИдентификаторИзменения][ИмяОбъекта][Автор][ДатаВремя]

// СсылкаНаЗадачуВЯндексТрекер

// СсылкаНаЗадачуВАтлассиан

, где:

  • ИдентификаторИзменения – признак вида изменения объекта. Возможны два варианта:

+ — Добавление объекта

* — Изменение типового объекта

  • ИмяОбъекта – имя добавленного/измененного объекта;
  • Автор – Фамилия и инициалы лица, совершившего изменения;
  • ДатаВремя — дата внесения изменений в формате «дата-время»;
  • СсылкаНаЗадачуВЯндексТрекер – ссылка на задачу в яндекс трекер;
  • СсылкаНаЗадачуВАтлассиан – ссылка на задачу а атлассиан.

Этот комментарий должен располагаться в самом начале модуля объекта.

Пример:

Добавление объекта

// PR93:[+] [ИмяОбъекта] [Автор] [ДатаВремя]

// СсылкаНаЗадачуВЯндексТрекер

// СсылкаНаЗадачуВАтлассиан

Изменения объекта

// PR93:[*] [ИмяОбъекта] [Автор] [ДатаВремя]

// СсылкаНаЗадачуВЯндексТрекер

// СсылкаНаЗадачуВАтлассиан

В конфигурации должна быть в обязательном порядке добавлена подсистема

PR93_

В данной подсистеме помимо функциональных систем, должны в обязательном порядке присутствовать две подчиненные подсистемы

PR93_ДобавленныеОбъекты

PR93_ИзмененныеОбъекты

Все добавленные объекты конфигурации, помимо принадлежности к функциональным подсистемам должны принадлежать подсистеме

PR93_ДобавленныеОбъекты

Все изменённые типовые объекты конфигурации, помимо принадлежности к функциональным подсистемам должны принадлежать подсистеме

PR93_ИзмененныеОбъекты

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

При добавлении нового объекта добавляем новую роль, одноименную с названием объекта. Если требуется отдельная роль только на чтение нового объекта, то к наименованию в конце добавляем “_чтение”.

Изменение элементов формы.

Внесение изменений в элементы формы описывается в модуле формы, в конце формы:

//<— PR93: [Автор] [ДатаВремя]

// СсылкаНаЗадачуВЯндексТрекер

// СсылкаНаЗадачуВАтлассиан

// <Элемент формы> — <Описание изменений>

//—>PR93:

, где:

  • Элемент формы – Имя изменяемого (добавляемого, удаляемого, элемента формы);
  • Описание изменений – расшифровка изменений, произведенных с элементом формы.

Пример:

<— PR93: [Автор] [ДатаВремя]

// СсылкаНаЗадачуВЯндексТрекер

// СсылкаНаЗадачуВАтлассиан

// Добавление на форму новых реквизитов справочника

// НомерЗаказчика – Добавлен новый элемент на форму;

// Комментарий – поле ввода комментария перенесено на закладку «Характеристики»

//—>PR93:

Описание процедур и функций

Все процедуры и функции, добавляемые в модули объектов конфигурации, должны быть описаны.

Описание процедур и функций различаются только в том, что для функции необходимо указать возвращаемое значение.

Нумерация

Во всех используемых конфигурациях добавлять отдельную роль «PR93 Редактирование нумерации». В модуле нумерации прописать доступ к редактированию нумерации только для данной роли.

Использование COM-объектов

В связи с переходом на систему Linux, использование com-объектов в конфигурации запрещено.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Полезно знать

Где в 1с сделать справку 2 НДФЛ

В 1С есть возможность сделать два вида справок 2-НДФЛ: — для сотрудника; — для передачи в ИФНС. 1С Бухгалтерия: Заходим…

26 сентября, 2020
Как найти файловую базу и удалить ее зная путь к этой базе

Можно вставить ссылку на то где есть описание как определить какая база файловая (это было в статье по добавлению базы…

26 сентября, 2020
Ошибка СУБД. Внутренняя ошибка компоненты dbeng

При запуске информационной базы 1С может возникать следующая ошибка: Данная ошибка возникает из-за нарушения структуры внутреннего хранилища таблиц в базе…

26 сентября, 2020