Проверить даты запрета изменения загрузки данных. Ищет даты запрета изменения/загрузки данных для объекта.
// Ищет даты запрета изменения/загрузки данных для объекта.
//
// Параметры:
// Источник - СправочникОбъект,
// ПланВидовХарактеристикОбъект,
// ПланСчетовОбъект,
// ПланВидовРасчетаОбъект,
// БизнесПроцессОбъект,
// ЗадачаОбъект,
// ПланОбменаОбъект,
// ДокументОбъект - объект данных.
// - РегистрСведенийНаборЗаписей,
// РегистрНакопленияНаборЗаписей,
// РегистрБухгалтерииНаборЗаписей,
// РегистрРасчетаНаборЗаписей - набор записей.
// - УдалениеОбъекта - удаление объекта при загрузке.
//
// Отказ - Булево - (возвращаемое значение), будет установлено Истина,
// если объект не проходит проверки дат запрета.
//
// ИсточникРегистр - Булево - Ложь - Источник является регистром, иначе объектом.
//
// Замещение - Булево - если источник является регистром и выполняется добавление,
// нужно указать Ложь.
//
// Удаление - Булево - если источник является объектом и выполняется удаление объекта,
// нужно указать Истина.
//
// ДополнительныеПараметры - Неопределено - указанные ниже параметры имеют начальные значения.
// - Структура - со свойствами:
// * ПроверкаЗапретаИзменения - Булево - начальное значение Истина, если установить Ложь,
// проверка запрета изменения для пользователей) будет пропущена.
// * УзелПроверкиЗапретаЗагрузки - Неопределено - (начальное значение) выполнить проверку изменения данных.
// - ПланыОбменаСсылка.<Имя плана обмена> - выполнить проверку
// загрузки данных для указанного узла.
// * ОписаниеОшибки - Null - (значение по умолчанию) - сведения о запретах не требуются.
// - Строка - (возвращаемое значение) - вернуть текстовое описание найденных запретов.
// - Структура - (возвращаемое значение) - вернуть структурное описание найденных запретов,
// подробнее см. функцию ДатыЗапретаИзменения.НайденЗапретИзмененияДанных.
// * СообщитьОЗапрете - Булево - начальное значение Истина. Если указать Ложь, тогда
// непустое ОписаниеОшибки не будет отправлено пользователю и
// записано в журнал регистрации.
//
Процедура ПроверитьДатыЗапретаИзмененияЗагрузкиДанных(Источник,
Отказ, ИсточникРегистр, Замещение, Удаление, ДополнительныеПараметры = Неопределено) Экспорт
ПроверкаЗапретаИзменения = Истина;
УзелПроверкиЗапретаЗагрузки = Неопределено;
ОписаниеОшибки = "";
СообщитьОЗапрете = Истина;
Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда
ДополнительныеПараметры.Свойство("ПроверкаЗапретаИзменения", ПроверкаЗапретаИзменения);
ДополнительныеПараметры.Свойство("УзелПроверкиЗапретаЗагрузки", УзелПроверкиЗапретаЗагрузки);
ДополнительныеПараметры.Свойство("ОписаниеОшибки", ОписаниеОшибки);
ДополнительныеПараметры.Свойство("СообщитьОЗапрете", СообщитьОЗапрете);
КонецЕсли;
ВерсияОбъекта = "";
Если ПропуститьПроверкуДатЗапрета(Источник, ПроверкаЗапретаИзменения,
УзелПроверкиЗапретаЗагрузки, ВерсияОбъекта) Тогда
Возврат;
КонецЕсли;
ИзменениеЗапрещено = Ложь;
Если НЕ ИсточникРегистр
И НЕ Удаление
И НЕ Источник.ЭтоНовый() Тогда
Если ИзменениеЗапрещено(
?(ВерсияОбъекта <> "СтараяВерсия", Источник, Источник.Метаданные().ПолноеИмя()),
?(ВерсияОбъекта <> "НоваяВерсия", Источник.Ссылка, Неопределено),
ОписаниеОшибки,
УзелПроверкиЗапретаЗагрузки) Тогда
ИзменениеЗапрещено = Истина;
КонецЕсли;
ИначеЕсли ИсточникРегистр И Замещение Тогда
Если ИзменениеЗапрещено(
?(ВерсияОбъекта <> "СтараяВерсия", Источник, Источник.Метаданные().ПолноеИмя()),
?(ВерсияОбъекта <> "НоваяВерсия", Источник.Отбор, Неопределено),
ОписаниеОшибки,
УзелПроверкиЗапретаЗагрузки) Тогда
ИзменениеЗапрещено = Истина;
КонецЕсли;
ИначеЕсли ТипЗнч(Источник) = Тип("УдалениеОбъекта") Тогда
Если ВерсияОбъекта <> "НоваяВерсия"
И ИзменениеЗапрещено(
Источник.Ссылка.Метаданные().ПолноеИмя(),
Источник.Ссылка,
ОписаниеОшибки,
УзелПроверкиЗапретаЗагрузки) Тогда
ИзменениеЗапрещено = Истина;
КонецЕсли;
Иначе
// Выполняется при условии:
// НЕ ИсточникРегистр И Источник.ЭтоНовый()
// ИЛИ ИсточникРегистр И НЕ Замещение
// ИЛИ НЕ ИсточникРегистр И Удаление.
Если ВерсияОбъекта <> "СтараяВерсия"
И ИзменениеЗапрещено(
Источник,
Неопределено,
ОписаниеОшибки,
УзелПроверкиЗапретаЗагрузки) Тогда
ИзменениеЗапрещено = Истина;
КонецЕсли;
КонецЕсли;
Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда
ДополнительныеПараметры.Вставить("ПроверкаЗапретаИзменения", ПроверкаЗапретаИзменения);
ДополнительныеПараметры.Вставить("УзелПроверкиЗапретаЗагрузки", УзелПроверкиЗапретаЗагрузки);
ДополнительныеПараметры.Вставить("ОписаниеОшибки", ОписаниеОшибки);
ДополнительныеПараметры.Вставить("СообщитьОЗапрете", СообщитьОЗапрете);
КонецЕсли;
Если ИзменениеЗапрещено Тогда
Отказ = Истина;
КонецЕсли;
Если Не (ИзменениеЗапрещено И СообщитьОЗапрете) Тогда
Возврат;
КонецЕсли;
ОбщегоНазначения.СообщитьПользователю(ОписаниеОшибки);
ЗаписьЖурналаРегистрации(
?(УзелПроверкиЗапретаЗагрузки <> Неопределено,
НСтр("ru = 'Даты запрета изменения.Найдены запреты загрузки'",
ОбщегоНазначения.КодОсновногоЯзыка()),
НСтр("ru = 'Даты запрета изменения.Найдены запреты изменения'",
ОбщегоНазначения.КодОсновногоЯзыка())),
УровеньЖурналаРегистрации.Ошибка,
,
,
ОписаниеОшибки,
РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная);
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ПропуститьПроверкуДатЗапрета (БСП)
ПроверитьДатыЗапретаЗагрузкиДанных (БСП)
ОбновитьВерсиюДатЗапретаИзмененияПриЗагрузкеДанных (БСП)
ОткрытьДатыЗапретаЗагрузкиДанных (БСП)
Проверка даты запрета изменения данных
ПроверитьДатуЗапретаИзмененияПередЗаписьюДокумента (БСП)
ПроверитьДатуЗапретаИзмененияПередУдалением (БСП)
ОбновлениеВерсииДатЗапретаИзмененияПослеЗагрузкиДанныхПриЗаписи (БСП)