Разделить разрезы, показатели и реквизиты схемы регистра

Учебные задачи

В предоставленной схеме четыре измерения, восемь ресурсов, три реквизита и 12 стандартных описаний. Эти числа не являются строками или суммами регистра.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.

  2. Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.

  3. Имена объектов взяты из XML КА2 Progress: C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Исходные XML не изменяйте. Выполняйте код только в своей учебной копии соответствующей конфигурации.

  4. В другой конфигурации предварительно найдите аналогичный объект в Конфигураторе и замените только строку имени в поиске. Отсутствие имени обрабатывается до чтения свойств; оно не доказывает отсутствие аналогичной возможности.

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

Описание = Метаданные.РегистрыБухгалтерии.Найти("Хозрасчетный");
Если Описание = Неопределено Тогда
    ВызватьИсключение "В учебной конфигурации отсутствует РегистрыБухгалтерии.Хозрасчетный";
КонецЕсли;
Сообщить(Описание.Измерения.Количество() = 4);
Сообщить(Описание.Ресурсы.Количество() = 8);
Сообщить(Описание.Реквизиты.Количество() = 3);
Сообщить(Описание.СтандартныеРеквизиты.Количество() = 12);
Для Каждого Измерение Из Описание.Измерения Цикл
    Сообщить("Разрез: " + Измерение.Имя);
КонецЦикла;
Для Каждого Ресурс Из Описание.Ресурсы Цикл
    Сообщить("Показатель: " + Ресурс.Имя);
КонецЦикла;
Для Каждого Реквизит Из Описание.Реквизиты Цикл
    Сообщить("Реквизит: " + Реквизит.Имя);
КонецЦикла;
Для Каждого Стандартный Из Описание.СтандартныеРеквизиты Цикл
    Сообщить("Стандартный: " + Стандартный.Имя);
КонецЦикла;

Разбор по шагам

  1. Измерения описывают разрезы учёта: Организация, Валюта, Подразделение, НаправлениеДеятельности.

  2. Ресурсы описывают показатели, например Сумма/Количество; здесь не читается их значение из данных.

  3. Реквизиты и стандартные поля перечисляем отдельно. ОписанияСтандартныхРеквизитов перебираем, без несуществующего Найти.

  4. Сравниваем размеры коллекций с конкретной предоставленной схемой, не переносим числа на другую конфигурацию.

Как проверить результат

  1. Четыре сравнения Истина, выводится 4 + 8 + 3 + 12 именованных описаний.

  2. Не получены остатки, обороты, налоговые/бухгалтерские суммы или строки документов.

Ожидаемый результат

Получен понятный паспорт полей конкретного регистра.

На что обратить внимание

  1. Одинаковая числовая типизация ресурсов не означает одинаковую единицу или прикладной смысл.

  2. Это схема, не проверка балансировки проводок.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.