ОбъектМетаданных: ПланВидовРасчета.ДопустимаяДлинаКода

Свойства · CodeAllowedLength

Тип: ДопустимаяДлина. Содержит тип допустимой длины кода.

Полное описание, параметры и ограничения

ОбъектМетаданных: ПланВидовРасчета.ДопустимаяДлинаКода (MetadataObject: ChartOfCalculationTypes.CodeAllowedLength)

ОбъектМетаданных: ПланВидовРасчета (MetadataObject: ChartOfCalculationTypes)

ДопустимаяДлинаКода (CodeAllowedLength)

Доступен, начиная с версии 8.2.

Использование:
Только чтение.
Описание:
Тип: ДопустимаяДлина.
Содержит тип допустимой длины кода.
Доступность:

Сервер, толстый клиент, внешнее соединение.

Примечание:
Свойство имеет смысл, если тип кода - Строка.
Использование в версии:

Доступен, начиная с версии 8.2.

Методическая информация

Практические примеры

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

Одинаковое имя БазовыеВидыРасчета скрывает два разных уровня: разрешённые планы в метаданных и строки зависимостей у конкретного вида.

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

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

Подготовка

  1. Создайте НОВУЮ пустую файловую базу, имя корня УчебныеРасчеты85. Не изменяйте рабочие ЗУП/КА2/УНФ/УТ/БП. Пример технический: зарплата, налоги и выплаты не рассчитываются.

  2. Планы видов расчёта → Добавить: УчебныеНачисления85. ТипКода Строка, ДлинаКода 10, ДлинаНаименования 100. ИспользованиеПериодаДействия включено; ЗависимостьОтВидовРасчета=ПоПериодуДействия.

  3. В настройке базовых планов видов расчёта выберите только сам УчебныеНачисления85. Это позволяет учебным видам ссылаться на другие виды того же плана. Предопределённые виды, пользовательские реквизиты и табличные части не создавайте.

  4. Модули объекта/менеджера оставьте пустыми, регистры расчёта и бизнес-алгоритмы не добавляйте. Обновите конфигурацию БД и создайте серверный ВыполнитьПример() Экспорт собственной обработки.

  5. Фрагмент вставляется внутрь процедуры. Все виды и строки зависимостей создаются только в памяти; Записать, блокировки, удаления объектов и привилегированный режим не вызываются.

  6. Случайные ссылки зависимостей — ПЛАНОВЫЕ идентификаторы, соответствующих сохранённых видов нет. Они нужны для разбора типизированных списков, а не для запуска расчёта.

  7. Для уроков схемы не создавайте формы, команды, макеты, дополнительные индексы, ввод на основании и расширения. Историю данных оставьте выключенной; флаги немедленного обновления истории и обработки после записи версии выключите.

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

Описание = Метаданные.ПланыВидовРасчета.Найти("УчебныеНачисления85");
Если Описание = Неопределено Тогда
    ВызватьИсключение "Создайте собственный план УчебныеНачисления85";
КонецЕсли;
Если Описание.ТипКода <> Метаданные.СвойстваОбъектов.ТипКодаПланаВидовРасчета.Строка
    Или Описание.ДлинаКода <> 10 Или Описание.ДлинаНаименования <> 100
    Или Не Описание.ИспользованиеПериодаДействия
    Или Описание.ЗависимостьОтВидовРасчета <> Метаданные.СвойстваОбъектов.ИспользованиеБазыПланаВидовРасчета.ПоПериодуДействия Тогда
    ВызватьИсключение "Настройки учебного плана не соответствуют подготовке";
КонецЕсли;
Если Описание.БазовыеВидыРасчета.Количество() <> 1
    Или Не Описание.БазовыеВидыРасчета.Содержит(Описание) Тогда
    ВызватьИсключение "Выберите только собственный план как базовый";
КонецЕсли;
Менеджер = ПланыВидовРасчета.УчебныеНачисления85;
Сообщить(Описание.БазовыеВидыРасчета.Количество() = 1);
Для Каждого БазовыйПлан Из Описание.БазовыеВидыРасчета Цикл
    Сообщить("Разрешённый план: " + БазовыйПлан.ПолноеИмя());
КонецЦикла;
НовыйВид = Менеджер.СоздатьВидРасчета();
Сообщить(НовыйВид.БазовыеВидыРасчета.Количество() = 0);
Сообщить(НовыйВид.ВытесняющиеВидыРасчета.Количество() = 0);
Сообщить(Описание.ИспользованиеПериодаДействия);
Сообщить(Описание.ЗависимостьОтВидовРасчета = Метаданные.СвойстваОбъектов.ИспользованиеБазыПланаВидовРасчета.ПоПериодуДействия);
Сообщить(Описание.ТипКода = Метаданные.СвойстваОбъектов.ТипКодаПланаВидовРасчета.Строка);
Сообщить(Описание.ДлинаКода = 10);
Сообщить(Описание.ДлинаНаименования = 100);
Сообщить("Допустимая длина кода: " + Строка(Описание.ДопустимаяДлинаКода));
Сообщить(Описание.ВводитсяНаОсновании.Количество() = 0);

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

  1. В Конфигураторе разрешили один базовый план — сам УчебныеНачисления85. Перебор схемы выводит объект метаданных этого плана.

  2. Новый вид не наследует автоматически список всех видов плана: его строки базовых и вытесняющих зависимостей пусты.

  3. ИспользованиеПериодаДействия и зависимость ПоПериодуДействия включают требуемые возможности объекта, но не создают начисления.

  4. Длины кода/названия сравниваем с подготовкой; допустимую длину выводим фактически. Настройки ввода на основании не являются списком результатов расчёта.

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

  1. Девять логических проверок дают Истина; полное имя разрешённого плана — ПланВидовРасчета.УчебныеНачисления85.

  2. Новый вид остаётся незаписанным. Нет ни суммы базы, ни строки регистра расчёта.

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

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

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

  1. Коллекция базовых планов метаданных не содержит строки ВидРасчета конкретного объекта.

  2. Отсутствие зависимостей у нового вида не означает отсутствие базового плана в схеме.

  3. Чтение схемы не подтверждает корректность алгоритма премии или перерасчёта в рабочей конфигурации.

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

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

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

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

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