Менеджер получен из существующего собственного регистра, измерение создано в его метаданных. Набор перерасчёта остаётся в памяти.
Где и как запускать
Собственная серверная процедура в отдельной учебной конфигурации; источник создаёт только свои объекты.
Подготовка
Работайте только в собственной пустой учебной конфигурации. В Конфигураторе создайте ПланВидовРасчета УчебныеВидыРасчета; не добавляйте эти учебные объекты в рабочую базу.
Код — строковый длиной 10, наименование длиной 100. Для справочника, плана обмена и плана видов характеристик включите автонумерацию. Для счетов и видов расчёта код назначается явно в примере.
Для плана видов расчёта не включайте зависимость от базового периода и действие по периоду. Регистры расчёта в этом уроке не нужны.
Добавьте реквизиты Комментарий (Строка 100), Лимит (Число 15.2 с разрешённым отрицательным знаком), ЗапретУдаления (Булево). Не делайте их автоматически обязательными: дополнительные правила описаны отдельными обработчиками.
Для этой диагностики дополнительно создайте документ УчебныйРасчетНастроек с разрешённым проведением. Создайте регистр расчёта УчебныеНачисленияНастроек, периодичность Месяц, план видов расчёта УчебныеВидыРасчета, регистратор УчебныйРасчетНастроек, ресурс Результат типа Число 12.2.
У регистра расчёта УчебныеНачисленияНастроек добавьте измерение КодКниги Строка 40. Создайте перерасчёт УчебнаяПроверка с измерением КодКниги, свяжите его с одноимённым основным измерением регистра.
Объект перерасчёта — собственный документ УчебныйРасчетНастроек. Остальные механизмы расчёта оставьте выключенными. Источник ниже создаёт собственные вид расчёта, документ и начисление 750 только внутри отменяемой транзакции.
Обе процедуры разместите отдельно в своём серверном общем модуле. Вызовите экспортную ПроверитьСвойПерерасчет из отдельной команды вне внешней транзакции. Создаются собственный документ и начисление, но подготовленный набор перерасчёта НЕ записывается. Весь источник отменяется в обеих ветках драйвера.
Не подставляйте реальные регистры начислений и документы. BSL и запись источника при сборке HTML не выполнялись.
Процедура ПроверитьСвойПерерасчет() Экспорт
Если ТранзакцияАктивна() Тогда
ВызватьИсключение "Запустите отдельную команду вне чужой транзакции";
КонецЕсли;
НачатьТранзакцию();
Попытка
Набор = ПодготовитьСвойПерерасчет();
Сообщить("Собственное измерение: " + Набор[0].КодКниги);
Сообщить("Строк перерасчёта в памяти: " + Строка(Набор.Количество()));
ОтменитьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедурыТот же серверный общий модуль: реальный собственный менеджер и строка перерасчёта
Функция ПодготовитьСвойПерерасчет()
ВидРасчета = ПланыВидовРасчета.УчебныеВидыРасчета.СоздатьВидРасчета();
ВидРасчета.Код = Лев(Строка(Новый УникальныйИдентификатор), 8);
ВидРасчета.Наименование = "Учебное начисление";
ВидРасчета.Записать();
Документ = Документы.УчебныйРасчетНастроек.СоздатьДокумент();
Документ.Дата = Дата(2026, 10, 14);
Документ.Записать();
Набор = РегистрыРасчета.УчебныеНачисленияНастроек.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(Документ.Ссылка);
Запись = Набор.Добавить();
Запись.ПериодРегистрации = Дата(2026, 10, 1);
Запись.ВидРасчета = ВидРасчета.Ссылка;
Запись.Активность = Истина;
Запись.Результат = 750;
Запись.КодКниги = "BOOK-001";
Набор.Записать();
Менеджер = РегистрыРасчета.УчебныеНачисленияНастроек.Перерасчеты.УчебнаяПроверка;
Набор = Менеджер.СоздатьНаборЗаписей();
Набор.Отбор.ОбъектПерерасчета.Установить(Документ.Ссылка);
Запись = Набор.Добавить();
Запись.ОбъектПерерасчета = Документ.Ссылка;
Запись.КодКниги = "BOOK-001";
Возврат Набор;
КонецФункцииРазбор по шагам
Подготовьте свой регистр и перерасчёт с измерением.
Создайте ограниченный собственный источник, получите менеджер по точному имени.
Добавьте строку в памяти и прочитайте настоящий КодКниги до записи перерасчёта.
Как проверить результат
КодКниги возвращает BOOK-001 потому, что поле создано и заполнено в реальной строке.
Оба описания менеджера перерасчётов относятся к документированному доступу через Перерасчеты.УчебнаяПроверка. Код не назначает сам менеджер в readonly-свойство.
Ожидаемый результат
Имя менеджера и динамическое измерение имеют собственный настоящий источник.
На что обратить внимание
Набор перерасчёта в памяти ещё не означает регистрацию необходимости пересчёта в базе.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.