#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ОбработчикиСобытий
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
ПроверитьИспользованиеБазовогоКалендаря(Отказ);
КонецПроцедуры
Процедура ПриЗаписи(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
КалендарныеГрафики.ОбновитьИспользованиеНесколькихПроизводственныхКалендарей();
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Процедура ПроверитьИспользованиеБазовогоКалендаря(Отказ)
Если Ссылка.Пустая() Или Не ЗначениеЗаполнено(БазовыйКалендарь) Тогда
Возврат;
КонецЕсли;
Если Ссылка = БазовыйКалендарь Тогда
ТекстСообщения = НСтр("ru = 'В качестве базового не может быть выбран тот же самый календарь.'");
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , , "Объект.БазовыйКалендарь", Отказ);
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Календарь", Ссылка);
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| Ссылка
|ИЗ
| Справочник.ПроизводственныеКалендари КАК ПроизводственныеКалендари
|ГДЕ
| ПроизводственныеКалендари.БазовыйКалендарь = &Календарь";
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Возврат;
КонецЕсли;
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Календарь уже является базовым для календаря ""%1"" и не может зависеть от другого.'"),
Выборка.Ссылка);
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, Выборка.Ссылка, , "Объект.БазовыйКалендарь", Отказ);
КонецПроцедуры
#КонецОбласти
#Иначе
ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");
#КонецЕсли