Тип: КоллекцияОбъектовМетаданных. Коллекция объектов метаданных, описывающих ресурсы данного объекта метаданных.
Полное описание, параметры и ограничения
ОбъектМетаданных: РегистрБухгалтерии.Ресурсы (MetadataObject: AccountingRegister.Resources)
ОбъектМетаданных: РегистрБухгалтерии (MetadataObject: AccountingRegister)
Ресурсы (Resources)
Доступен, начиная с версии 8.1.
Использование:
Только чтение.
Описание:
Тип: КоллекцияОбъектовМетаданных.
Коллекция объектов метаданных, описывающих ресурсы данного объекта метаданных.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Разделить разрезы, показатели и реквизиты схемы регистра
В предоставленной схеме четыре измерения, восемь ресурсов, три реквизита и 12 стандартных описаний. Эти числа не являются строками или суммами регистра.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.
Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.
Имена объектов взяты из XML КА2 Progress: C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Исходные XML не изменяйте. Выполняйте код только в своей учебной копии соответствующей конфигурации.
В другой конфигурации предварительно найдите аналогичный объект в Конфигураторе и замените только строку имени в поиске. Отсутствие имени обрабатывается до чтения свойств; оно не доказывает отсутствие аналогичной возможности.
Каждый урок запускайте отдельно. Код не вызывает бизнес-функции модулей и обработчики команд, не переключает привилегированный режим и не меняет параметры сеанса.
Описание = Метаданные.РегистрыБухгалтерии.Найти("Хозрасчетный");
Если Описание = Неопределено Тогда
ВызватьИсключение "В учебной конфигурации отсутствует РегистрыБухгалтерии.Хозрасчетный";
КонецЕсли;
Сообщить(Описание.Измерения.Количество() = 4);
Сообщить(Описание.Ресурсы.Количество() = 8);
Сообщить(Описание.Реквизиты.Количество() = 3);
Сообщить(Описание.СтандартныеРеквизиты.Количество() = 12);
Для Каждого Измерение Из Описание.Измерения Цикл
Сообщить("Разрез: " + Измерение.Имя);
КонецЦикла;
Для Каждого Ресурс Из Описание.Ресурсы Цикл
Сообщить("Показатель: " + Ресурс.Имя);
КонецЦикла;
Для Каждого Реквизит Из Описание.Реквизиты Цикл
Сообщить("Реквизит: " + Реквизит.Имя);
КонецЦикла;
Для Каждого Стандартный Из Описание.СтандартныеРеквизиты Цикл
Сообщить("Стандартный: " + Стандартный.Имя);
КонецЦикла;Разбор по шагам
Измерения описывают разрезы учёта: Организация, Валюта, Подразделение, НаправлениеДеятельности.
Ресурсы описывают показатели, например Сумма/Количество; здесь не читается их значение из данных.
Реквизиты и стандартные поля перечисляем отдельно. ОписанияСтандартныхРеквизитов перебираем, без несуществующего Найти.
Сравниваем размеры коллекций с конкретной предоставленной схемой, не переносим числа на другую конфигурацию.
Как проверить результат
Четыре сравнения Истина, выводится 4 + 8 + 3 + 12 именованных описаний.
Не получены остатки, обороты, налоговые/бухгалтерские суммы или строки документов.
Ожидаемый результат
Получен понятный паспорт полей конкретного регистра.
На что обратить внимание
Одинаковая числовая типизация ресурсов не означает одинаковую единицу или прикладной смысл.
Это схема, не проверка балансировки проводок.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Составить две незаписанные проводки и понять смысл Итог
Дебет и кредит находятся в одной записи регистра с корреспонденцией. Сумма 800 — сумма двух строк, не остаток счёта по базе.
Где и как запускать
Полный серверный общий модуль своей отдельной конфигурации УчебнаяБухгалтерия85.
Подготовка
Создайте НОВУЮ пустую файловую базу с именем корневой конфигурации УчебнаяБухгалтерия85, управляемым режимом блокировок. Это отдельный стенд, не УТ/КА2/УНФ/БП и не копия с рабочими данными.
Планы счетов → УчебныеСчета85: код Строка 20, Максимальное количество субконто 0, без флагов учёта. Создайте два предопределённых негрупповых счёта: УчебныйАктив, код DEMO-A, вид Активный; УчебныйПассив, код DEMO-P, вид Пассивный. Оба не забалансовые. Не создавайте счёт 41/60 и не называйте опыт реальным планом бухучёта.
Документы → УчебнаяОперация85: номер Строка 40, автонумерация выключена. Без пользовательских реквизитов, проведения, обработчиков, подписок, планов обмена и внешних вызовов.
Регистры бухгалтерии → УчебныеПроводки85: план УчебныеСчета85, Корреспонденция включена. Единственное измерение МеткаОперации: Строка 80, Балансовый включён, проверка заполнения Показывать ошибку. Единственный ресурс Сумма: Число 15,2, Балансовый включён. Реквизитов нет. Длина уточнения периода 3.
Создайте второй регистр УчебныеОдносторонние85 с теми же планом, измерением, ресурсом и длиной уточнения периода, но Корреспонденция выключена. У обоих единственный регистратор УчебнаяОперация85. Модули наборов и документа пустые, кроме отдельной экспортной учебной процедуры в последнем уроке.
Обновите конфигурацию базы данных и убедитесь, что предопределённые счета созданы как данные. Создайте серверный общий модуль УчебнаяБухгалтерияПримеры с флагом Сервер. Вставьте весь модуль одного урока, вызовите УчебнаяБухгалтерияПримеры.ВыполнитьПример() из серверной команды своей обработки.
Первые семь задач не записывают данные. Восьмая кратковременно записывает собственный документ и проводки в собственной транзакции, которую обязательно отменяет. Девятая относится к модулю собственного набора, а не общему модулю.
Отмена транзакции не отменяет письма, HTTP и внешние файлы. Поэтому у собственного документа и наборов не должно быть таких обработчиков или подписок. Привилегированный режим не включается.
Процедура ВыполнитьПример() Экспорт
Если Метаданные.Документы.Количество() <> 1
ИЛИ Метаданные.ПланыСчетов.Количество() <> 1
ИЛИ Метаданные.РегистрыБухгалтерии.Количество() <> 2
ИЛИ Метаданные.Документы.Найти("УчебнаяОперация85") = Неопределено
ИЛИ Метаданные.ПланыСчетов.Найти("УчебныеСчета85") = Неопределено Тогда
ВызватьИсключение "Разрешены только собственные документ, план счетов и два регистра";
КонецЕсли;
Если Метаданные.ПланыСчетов.УчебныеСчета85.МаксКоличествоСубконто <> 0 Тогда
ВызватьИсключение "В этом опыте план счетов без субконто";
КонецЕсли;
Для Каждого ИмяРегистра Из СтрРазделить("УчебныеПроводки85,УчебныеОдносторонние85", ",") Цикл
Описание = Метаданные.РегистрыБухгалтерии.Найти(ИмяРегистра);
Если Описание = Неопределено Тогда
ВызватьИсключение "Не найден собственный регистр " + ИмяРегистра;
КонецЕсли;
Если Описание.Корреспонденция <> (ИмяРегистра = "УчебныеПроводки85")
ИЛИ Описание.ПланСчетов.Имя <> "УчебныеСчета85"
ИЛИ Описание.Измерения.Количество() <> 1
ИЛИ Описание.Ресурсы.Количество() <> 1
ИЛИ Описание.Реквизиты.Количество() <> 0
ИЛИ Описание.Измерения.Найти("МеткаОперации") = Неопределено
ИЛИ Описание.Ресурсы.Найти("Сумма") = Неопределено
ИЛИ Описание.ДлинаУточненияПериода <> 3 Тогда
ВызватьИсключение "Схема собственного регистра отличается от учебной";
КонецЕсли;
КонецЦикла;
СчетДебета = ПланыСчетов.УчебныеСчета85.УчебныйАктив;
СчетКредита = ПланыСчетов.УчебныеСчета85.УчебныйПассив;
Если СчетДебета.Пустая() ИЛИ СчетКредита.Пустая() Тогда
ВызватьИсключение "Нужны два собственных предопределённых счёта";
КонецЕсли;
Если СчетДебета.ПолучитьОбъект() = Неопределено ИЛИ СчетКредита.ПолучитьОбъект() = Неопределено Тогда
ВызватьИсключение "Данные собственных счетов не созданы";
КонецЕсли;
СвояСсылка = Документы.УчебнаяОперация85.ПолучитьСсылку(Новый УникальныйИдентификатор);
Набор = СвойНаборПроводок(СвояСсылка, СчетДебета, СчетКредита);
Сообщить(Набор.Количество() = 2);
Сообщить(Набор.Итог("Сумма") = 800);
Для Каждого Запись Из Набор Цикл
Сообщить(Запись.СчетДт = СчетДебета И Запись.СчетКт = СчетКредита);
Сообщить(Запись.Регистратор = СвояСсылка);
Сообщить(ТипЗнч(Запись.МоментВремени()) = Тип("МоментВремени"));
Сообщить("Номер незаписанной строки: " + Строка(Запись.НомерСтроки));
Сообщить("Уточнение периода: " + Строка(Запись.УточнениеПериода));
КонецЦикла;
Сообщить(Набор.Метаданные().Имя = "УчебныеПроводки85");
Сообщить(Набор.Метаданные().Корреспонденция);
КонецПроцедуры
Функция СвойНаборПроводок(СвояСсылка, СчетДебета, СчетКредита)
Набор = РегистрыБухгалтерии.УчебныеПроводки85.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(СвояСсылка);
Для Каждого СуммаСтроки Из СтрРазделить("750,50", ",") Цикл
Запись = Набор.Добавить();
ЗаполнитьСвоюПроводку(Запись, СвояСсылка, СчетДебета, СчетКредита, Число(СуммаСтроки));
КонецЦикла;
Возврат Набор;
КонецФункции
Процедура ЗаполнитьСвоюПроводку(Запись, СвояСсылка, СчетДебета, СчетКредита, СуммаСтроки)
Запись.Период = Дата(2026, 9, 15, 10, 0, 0);
Запись.Регистратор = СвояСсылка;
Запись.Активность = Истина;
Запись.СчетДт = СчетДебета;
Запись.СчетКт = СчетКредита;
Запись.МеткаОперации = "DEMO-BOOK";
Запись.Сумма = СуммаСтроки;
КонецПроцедурыРазбор по шагам
СвояСсылка создаётся для нового UUID, документ не записывается. Набор и две проводки живут в памяти.
Заполнить обе стороны каждой проводки собственными предопределёнными счетами, суммы 750 и 50.
Итог("Сумма") складывает 750+50. У корреспондирующей записи нет отдельного ВидДвижения Дебет/Кредит как у одностороннего регистра.
Прочитать момент времени, номер строки и уточнение периода. Номер в памяти не используется как доказательство существования записи в базе.
Сопоставить реальное описание регистра с собственной схемой.
Как проверить результат
Десять булевых сообщений Истина и четыре фактических сообщения о номерах и уточнениях двух строк.
Ни собственный документ, ни эти 800 в базу не записаны; это не отчёт о бухгалтерских остатках.
Ожидаемый результат
Есть две законченные проводки в памяти и проверка структуры корреспонденции.
На что обратить внимание
Не вычисляйте бухгалтерский остаток только Итог("Сумма"): нужны активность, счёт, направление, период и реально записанные данные.
НомерСтроки и УточнениеПериода записи только читаются. Уточнение доступно здесь потому, что в собственной схеме его длина 3.
Урок не моделирует НДС, себестоимость или правила реального плана счетов.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.