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

Ключ

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

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

...

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

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

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

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

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

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

Расширения

Расширения могут быть использованы в двух случаях:

...

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

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

При разработке отчета и обработки

...

Все изменения вносятся программно в модуле объекта, обычно в . В процедуре ПриСозданииНаСервере вызывается функция модуля PRO__СобытияФорм

Блок кода
в модуле объекта формы:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

...

//++PRO, Необходимо вывести на форму реквизит PRO_ПоклажедательPRO
  PRO__СобытияФорм.ПриСозданииНаСервере(ЭтаФорма);
//--PRO
...
КонецПроцедуры

в общем модуле: 
Процедура ПриСозданииНаСервере(ЭтаФорма) Экспорт 	
	ИмяФормы = ЭтаФорма.ИмяФормы;
	Если ИмяФормы = "Справочник.Контрагенты.Форма.ФормаЭлемента" Тогда
		ПриСозданииНаСервереКорреспонденты(ЭтаФорма);	
	ИначеЕсли ИмяФормы = ... Тогда
		...
	КонецЕсли;
КонецПроцедуры

Процедура ПриСозданииНаСервереКорреспонденты(ЭтаФорма)
  НовыйЭлемент = ЭтаФорма.Элементы.Добавить("PRO_Поклажедатель", Тип("ПолеФормы"), ЭтаФорма.Элементы.ГруппаСтраницы);
  НовыйЭлемент.Вид = ВидПоляФормы.ПолеФлажка;
  НовыйЭлемент.ПутьКДанным = "Объект.PRO_Поклажедатель";
//--PRO КонецПроцедуры ...

КонецПроцедуры

Добавить процедуру/функцию в стандартный модуль объекта

...

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

Правильно

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

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

Неправильно

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

...

Примечание

При отказе записи объекта ОБЯЗАТЕЛЬНО формировать сообщение пользователю о причине отказа

Правильно

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

Неправильно

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

...

Свойства страницы
hiddentrue

Связанный запросы

https://ooo-rassvet.atlassian.net/browse/CATE-41