Определяет, был ли изменен объект после считывания из базы данных.
Синтаксис
Модифицированность()Примеры платформы
Если НаборЗаписей.Модифицированность() Тогда
Попытка
НаборЗаписей.Записать();
Исключение
Предупреждение(НСтр("ru = 'Не удалось записать: ';"
+ " en = 'Can't write: '") + ОписаниеОшибки());
Отказ = Истина;
КонецПопытки;
КонецЕсли;Полное описание, параметры и ограничения
ПланВидовРасчетаОбъект.<Имя плана видов расчета>.Модифицированность (ChartOfCalculationTypesObject.<Chart of calculation types name>.Modified)
ПланВидовРасчетаОбъект.<Имя плана видов расчета> (ChartOfCalculationTypesObject.<Chart of calculation types name>)
Модифицированность (Modified)
Доступен, начиная с версии 8.0.
Синтаксис:
Модифицированность()
Возвращаемое значение:
Тип: Булево.
Истина - объект изменен; Ложь - в противном случае.
Описание:
Определяет, был ли изменен объект после считывания из базы данных.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Примечание:
Метод не позволяет определить, был ли изменен объект другими пользователями.
Пример:
Если НаборЗаписей.Модифицированность() Тогда
// Запись набора записей.
Попытка
НаборЗаписей.Записать();
Исключение
Предупреждение(НСтр("ru = 'Не удалось записать: ';"
+ " en = 'Can't write: '") + ОписаниеОшибки());
Отказ = Истина;
КонецПопытки;
КонецЕсли;
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Создать определение вида расчёта, не начисляя деньги
Вид расчёта — определение и зависимости. Создание вида Учебная премия не вычисляет сумму, не создаёт движения регистра расчёта и не перечисляет выплату.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Создайте НОВУЮ пустую файловую базу, имя корня УчебныеРасчеты85. Не изменяйте рабочие ЗУП/КА2/УНФ/УТ/БП. Пример технический: зарплата, налоги и выплаты не рассчитываются.
Планы видов расчёта → Добавить: УчебныеНачисления85. ТипКода Строка, ДлинаКода 10, ДлинаНаименования 100. ИспользованиеПериодаДействия включено; ЗависимостьОтВидовРасчета=ПоПериодуДействия.
В настройке базовых планов видов расчёта выберите только сам УчебныеНачисления85. Это позволяет учебным видам ссылаться на другие виды того же плана. Предопределённые виды, пользовательские реквизиты и табличные части не создавайте.
Модули объекта/менеджера оставьте пустыми, регистры расчёта и бизнес-алгоритмы не добавляйте. Обновите конфигурацию БД и создайте серверный ВыполнитьПример() Экспорт собственной обработки.
Фрагмент вставляется внутрь процедуры. Все виды и строки зависимостей создаются только в памяти; Записать, блокировки, удаления объектов и привилегированный режим не вызываются.
Случайные ссылки зависимостей — ПЛАНОВЫЕ идентификаторы, соответствующих сохранённых видов нет. Они нужны для разбора типизированных списков, а не для запуска расчёта.
Описание = Метаданные.ПланыВидовРасчета.Найти("УчебныеНачисления85");
Если Описание = Неопределено Тогда
ВызватьИсключение "Создайте собственный план УчебныеНачисления85";
КонецЕсли;
Если Описание.ТипКода <> Метаданные.СвойстваОбъектов.ТипКодаПланаВидовРасчета.Строка
Или Описание.ДлинаКода <> 10 Или Описание.ДлинаНаименования <> 100
Или Не Описание.ИспользованиеПериодаДействия
Или Описание.ЗависимостьОтВидовРасчета <> Метаданные.СвойстваОбъектов.ИспользованиеБазыПланаВидовРасчета.ПоПериодуДействия Тогда
ВызватьИсключение "Настройки учебного плана не соответствуют подготовке";
КонецЕсли;
Если Описание.БазовыеВидыРасчета.Количество() <> 1
Или Не Описание.БазовыеВидыРасчета.Содержит(Описание) Тогда
ВызватьИсключение "Выберите только собственный план как базовый";
КонецЕсли;
Менеджер = ПланыВидовРасчета.УчебныеНачисления85;
Премия = Менеджер.СоздатьВидРасчета();
Премия.Код = "BONUS";
Премия.Наименование = "Учебная премия";
Премия.ПериодДействияБазовый = Истина;
Премия.ДополнительныеСвойства.Вставить("Метка", "Не реальное начисление");
Сообщить(Премия.ЭтоНовый());
Сообщить(Премия.Ссылка.Пустая());
Сообщить(Премия.БазовыеВидыРасчета.Количество() = 0);
Сообщить(Премия.ВедущиеВидыРасчета.Количество() = 0);
Сообщить(Премия.ВытесняющиеВидыРасчета.Количество() = 0);
Сообщить(Не Премия.Предопределенный);
Сообщить(Не Премия.ПометкаУдаления);
Сообщить(Премия.ИмяПредопределенныхДанных = "");
Сообщить(Премия.ЭтотОбъект = Премия);
Сообщить(Премия.Метаданные().Имя = "УчебныеНачисления85");
Сообщить(Премия.ДополнительныеСвойства.Метка = "Не реальное начисление");
Сообщить("Модифицированность: " + Строка(Премия.Модифицированность()));
Сообщить("Версия нового объекта: " + Премия.ВерсияДанных);
Сообщить("Тип параметров истории: " + Строка(ТипЗнч(Премия.ЗаписьИсторииДанных)));
Сообщить("Загрузка обмена: " + Строка(Премия.ОбменДанными.Загрузка));Разбор по шагам
Менеджер этого типа использует СоздатьВидРасчета, не СоздатьЭлемент.
Заполняем код, название и флаг базового периода только у нового объекта в памяти.
Три предопределённые табличные части описывают зависимости; по подготовке все доступны и первоначально пусты.
ДополнительныеСвойства хранит служебную метку, не формулу начисления.
Версия, модифицированность, параметры истории и обмена выводятся фактически; механизм расчёта/записи не вызывается.
Как проверить результат
Одиннадцать логических проверок дают Истина.
В списке видов базы BONUS не появился. Ни сотрудник, ни период начисления, ни сумма выплаты не создавались.
Ожидаемый результат
Разобрано определение нового вида расчёта и отделено от прикладного начисления.
На что обратить внимание
БазовыеВидыРасчета доступно объекту только при включённой зависимости от базы.
ВытесняющиеВидыРасчета доступно только при использовании периода действия.
Для настоящего расчёта нужны регистр, периоды, исходные данные и конкретный алгоритм конфигурации.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.