Обновим 1С с гарантией сохранности базы
Поможем с 1С 24/7, без выходных
Установим сервисы 1С бесплатно
Оперативно решим любые задачи по 1С
ИнструкцияО порядке внесения изменений и обновления конфигурации баз данных (БД) |
|
г. Москва | «07» октября 2019 г. |
Ответственный за обновление: Румянцев Даниил Романович
Версия документа | Дата | Автор | Описание основных изменений |
1.0 | 21.07.2017 | Румянцев Д.Р. | Документ разработан |
2.0 | 10.10.2019 | Румянцев Д.Р. | Документ изменен |
Настоящий документ составлен с целью определения порядка выполнения доработок конфигурации по задачам, выполняемым в рамках проекта.
В документе приведен порядок выполнения работ по задачам, которые касаются внесения изменений в конфигурацию БД (база данных), а также порядок обновления конфигурации.
Документ является обязательным к соблюдению изложенных в нем правил для всех участников проектной команды.
Формат комментариев приведен в Приложении 1;
ПРИЛОЖЕНИЕ 1
Оформление внесения изменений в конфигурацию
При внесении изменений в конфигурацию, в общем случае, все разработчики должны руководствоваться системой стандартов и методик разработки конфигураций для платформы 1С: Предприятие 8 установленной фирмой 1С
Обязательным является соблюдение следующих правил.
// Плохо:
Если ЭтоБрак Тогда Продолжить; КонецЕсли;
// Хорошо:
Если ЭтоБрак Тогда
Продолжить;
КонецЕсли;
// Плохо:
Сообщить(“Сумма: “+Сумма);
// Хорошо:
Сообщить(“Сумма: “ + Сумма);
// Начальное состояние (строка слишком длинная):
НалоговыйУчет.ОстаткиВременныхРазниц(СтрокаВидАктиваОбязательства, СписокОрганизаций, Реквизиты.НачалоГода, Реквизиты.КонДата);
// Плохо:
НалоговыйУчет.ОстаткиВременныхРазниц(
СтрокаВидАктиваОбязательства, СписокОрганизаций, Реквизиты.НачалоГода, Реквизиты.КонДата);
// Лучше:
НалоговыйУчет.ОстаткиВременныхРазниц(СтрокаВидАктиваОбязательства,
СписокОрганизаций,
Реквизиты.НачалоГода,
Реквизиты.КонДата);
// Хорошо:
НалоговыйУчет.ОстаткиВременныхРазниц(
СтрокаВидАктиваОбязательства,
СписокОрганизаций,
Реквизиты.НачалоГода,
Реквизиты.КонДата);
// Хорошо:
НоваяСтрока = ВидыОпераций.Добавить();
НоваяСтрока.ВидОперации = ВидОперации;
НоваяСтрока.НомерГруппы = ГруппаПоВидуОперации(ВидОперации);
НоваяСтрока.ПоОрганизацииВЦелом = ГруппаПоОрганизации(НоваяСтрок);
Все изменения в коде обязательно должны сопровождаться комментариями следующего вида:
//<—PR93 : [Автор] [ДатаВремя]
// СсылкаНаЗадачуВЯндексТрекер
// СсылкаНаЗадачуВАтлассиан
// КомментарийИзменений
… программный код …
//—>PR93:
Где:
Пример комментария:
//<—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 Редактирование нумерации». В модуле нумерации прописать доступ к редактированию нумерации только для данной роли.
В связи с переходом на систему Linux, использование com-объектов в конфигурации запрещено.
Яндекс 360 для бизнеса представляет собой настоящий виртуальный офис, который дарит Вашей команде доступ к корпоративной почте, календарю, облачному хранилищу,…
Согласно последним изменениям в законодательстве, в частности Закону от 04.08.2023 г. № 427-ФЗ, был внесен новый пункт в статью 431…
Плательщики налога на упрощенной системе налогообложения (УСН) обязаны не забыть подать в налоговую инспекцию уведомление о суммах рассчитанных авансов по…