Возвращает Истина, если сам объект или один из его дочерних объектов изменен (в том числе, и добавлением нового дочернего объекта) расширениями в текущем сеансе.
Синтаксис
ЕстьИзмененияРасширениямиКонфигурации()Полное описание, параметры и ограничения
ОбъектМетаданных: ПланВидовРасчета.ЕстьИзмененияРасширениямиКонфигурации (MetadataObject: ChartOfCalculationTypes.ChangedByConfigurationExtensions)
ОбъектМетаданных: ПланВидовРасчета (MetadataObject: ChartOfCalculationTypes)
ЕстьИзмененияРасширениямиКонфигурации (ChangedByConfigurationExtensions)
Доступен, начиная с версии 8.3.9.
Синтаксис:
ЕстьИзмененияРасширениямиКонфигурации()
Описание:
Возвращает Истина, если сам объект или один из его дочерних объектов изменен (в том числе, и добавлением нового дочернего объекта) расширениями в текущем сеансе.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.3.9.
Методическая информация
Практические примеры
Разделить историю определений, происхождение схемы и результаты начислений
История данных вида расчёта, изменения схемы расширением и движения расчётного регистра — разные вещи. Этот урок читает только настройки первых двух.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Создайте НОВУЮ пустую файловую базу, имя корня УчебныеРасчеты85. Не изменяйте рабочие ЗУП/КА2/УНФ/УТ/БП. Пример технический: зарплата, налоги и выплаты не рассчитываются.
Планы видов расчёта → Добавить: УчебныеНачисления85. ТипКода Строка, ДлинаКода 10, ДлинаНаименования 100. ИспользованиеПериодаДействия включено; ЗависимостьОтВидовРасчета=ПоПериодуДействия.
В настройке базовых планов видов расчёта выберите только сам УчебныеНачисления85. Это позволяет учебным видам ссылаться на другие виды того же плана. Предопределённые виды, пользовательские реквизиты и табличные части не создавайте.
Модули объекта/менеджера оставьте пустыми, регистры расчёта и бизнес-алгоритмы не добавляйте. Обновите конфигурацию БД и создайте серверный ВыполнитьПример() Экспорт собственной обработки.
Фрагмент вставляется внутрь процедуры. Все виды и строки зависимостей создаются только в памяти; Записать, блокировки, удаления объектов и привилегированный режим не вызываются.
Случайные ссылки зависимостей — ПЛАНОВЫЕ идентификаторы, соответствующих сохранённых видов нет. Они нужны для разбора типизированных списков, а не для запуска расчёта.
Для уроков схемы не создавайте формы, команды, макеты, дополнительные индексы, ввод на основании и расширения. Историю данных оставьте выключенной; флаги немедленного обновления истории и обработки после записи версии выключите.
Каждый фрагмент выполняется отдельно. Кроме специального сравнения схемы и объекта, уроки только читают метаданные. Выборки видов, расчётные регистры, смена режима и запись не вызываются.
Описание = Метаданные.ПланыВидовРасчета.Найти("УчебныеНачисления85");
Если Описание = Неопределено Тогда
ВызватьИсключение "Создайте собственный план УчебныеНачисления85";
КонецЕсли;
Если Описание.ТипКода <> Метаданные.СвойстваОбъектов.ТипКодаПланаВидовРасчета.Строка
Или Описание.ДлинаКода <> 10 Или Описание.ДлинаНаименования <> 100
Или Не Описание.ИспользованиеПериодаДействия
Или Описание.ЗависимостьОтВидовРасчета <> Метаданные.СвойстваОбъектов.ИспользованиеБазыПланаВидовРасчета.ПоПериодуДействия Тогда
ВызватьИсключение "Настройки учебного плана не соответствуют подготовке";
КонецЕсли;
Если Описание.БазовыеВидыРасчета.Количество() <> 1
Или Не Описание.БазовыеВидыРасчета.Содержит(Описание) Тогда
ВызватьИсключение "Выберите только собственный план как базовый";
КонецЕсли;
Сообщить(Не Описание.ОбновлятьИсториюДанныхСразуПослеЗаписи);
Сообщить(Не Описание.ВыполнятьОбработкуПослеЗаписиВерсииИсторииДанных);
Сообщить(Не Описание.ЕстьИзмененияРасширениямиКонфигурации());
Сообщить(Описание.РасширениеКонфигурации() = Неопределено);
Сообщить("История данных: " + Строка(Описание.ИсторияДанных));
Сообщить("Принадлежность схемы: " + Строка(Описание.ПринадлежностьОбъекта));
Сообщить("Тип идентификатора расширяемого объекта: " + Строка(ТипЗнч(Описание.ОбъектРасширяемойКонфигурации)));Разбор по шагам
Флаги немедленного обновления и обработки после версии выключены в собственной схеме до запуска.
ЕстьИзмененияРасширениямиКонфигурации проверяет изменение схемы, не факт перерасчёта сотрудника.
РасширениеКонфигурации по подготовке отсутствует; не читаем его Имя без проверки.
Принадлежность и тип связанного идентификатора выводим фактически. Историю не включаем и версии не записываем.
Как проверить результат
Четыре логических сообщения дают Истина.
В выводе нет суммы, сотрудника, автора выплаты или регистра: такие данные не запрашивались.
Ожидаемый результат
Получен паспорт происхождения схемы и настройки истории без ложного обещания аудита зарплаты.
На что обратить внимание
Настройка истории определений не является журналом начислений.
Расширение, изменившее план, не является автоматически автором всех его данных.
Работу механизмов истории и перерасчёта нужно испытывать отдельно на согласованной копии базы.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.