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

Ключ

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

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

...

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

Добавление собственных реквизитов и табличных частей в стандартные объекты

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

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

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

...

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

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

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

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

  • Проверить, что конфигурация собирается без ошибок (особенно при создании регистров). Это необходимо делать до создания модулей всех реквизитов объектов (кроме обязательных)

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

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

Как заменить реквизит или объект на новый

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

  • Переименовать старый реквизит - добавить в начало префикс Удалить_

  • При переименовании уесть изменение кода модулей

  • Добавить новый реквизит с новым типом

  • Изменить код модулей таким образом, чтобы он работал с новым реквизитом

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

  • После обновления выполнить обработку

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

...

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

Правильно

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

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

Неправильно

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

...

Примечание

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

Правильно

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

Неправильно

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

...