Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Хранилище конфигурации

  • Все конфигурации должны быть подключены к хранилищам конфигураций

  • Расширения допускается не подключать к хранилищам

...

Примечание

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

Объекты конфигурации

...

Все новые объекты создаются с префиксом PRO_ (не важно кто является разработчиком)

...

Создание новых объектов конфигурации

Новый объект конфигурации должен иметь префикс PRO_ (независимо от разработчика, подрядчика)

Подсистема

Новый объект конфигурации должен быть размещен в подсистеме PRO_…

Если требуется добавить объект в штатную подсистему, то необходимо

...

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

Блок кода
//++PRO, текст комментария
// продолжение текста комментария 
  ...
  Код программы
  ...
//--PRO 

Создание новых объектов

...

захватить корень хранилища и необходимые подсистемы

...

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

...

сначала создать в этой подсистеме подсистему PRO_…

Исключения

Исключениями являются объекты, входящие в обновляемые подсистемы сторонних разработчиков, таких как: Diadoc. PAPI, ПИТ и т.п.

Если объекты таких подсистем не находятся на поддержке и не планируется их обновление, префикс должен быть PRO_

Как создать новый объект конфигурации

Т.к. захват корня хранилища может быть произведен только одним разработчиком в один момент времени, важно, чтобы эта процедура занимала минимальное время.

Примечание

Недопустимо надолго захватывать корень хранилища

  • Захватить корень хранилища и подсистемы, в которых будет размещен объект

  • Создать все объекты, которые необходимы для решения задачи, в том числе подсистемы. Включить все объекты в необходимые подсистемы

  • Создать роли на доступ к объектам, включить новые роли в те же подсистемы, в которые включен новый объект

  • Если новый объект - Константа, то добавить в общую форму разместить ее на общей форме PRO_Настройки, расположив в группе по смыслу значения

  • проверитьПроверить, что конфигурация собирается без ошибок (особенно при создании регистров)

  • вытолкнуть все новые объекты в хранилище

  • отпустить корень хранилища

Программирование

  • Тексты модулей могут содержать комментарии. . Это необходимо делать до создания модулей всех реквизитов объектов (кроме обязательных)

  • Поместить в хранилище все созданные объекты, оставив захваченными

  • Отпустить корень хранилища

Комментарий в тексте модуля

Комментарии должны содержать специальные символы для идентификации кода при обновлении.

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

Блок кода
languagecpp
//++PRO, Создает прокси на основе определения веб-сервиса и связывает
// его с точкой подключения веб-сервиса. 
  ...
  Код программы
  ...
//--PRO 

Программирование

  • Стандартные объекты не изменяем

...

НЕ писать комментарий перед процедурой/функцией, если необходимо добавить комментарий, то написать его внутри процедуры

Правильно

Блок кода
&НаКлиенте
Процедура PRO_РасчетЦен(Команда)
//Добавлена команда расчета цен, 01.01.2020

	Если Объект.Проведен=Истина Тогда
		PRO_ОбщегоНазначенияСервер.СформироватьОсновнойЗапросЦенообразования(Объект.Ссылка);
	Иначе
		Сообщить("Необходимо провести документ");
	КонецЕсли;
КонецПроцедуры

Неправильно

Блок кода
//++PRO, добавлена команда расчета цен, 01.01.2020
&НаКлиенте
Процедура PRO_РасчетЦен(Команда)
	Если Объект.Проведен=Истина Тогда
		PRO_ОбщегоНазначенияСервер.СформироватьОсновнойЗапросЦенообразования(Объект.Ссылка);
	Иначе
		Сообщить("Необходимо провести документ");
	КонецЕсли;
КонецПроцедуры
//--PRO

...

Примечание

Нельзя делать просто Отказ = Истина, необходимо ОБЯЗАТЕЛЬНО сообщить пользователю, что не так

Правильно

Блок кода
&НаСервере
Процедура ПередЗаписью(Отказ)
    Если ПорядокРасчетов <> Перечисления.ПорядокРасчетов.ПоДоговорамКонтрагентов Тогда
		ОбщегоНазначения.СообщитьПользователю(
			"У договора может быть только порядок расчетов ""По договорам"", укажите это свойство на странице ""Расчеты и оформление"" в поле ""Детализация расчетов""",
			Ссылка,,,
			Отказ);
	КонецЕсли;
КонецПроцедуры

Неправильно

Блок кода
&НаСервере
Процедура ПередЗаписью(Отказ)
	Если ПорядокРасчетов <> Перечисления.ПорядокРасчетов.ПоДоговорамКонтрагентов Тогда
		Отказ = Истина;
	КонецЕсли;
КонецПроцедуры
//--PRO

...