#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
УправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры);
ПодписиДокументов.ПриСозданииНаСервере(ЭтотОбъект, Документы.КадровыйПереводСписком.ОписаниеПодписейДокумента());
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначения.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплата");
МодульПроцессыОбработкиДокументовЗарплата.ПриСозданииНаСервере(ЭтотОбъект, Объект);
КонецЕсли;
БлокировкаИзмененияОбъектов.ПриСозданииНаСервереФормыОбъекта(ЭтотОбъект, Отказ, СтандартнаяОбработка);
ЭДОБЗК.ПриСозданииНаСервереФормыОбъекта(ЭтотОбъект, Отказ, СтандартнаяОбработка, Объект);
КадровыйУчетФормы.ФормаКадровогоДокументаПриСозданииНаСервере(ЭтотОбъект);
Если Параметры.Ключ.Пустая() Тогда
ПриПолученииДанныхНаСервере(Объект);
ЗаполнитьДанныеФормыПоОрганизации();
ЭлектронныеТрудовыеКнижки.ЗаполнитьНаименованиеДокумента(Объект, "КадровыйПеревод");
КонецЕсли;
Если Не КадровыйУчетРасширенный.ПравоИнтерактивногоСозданияКадровыхПриказовСотрудника() Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"Сотрудники",
"ИзменятьСоставСтрок",
Ложь);
КонецЕсли;
Если ПодписиДокументов.ИспользоватьОснованияПолномочий() Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ОснованиеПредставителяНанимателя",
"Видимость",
Ложь);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтеграцияС1СДокументооборотом") Тогда
МодульИнтеграцияС1СДокументооборотБазоваяФункциональность = ОбщегоНазначения.ОбщийМодуль(
"ИнтеграцияС1СДокументооборотБазоваяФункциональность");
МодульИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов") Тогда
МодульУчетОригиналовПервичныхДокументов = ОбщегоНазначения.ОбщийМодуль("УчетОригиналовПервичныхДокументов");
МодульУчетОригиналовПервичныхДокументов.ПриСозданииНаСервере_ФормаДокумента(ЭтотОбъект, Элементы.Шапка);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтеграцияС1САрхивом") Тогда
МодульОбменСАрхивом = ОбщегоНазначения.ОбщийМодуль("ОбменСАрхивом");
МодульОбменСАрхивом.ПриСозданииНаСервере(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
Оповещение = Новый ОписаниеОповещения("ЗаписатьИЗакрытьНаКлиенте", ЭтотОбъект);
ОбщегоНазначенияКлиент.ПоказатьПодтверждениеЗакрытияФормы(Оповещение, Отказ, ЗавершениеРаботы);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначенияКлиент.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплатаКлиент");
МодульПроцессыОбработкиДокументовЗарплата.ПередЗакрытием(ЭтотОбъект, Объект, Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтотОбъект, ИмяСобытия, Параметр) Тогда
ОбновитьЭлементыДополнительныхРеквизитов();
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
ИсправлениеДокументовЗарплатаКадрыКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
ЭДОБЗККлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов") Тогда
МодульУчетОригиналовПервичныхДокументовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УчетОригиналовПервичныхДокументовКлиент");
МодульУчетОригиналовПервичныхДокументовКлиент.ОбработчикОповещенияФормаДокумента(ИмяСобытия, ЭтотОбъект, Источник);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
УправлениеСвойствами.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
ДатыЗапретаИзменения.ОбъектПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
ПриПолученииДанныхНаСервере(ТекущийОбъект);
ЗарплатаКадрыРасширенный.ЗаблокироватьДокументДляРедактирования(ЭтотОбъект);
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонтрольВеденияУчетаБЗК.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
ЭлектронныеТрудовыеКнижки.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначения.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплата");
МодульПроцессыОбработкиДокументовЗарплата.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
БлокировкаИзмененияОбъектов.ПриЧтенииНаСервереФормыОбъекта(ЭтотОбъект, ТекущийОбъект,
ПравоДоступа("Изменение", Метаданные.Документы.КадровыйПереводСписком));
ЭДОБЗК.ПриЧтенииНаСервереФормыОбъекта(ЭтотОбъект, ТекущийОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
Если ПараметрыЗаписи.РежимЗаписи <> РежимЗаписиДокумента.ОтменаПроведения
И Не ПараметрыЗаписи.Свойство("ПроверкаПередЗаписьюВыполнена") Тогда
Отказ = Истина;
ЗаписатьНаКлиенте(Ложь, ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначения.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплата");
МодульПроцессыОбработкиДокументовЗарплата.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи, Отказ);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтеграцияС1СДокументооборотом") Тогда
МодульИнтеграцияС1СДокументооборотБазоваяФункциональность = ОбщегоНазначения.ОбщийМодуль(
"ИнтеграцияС1СДокументооборотБазоваяФункциональность");
МодульИнтеграцияС1СДокументооборотБазоваяФункциональность.ПередЗаписьюНаСервере(
ЭтотОбъект,
ТекущийОбъект,
ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
ИсправлениеДокументовЗарплатаКадрыКлиент.ПослеЗаписи(ЭтотОбъект, ПараметрыЗаписи);
Оповестить("Запись_КадровыйПереводСписком", ПараметрыЗаписи, Объект.Ссылка);
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КадровыйУчетФормыРасширенный.ЗапуститьОтложеннуюОбработкуДанных(
ТекущийОбъект, Метаданные.Документы.КадровыйПереводСписком.ТабличныеЧасти.Сотрудники.Реквизиты.Сотрудник);
СинхронизацияДанныхЗарплатаКадры.ЗапуститьОтложеннуюОбработкуЗаполненияДанныхПоФизическимЛицам(ТекущийОбъект);
СинхронизацияДанныхЗарплатаКадры.ЗапуститьОтложеннуюОбработкуЗаполненияДанныхПоСотрудникам(ТекущийОбъект);
Если Не ПараметрыЗаписи.Свойство("ЗакрытьПослеЗаписи") Или Не ПараметрыЗаписи.ЗакрытьПослеЗаписи Тогда
ДанныеВРеквизит();
КонецЕсли;
ПерерасчетЗарплаты.РегистрацияПерерасчетовПоПредварительнымДаннымВФоне(ТекущийОбъект.Ссылка);
ПодписиДокументов.ПослеЗаписиНаСервере(ЭтотОбъект);
КонтрольВеденияУчетаБЗК.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначения.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплата");
МодульПроцессыОбработкиДокументовЗарплата.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецЕсли;
БлокировкаИзмененияОбъектов.ПослеЗаписиНаСервереФормыОбъекта(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
ЭДОБЗК.ПослеЗаписиНаСервереФормыОбъекта(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи, Объект);
КонецПроцедуры
&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура НомерПриИзменении(Элемент)
ЭлектронныеТрудовыеКнижкиКлиентСервер.УстановитьОтображениеНомеровДокумента(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
ОрганизацияПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
ЗаполнитьДанныеФормыПоОрганизации();
КонецПроцедуры
&НаКлиенте
Процедура ВидДоговораПриИзменении(Элемент)
Если РегистрацияНачисленийДоступна Тогда
ЗарплатаКадрыКлиент.КлючевыеРеквизитыЗаполненияФормыОчиститьТаблицы(ЭтотОбъект);
Иначе
ОчиститьТаблицыПриИзмененииКлючевыхРеквизитов();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПодписиДокументовЭлементПриИзменении(Элемент)
ПодписиДокументовКлиент.ПриИзмененииПодписывающегоЛица(ЭтотОбъект, Элемент.Имя);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПодписиДокументовЭлементНажатие(Элемент)
ПодписиДокументовКлиент.РасширеннаяПодсказкаНажатие(ЭтотОбъект, Элемент.Имя);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ДекорацияСостояниеОригиналаНажатие()
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов") Тогда
МодульУчетОригиналовПервичныхДокументовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УчетОригиналовПервичныхДокументовКлиент");
МодульУчетОригиналовПервичныхДокументовКлиент.ОткрытьМенюВыбораСостояния(ЭтотОбъект,Элементы["ДекорацияСостояниеОригинала"]);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеДокументаПриИзменении(Элемент)
ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаПриИзменении(Объект.Организация, "КадровыйПереводСписком", Объект.НаименованиеДокумента);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеДокументаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеДокументаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаОбработкаВыбора(
Объект.НаименованиеДокумента, ВыбранноеЗначение, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеДокументаАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаАвтоПодбор(
Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеВторогоДокументаОснованияПриИзменении(Элемент)
ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаПриИзменении(Объект.Организация, "КадровыйПереводСписком", Объект.НаименованиеВторогоДокументаОснования);
УстановитьДоступностьПолейОтраженияТрудовойДеятельности(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеВторогоДокументаОснованияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка);
УстановитьДоступностьПолейОтраженияТрудовойДеятельности(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеВторогоДокументаОснованияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаОбработкаВыбора(
Объект.НаименованиеВторогоДокументаОснования, ВыбранноеЗначение, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеВторогоДокументаОснованияАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаАвтоПодбор(
Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка);
УстановитьДоступностьПолейОтраженияТрудовойДеятельности(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ДатаВторогоДокументаОснованияПриИзменении(Элемент)
УстановитьДоступностьПолейОтраженияТрудовойДеятельности(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура СерияВторогоДокументаОснованияПриИзменении(Элемент)
УстановитьДоступностьПолейОтраженияТрудовойДеятельности(ЭтотОбъект, Истина);
КонецПроцедуры
&НаКлиенте
Процедура НомерВторогоДокументаОснованияПриИзменении(Элемент)
УстановитьДоступностьПолейОтраженияТрудовойДеятельности(ЭтотОбъект, Истина);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыСотрудники
&НаКлиенте
Процедура СотрудникиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ИдентификаторСтроки = Элементы.Сотрудники.ТекущаяСтрока;
РедактироватьСтроку(ИдентификаторСтроки);
КонецПроцедуры
&НаКлиенте
Процедура СотрудникиПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
Отказ = Истина;
МаксимальныйИдентификаторСтрокиСотрудника = МаксимальныйИдентификаторСтрокиСотрудника + 1;
НоваяСтрока = Объект.Сотрудники.Добавить();
НоваяСтрока.ИдентификаторСтрокиСотрудника = МаксимальныйИдентификаторСтрокиСотрудника;
Если Объект.Сотрудники.Количество() > 1 Тогда
НоваяСтрока.ДатаНачала = Объект.Сотрудники[Объект.Сотрудники.Количество() - 2].ДатаНачала;
КонецЕсли;
Если Не ЗначениеЗаполнено(НоваяСтрока.ДатаНачала) Тогда
НоваяСтрока.ДатаНачала = Объект.Дата;
КонецЕсли;
ИдентификаторСтроки = НоваяСтрока.ПолучитьИдентификатор();
Элементы.Сотрудники.ТекущаяСтрока = ИдентификаторСтроки;
РедактироватьСтроку(ИдентификаторСтроки);
КонецПроцедуры
&НаКлиенте
Процедура СотрудникиПередУдалением(Элемент, Отказ)
МассивИдентификаторовСтрокСотрудников = Новый Массив;
Для Каждого ИдентификаторВыделеннойСтроки Из Элементы.Сотрудники.ВыделенныеСтроки Цикл
ДанныеВыделеннойСтроки = Объект.Сотрудники.НайтиПоИдентификатору(ИдентификаторВыделеннойСтроки);
Если ДанныеВыделеннойСтроки <> Неопределено Тогда
МассивИдентификаторовСтрокСотрудников.Добавить(ДанныеВыделеннойСтроки.ИдентификаторСтрокиСотрудника);
КонецЕсли;
КонецЦикла;
Если МассивИдентификаторовСтрокСотрудников.Количество() > 0 Тогда
ИдентификаторыСтрокУдаляемыхСотрудников = Новый ФиксированныйМассив(МассивИдентификаторовСтрокСотрудников);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СотрудникиПослеУдаления(Элемент)
Если ИдентификаторыСтрокУдаляемыхСотрудников <> Неопределено Тогда
СотрудникиПослеУдаленияНаСервере();
КонецЕсли;
ЗарплатаКадрыКлиентСервер.КлючевыеРеквизитыЗаполненияФормыУстановитьОтображениеПредупреждения(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура СотрудникиОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
СотрудникиОбработкаВыбораНаСервере(ВыбранноеЗначение);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграцииС1САрхивом(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтеграцияС1САрхивом") Тогда
МодульОбменСАрхивомКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбменСАрхивомКлиент");
МодульОбменСАрхивомКлиент.ВыполнитьПодключаемуюКоманду(Команда, ЭтотОбъект, Объект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуИнтеграцииС1САрхивомНаСервере(Знач Параметры) Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтеграцияС1САрхивом") Тогда
МодульОбменСАрхивом = ОбщегоНазначения.ОбщийМодуль("ОбменСАрхивом");
МодульОбменСАрхивом.ВыполнитьПодключаемуюКоманду(ЭтотОбъект, Параметры);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ИнтеграцияС1САрхивом_Нажатие(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтеграцияС1САрхивом") Тогда
МодульОбменСАрхивомКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбменСАрхивомКлиент");
МодульОбменСАрхивомКлиент.Нажатие(Элемент, ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
КонецПроцедуры
#Область ОбработчикиСобытийПроцессыОбработкиДокументов
&НаКлиенте
Процедура Подключаемый_ВыполнитьЗадачуПоОбработкеДокумента(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначенияКлиент.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплатаКлиент");
МодульПроцессыОбработкиДокументовЗарплата.ВыполнитьЗадачу(ЭтотОбъект, Команда, Объект)
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьЗадачуПоОбработкеДокументаОповещение(Контекст, ДополнительныеПараметры) Экспорт
ВыполнитьЗадачуПоОбработкеДокументаНаСервере(Контекст);
ВыполнитьОбработкуОповещения(ДополнительныеПараметры, Контекст);
КонецПроцедуры
&НаСервере
Процедура ВыполнитьЗадачуПоОбработкеДокументаНаСервере(Контекст)
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначения.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплата");
МодульПроцессыОбработкиДокументовЗарплата.ВыполнитьЗадачу(ЭтотОбъект, Контекст, Объект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КомментарийНаправившегоОткрытие(Элемент, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначенияКлиент.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплатаКлиент");
МодульПроцессыОбработкиДокументовЗарплата.КомментарийНаправившегоОткрытие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КомментарийСледующемуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначенияКлиент.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплатаКлиент");
МодульПроцессыОбработкиДокументовЗарплата.КомментарийСледующемуНачалоВыбора(ЭтотОбъект, Элемент, ДанныеВыбора, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
&НаКлиенте
Процедура Подключаемый_Исправить(Команда)
ИсправлениеДокументовЗарплатаКадрыКлиент.Исправить(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПерейтиКИсправлению(Команда)
ИсправлениеДокументовЗарплатаКадрыКлиент.ПерейтиКИсправлению(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПерейтиКИсправленному(Команда)
ИсправлениеДокументовЗарплатаКадрыКлиент.ПерейтиКИсправленному(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РазблокироватьФормуОбъекта(Команда)
БлокировкаИзмененияОбъектовКлиент.РазблокироватьФормуОбъекта(ЭтотОбъект, Объект.Ссылка);
КонецПроцедуры
&НаКлиенте
Процедура ПодобратьСотрудников(Команда)
ПараметрыОткрытия = Новый Структура;
ОтборСотрудников = Новый Структура;
Если ЗначениеЗаполнено(Объект.ВидДоговора) Тогда
ОтборСотрудников.Вставить("ВидДоговора", Объект.ВидДоговора);
ПараметрыОткрытия.Вставить("НеОтключаемыеОтборы", "ВидДоговора");
КонецЕсли;
Если ЗначениеЗаполнено(ОтборСотрудников) Тогда
ПараметрыОткрытия.Вставить("Отбор", ОтборСотрудников);
КонецЕсли;
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба") Тогда
МодульГосударственнаяСлужбаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ГосударственнаяСлужбаКлиент");
МодульГосударственнаяСлужбаКлиент.УточнитьПараметрыОткрытияФормыВыбораСотрудников(ПараметрыОткрытия);
КонецЕсли;
КадровыйУчетКлиент.ВыбратьСотрудниковРаботающихНаДатуПоПараметрамОткрытияФормыСписка(
Элементы.Сотрудники,
Объект.Организация,
,
Объект.Дата,
Истина,
АдресСпискаПодобранныхСотрудников(),
ПараметрыОткрытия);
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьНаСоответствиеШтатномуРасписанию(Команда)
КадровыйУчетРасширенныйКлиент.ПроверитьНаСоответствиеШтатномуРасписанию(ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура КомандаПровестиИЗакрыть(Команда)
ПараметрыЗаписи = Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение);
ЗаписатьНаКлиенте(Истина, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура КомандаПровести(Команда)
ПараметрыЗаписи = Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение);
ЗаписатьНаКлиенте(Ложь, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура КомандаЗаписать(Команда)
ПараметрыЗаписи = Новый Структура("РежимЗаписи", ?(Объект.Проведен, РежимЗаписиДокумента.Проведение, РежимЗаписиДокумента.Запись));
ЗаписатьНаКлиенте(Ложь, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтеграцияС1СДокументооборотом") Тогда
МодульИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль(
"ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент");
МодульИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(
Команда,
ЭтотОбъект,
Объект);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОткрытьОтчетПоПроблемам(ЭлементИлиКоманда, НавигационнаяСсылка, СтандартнаяОбработка)
КонтрольВеденияУчетаКлиентБЗК.ОткрытьОтчетПоПроблемамОбъекта(ЭтотОбъект, Объект.Ссылка, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьПолейОтраженияТрудовойДеятельности(УправляемаяФорма, Знач Отразить)
Объект = УправляемаяФорма.Объект;
Элементы = УправляемаяФорма.Элементы;
Если Не Отразить Тогда
Отразить = Объект.Сотрудники.НайтиСтроки(Новый Структура("ОтразитьВТрудовойКнижке", Истина)).Количество() > 0;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"СведенияТрудовойКнижкиГруппа",
"Видимость",
Отразить);
ЭлектронныеТрудовыеКнижкиКлиентСервер.УстановитьЗаголовокГруппыВторогоДокументаОснования(УправляемаяФорма);
КонецПроцедуры
#Область ИсправлениеДокументов
&НаКлиенте
Процедура УстановитьПоляИсправленияНаКлиенте() Экспорт
УстановитьПоляИсправления(ЭтаФорма);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьПоляИсправления(Форма)
ИсправлениеДокументовЗарплатаКадрыКлиентСервер.УстановитьПоляИсправления(Форма, "ПериодическиеСведения");
КонецПроцедуры
#КонецОбласти
#Область КлючевыеРеквизитыЗаполненияФормы
&НаСервере
Функция КлючевыеРеквизитыЗаполненияФормыТаблицыОчищаемыеПриИзменении() Экспорт
Возврат ТаблицыОчищаемыеПриИзмененииКлючевыхРеквизитов();
КонецФункции
&НаСервере
Функция КлючевыеРеквизитыЗаполненияФормыОписаниеКлючевыхРеквизитов() Экспорт
Массив = Новый Массив;
Массив.Добавить(Новый Структура("ЭлементФормы, Представление", "Организация", НСтр("ru = 'организации'")));
Массив.Добавить(Новый Структура("ЭлементФормы, Представление", "ВидДоговора", НСтр("ru = 'вида договора'")));
Возврат Массив;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ТаблицыОчищаемыеПриИзмененииКлючевыхРеквизитов()
Массив = Новый Массив;
Массив.Добавить("Объект.Сотрудники");
Возврат Массив;
КонецФункции
&НаСервере
Процедура ОчиститьТаблицыПриИзмененииКлючевыхРеквизитов()
ЗарплатаКадрыРасширенный.КлючевыеРеквизитыЗаполненияФормыОчиститьТаблицы(ЭтотОбъект, ТаблицыОчищаемыеПриИзмененииКлючевыхРеквизитов());
КонецПроцедуры
#КонецОбласти
&НаСервере
Процедура СотрудникиПослеУдаленияНаСервере()
СтруктураОписания = ЗарплатаКадрыРасширенныйВызовСервера.СтруктураПоМетаданным("Документ.КадровыйПеревод");
ЗарплатаКадрыРасширенныйКлиентСервер.УдалитьДанныеСотрудниковСписочногоДокумента(
Объект, СтруктураОписания, ИдентификаторыСтрокУдаляемыхСотрудников);
ИдентификаторыСтрокУдаляемыхСотрудников = Неопределено;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйУчет.ДистанционнаяРабота") Тогда
МодульДистанционнаяРаботаФорма = ОбщегоНазначения.ОбщийМодуль("ДистанционнаяРаботаФормы");
МодульДистанционнаяРаботаФорма.КадровыйДокументОбновитьРеквизитИКоманды(ЭтотОбъект, Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РедактироватьСтроку(ИдентификаторСтроки)
Оповещение = Новый ОписаниеОповещения("ОбновитьРасшифровку", ЭтотОбъект);
ПараметрыОткрытия = ПараметрыОткрытияФормыРедактированияСтрокиДокумента(ИдентификаторСтроки);
ЗарплатаКадрыРасширенныйКлиент.РедактироватьСтрокуСписочногоДокумента(
ЭтотОбъект, "Документ.КадровыйПеревод", Оповещение, ПараметрыОткрытия);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьРасшифровку(Результат, ДополнительныеУсловия) Экспорт
УстановитьРасшифровкуСтроки(ИдентификаторСтроки);
ЗарплатаКадрыКлиентСервер.КлючевыеРеквизитыЗаполненияФормыУстановитьОтображениеПредупреждения(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПриПолученииДанныхНаСервере(ТекущийОбъект)
УправлениеШтатнымРасписаниемФормы.ПроверкаШтатногоРасписанияПодготовитьТаблицуФормы(ЭтотОбъект, РеквизитыПроверяемыеНаСоответствие());
ИсправлениеДокументовЗарплатаКадры.ГруппаИсправлениеДополнитьФорму(ЭтотОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
МодульРабочиеМестаОхраныТрудаФормы = ОбщегоНазначения.ОбщийМодуль("РабочиеМестаОхраныТрудаФормы");
МодульРабочиеМестаОхраныТрудаФормы.КадровыйПереводСпискомДополнитьФорму(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда
МодульТрудоустройствоПоКвотамФормы = ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотамФормы");
МодульТрудоустройствоПоКвотамФормы.ДополнитьФормуКадровогоПриказа(ЭтотОбъект, Истина, Истина);
КонецЕсли;
ДанныеВРеквизит();
ОписаниеФормы = ОписаниеФормыРедактирующейДанныеКонтрактаДоговора();
КонтрактыДоговорыСотрудниковФормы.НастроитьФормуПоВидуДоговора(ЭтотОбъект, ОписаниеФормы, Объект.ВидДоговора, Ложь);
КонтрактыДоговорыСотрудниковФормы.ЗаполнитьСписокВыбораВидаДоговора(Элементы.ВидДоговора.СписокВыбора,"РаботникиИСлужащие");
КонецПроцедуры
&НаСервере
Процедура ДанныеВРеквизит()
Раздел = МногофункциональныеДокументыБЗККлиентСервер.РазделыДанных().ПлановыеНачисления;
ВсеВидыПрав = МногофункциональныеДокументыБЗККлиентСервер.ВидыПравНаРазделыДанных();
ДоступноЧтениеДанныхДляНачисленияЗарплаты
= МногофункциональныеДокументыБЗК.ПраваНаРаздел(Раздел).Просмотр;
ЗарплатаКадры.КлючевыеРеквизитыЗаполненияФормыЗаполнитьПредупреждения(ЭтотОбъект);
ЗарплатаКадрыКлиентСервер.КлючевыеРеквизитыЗаполненияФормыУстановитьОтображениеПредупреждения(ЭтотОбъект);
УстановитьДоступностьРегистрацииНачислений();
МаксимальныйИдентификаторСтрокиСотрудника = ЗарплатаКадрыРасширенный.МаксимальныйИдентификаторСтроки(
Объект.Сотрудники, "ИдентификаторСтрокиСотрудника");
ИсправлениеДокументовЗарплатаКадры.ПрочитатьРеквизитыИсправления(ЭтотОбъект, "ПериодическиеСведения");
УстановитьПоляИсправления(ЭтотОбъект);
ЗарплатаКадрыРасширенный.МногофункциональныеДокументыДобавитьЭлементыФормы(ЭтотОбъект, НСтр("ru='Приказом установлены ежемесячные начисления'"), "РасчетчикГруппа", "НачисленияУтверждены");
ЗаполнитьРасшифровкиСотрудников();
ЗарплатаКадрыРасширенный.УстановитьВидимостьКомандПечатиМногофункциональногоДокумента(ЭтотОбъект);
ЗарплатаКадрыРасширенный.УстановитьПредупреждающуюНадписьВМногофункциональныхДокументах(ЭтотОбъект, "НачисленияУтверждены");
Если ИспользуетсяРасчетЗарплаты И Не ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений И Объект.НачисленияУтверждены Тогда
ТолькоПросмотр = Истина;
КонецЕсли;
КадровыйУчетФормыРасширенный.РазместитьКомандуПроверкиШтатномуРасписанию(ЭтотОбъект);
ЭлектронныеТрудовыеКнижкиКлиентСервер.УстановитьОтображениеНомеровДокумента(ЭтотОбъект);
УстановитьДоступностьПолейОтраженияТрудовойДеятельности(ЭтотОбъект, Ложь);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьРасшифровкиСотрудников()
Для каждого СтрокаСотрудника Из Объект.Сотрудники Цикл
УстановитьРасшифровкуСтроки(СтрокаСотрудника.ПолучитьИдентификатор());
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура УстановитьДоступностьРегистрацииНачислений()
ПраваНаДокумент = ЗарплатаКадрыРасширенный.ПраваНаМногофункциональныйДокумент(Объект);
РегистрацияНачисленийДоступна = ПраваНаДокумент.ПолныеПраваПоРолям;
ОграниченияНаУровнеЗаписей = Новый ФиксированнаяСтруктура(ПраваНаДокумент.ОграниченияНаУровнеЗаписей);
ЗарплатаКадрыРасширенный.УстановитьОтображениеПолейМногофункциональныхДокументов(ЭтотОбъект, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("РасчетчикГруппа"));
КонецПроцедуры
&НаСервере
Процедура УстановитьРасшифровкуСтроки(ИдентификаторСтрокиСотрудника)
Если ИдентификаторСтрокиСотрудника = Неопределено Тогда
Возврат;
КонецЕсли;
СтрокаСотрудника = Объект.Сотрудники.НайтиПоИдентификатору(ИдентификаторСтрокиСотрудника);
СтрокаСотрудника.КоличествоСтавокПредставление = КадровыйУчетКлиентСервер.ПредставлениеКоличестваСтавок(СтрокаСотрудника.КоличествоСтавок);
Расшифровка = РасшифровкаСтрокиСотрудника(ИдентификаторСтрокиСотрудника);
СтрокаСотрудника.Расшифровка = Расшифровка;
КонецПроцедуры
&НаСервере
Функция РасшифровкаСтрокиСотрудника(ИдентификаторСтрокиСотрудника)
СтрокаСотрудника = Объект.Сотрудники.НайтиПоИдентификатору(ИдентификаторСтрокиСотрудника);
СтруктураПоиска = Новый Структура("ИдентификаторСтрокиСотрудника", СтрокаСотрудника.ИдентификаторСтрокиСотрудника);
ТекстРасшифровки = "";
Если СтрокаСотрудника.ИзменитьПодразделениеИДолжность Тогда
ТекстРасшифровки = НСтр("ru='Изменены подразделение или должность'");
КонецЕсли;
Если СтрокаСотрудника.ИзменитьТерриторию Тогда
ТекстРасшифровки = ?(ПустаяСтрока(ТекстРасшифровки), "", ТекстРасшифровки + "; ") + НСтр("ru='Изменена территория'");
КонецЕсли;
Если СтрокаСотрудника.ИзменитьГрафикРаботы Тогда
ТекстРасшифровки = ?(ПустаяСтрока(ТекстРасшифровки), "", ТекстРасшифровки + "; ") + НСтр("ru='Изменен график работы'");
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйУчет.ДистанционнаяРабота") Тогда
МодульДистанционнаяРаботаФормы = ОбщегоНазначения.ОбщийМодуль("ДистанционнаяРаботаФормы");
МодульДистанционнаяРаботаФормы.КадровыйПереводДополнитьРасшифровкуСтрокиСотрудника(ЭтотОбъект, ИдентификаторСтрокиСотрудника, ТекстРасшифровки);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
МодульРабочиеМестаОхраныТрудаФормы = ОбщегоНазначения.ОбщийМодуль("РабочиеМестаОхраныТрудаФормы");
МодульРабочиеМестаОхраныТрудаФормы.КадровыйПереводДополнитьРасшифровкуСтрокиСотрудника(
ЭтотОбъект, ИдентификаторСтрокиСотрудника, ТекстРасшифровки);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда
МодульТрудоустройствоПоКвотамФормы = ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотамФормы");
МодульТрудоустройствоПоКвотамФормы.КадровыйПереводДополнитьРасшифровкуСтрокиСотрудника(ЭтотОбъект, ИдентификаторСтрокиСотрудника, ТекстРасшифровки);
КонецЕсли;
Раздел = МногофункциональныеДокументыБЗККлиентСервер.РазделыДанных().ПлановыеНачисления;
ВсеВидыПрав = МногофункциональныеДокументыБЗККлиентСервер.ВидыПравНаРазделыДанных();
ДоступноЧтениеДанныхДляНачисленияЗарплаты
= МногофункциональныеДокументыБЗК.ПраваНаРаздел(Раздел).Просмотр;
Если СтрокаСотрудника.ИзменитьНачисления
И ДоступноЧтениеДанныхДляНачисленияЗарплаты Тогда
ТекстРасшифровки = ?(ПустаяСтрока(ТекстРасшифровки), "", ТекстРасшифровки + "; ") + НСтр("ru='Изменен состав начислений'") + ": ";
ДобавитьЗапятую = Ложь;
СтрокиНачислений = Объект.Начисления.НайтиСтроки(СтруктураПоиска);
Для каждого СтрокаНачисления Из СтрокиНачислений Цикл
Если СтрокаНачисления.Действие = Перечисления.ДействияСНачислениямиИУдержаниями.Отменить Тогда
Продолжить;
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаНачисления.Начисление) Тогда
ОсновнойОПоказатель = Неопределено;
ИнфоОВидеРасчета = ЗарплатаКадрыРасширенныйПовтИсп.ПолучитьИнформациюОВидеРасчета(СтрокаНачисления.Начисление);
Для каждого ПоказательНачисления Из ИнфоОВидеРасчета.Показатели Цикл
Если ПоказательНачисления.ОсновнойПоказатель Тогда
ОсновнойОПоказатель = ПоказательНачисления;
Прервать;
КонецЕсли;
КонецЦикла;
Если ОсновнойОПоказатель <> Неопределено Тогда
СтруктураПоиска.Вставить("ИдентификаторСтрокиВидаРасчета", СтрокаНачисления.ИдентификаторСтрокиВидаРасчета);
СтруктураПоиска.Вставить("Показатель", ОсновнойОПоказатель.Показатель);
СтрокиПоказателей = Объект.Показатели.НайтиСтроки(СтруктураПоиска);
Если СтрокиПоказателей.Количество() > 0 Тогда
Если ДобавитьЗапятую Тогда
ТекстРасшифровки = ТекстРасшифровки + ", ";
Иначе
ДобавитьЗапятую = Истина;
КонецЕсли;
ТекстРасшифровки = ТекстРасшифровки
+ ОсновнойОПоказатель.КраткоеНаименование + " = " + Формат(СтрокиПоказателей[0].Значение, "ЧДЦ=" + ОсновнойОПоказатель.Точность + "; ЧН=");
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если (СтрокаСотрудника.ИзменитьБухучетНачислений Или СтрокаСотрудника.ИзменитьБухучетЛьгот)
И ДоступноЧтениеДанныхДляНачисленияЗарплаты Тогда
ТекстРасшифровки = ?(ПустаяСтрока(ТекстРасшифровки), "", ТекстРасшифровки + "; ") + НСтр("ru='Изменен бухучет начислений'");
КонецЕсли;
Если СтрокаСотрудника.ИзменитьЕжегодныеОтпуска Тогда
СтруктураПоиска = Новый Структура("ИдентификаторСтрокиСотрудника", СтрокаСотрудника.ИдентификаторСтрокиСотрудника);
СтрокиОтпусков = Объект.ЕжегодныеОтпуска.НайтиСтроки(СтруктураПоиска);
Если СтрокиОтпусков.Количество() > 0 Тогда
ИнформацияОбОтпуске = ОстаткиОтпусков.НадписьПраваНаОтпуск(СтрокиОтпусков, Истина, 2);
Если Не ПустаяСтрока(ИнформацияОбОтпуске) Тогда
ТекстРасшифровки = ?(ПустаяСтрока(ТекстРасшифровки), "", ТекстРасшифровки + "; ") + ИнформацияОбОтпуске;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ПустаяСтрока(ТекстРасшифровки) Тогда
ТекстРасшифровки = НСтр("ru='Нет сведений о кадровом переводе'");
КонецЕсли;
Возврат ТекстРасшифровки;
КонецФункции
&НаСервере
Функция ОписанияТаблиц()
ОписанияТаблиц = Новый Структура;
ОписаниеТаблицыВидовРасчета = РасчетЗарплатыРасширенныйКлиентСервер.ОписаниеТаблицыПлановыхНачислений(Истина, Ложь);
ОписаниеТаблицыВидовРасчета.СодержитПолеХарактерНачисления = Истина;
ОписанияТаблиц.Вставить("Начисления", ОписаниеТаблицыВидовРасчета);
ОписаниеТаблицыВидовРасчета = РасчетЗарплатыРасширенныйКлиентСервер.ОписаниеТаблицыПлановыхНачислений(Ложь, Ложь);
ОписаниеТаблицыВидовРасчета.НомерТаблицы = 1;
ОписаниеТаблицыВидовРасчета.ИмяРеквизитаДокументОснование = "";
ОписанияТаблиц.Вставить("Льготы", ОписаниеТаблицыВидовРасчета);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаФормы = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
МодульУправленческаяЗарплатаФормы.КадровыйПереводДополнитьОписаниеТаблиц(ОписанияТаблиц);
КонецЕсли;
Возврат ОписанияТаблиц;
КонецФункции
&НаСервере
Функция ПараметрыОткрытияФормыРедактированияСтрокиДокумента(ИдентификаторСтроки)
ТекущиеДанные = Объект.Сотрудники.НайтиПоИдентификатору(ИдентификаторСтроки);
ПараметрыОткрытия = ЗарплатаКадрыРасширенный.ПараметрыОткрытияФормыРедактированияСтрокиДокумента(Объект, ТекущиеДанные, "Документ.КадровыйПеревод");
ПараметрыОткрытия.Вставить("АдресСпискаПодобранныхСотрудников", АдресСпискаПодобранныхСотрудников());
Возврат ПараметрыОткрытия;
КонецФункции
&НаСервере
Функция АдресСпискаПодобранныхСотрудников()
Возврат ПоместитьВоВременноеХранилище(Объект.Сотрудники.Выгрузить(,"Сотрудник").ВыгрузитьКолонку("Сотрудник"), УникальныйИдентификатор);
КонецФункции
&НаСервере
Процедура ЗаполнитьСтрокуМногосотрудниковогоДокумента(Результат) Экспорт
ТекущиеДанные = Объект.Сотрудники.НайтиПоИдентификатору(ИдентификаторСтроки);
ЗарплатаКадрыРасширенный.ЗаполнитьСтрокуМногосотрудниковогоДокумента(Результат, ТекущиеДанные, Объект, ОписанияТаблиц());
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйУчет.ДистанционнаяРабота") Тогда
МодульДистанционнаяРаботаФормы = ОбщегоНазначения.ОбщийМодуль("ДистанционнаяРаботаФормы");
МодульДистанционнаяРаботаФормы.КадровыйДокументОбновитьРеквизитИКоманды(ЭтотОбъект, Истина);
КонецЕсли;
УстановитьДоступностьПолейОтраженияТрудовойДеятельности(ЭтотОбъект, ТекущиеДанные.ОтразитьВТрудовойКнижке);
КонецПроцедуры
&НаСервере
Процедура СотрудникиОбработкаВыбораНаСервере(ВыбранныеСотрудники)
Если ТипЗнч(ВыбранныеСотрудники) = Тип("Массив") Тогда
СписокСотрудников = ВыбранныеСотрудники;
Иначе
СписокСотрудников = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ВыбранныеСотрудники);
КонецЕсли;
ДобавляемыеСотрудники = Новый Массив;
Для каждого Сотрудник Из СписокСотрудников Цикл
Если Объект.Сотрудники.НайтиСтроки(Новый Структура("Сотрудник", Сотрудник)).Количество() > 0 Тогда
Продолжить;
КонецЕсли;
ДобавляемыеСотрудники.Добавить(Сотрудник);
КонецЦикла;
Если ДобавляемыеСотрудники.Количество() > 0 Тогда
ВремяРегистрацииСотрудников = ЗарплатаКадрыРасширенный.ВремяРегистрацииСотрудниковДокумента(Объект.Ссылка, ДобавляемыеСотрудники, Объект.Дата);
СтрокаШаблон = Неопределено;
Если Объект.Сотрудники.Количество() > 0 Тогда
ПоследняяСтрокаСотрудников = Объект.Сотрудники[Объект.Сотрудники.Количество() - 1];
КонецЕсли;
ОписаниеДанныхПоследнейСтрокиСотрудника = Неопределено;
Если ПоследняяСтрокаСотрудников <> Неопределено Тогда
ОписаниеДанныхПоследнейСтрокиСотрудника = ЗарплатаКадрыРасширенныйВызовСервера.СтруктураПоМетаданным("Документ.КадровыйПеревод");
ЗарплатаКадрыРасширенный.ЗаполнитьОбъектПоОбразцу(ОписаниеДанныхПоследнейСтрокиСотрудника, Объект, ПоследняяСтрокаСотрудников, "ИдентификаторСтрокиСотрудника");
КонецЕсли;
ДанныеСотрудников = КадровыйУчетФормыРасширенный.ДанныеДляКадровогоПеревода(ДобавляемыеСотрудники, ВремяРегистрацииСотрудников, Объект.Ссылка, ОписаниеДанныхПоследнейСтрокиСотрудника);
Для каждого ДобавляемыйСотрудник Из ДобавляемыеСотрудники Цикл
СведенияСотрудника = ДанныеСотрудников.Получить(ДобавляемыйСотрудник);
Если СведенияСотрудника <> Неопределено Тогда
МаксимальныйИдентификаторСтрокиСотрудника = МаксимальныйИдентификаторСтрокиСотрудника + 1;
НоваяСтрокаСотрудников = Объект.Сотрудники.Добавить();
НоваяСтрокаСотрудников.ИдентификаторСтрокиСотрудника = МаксимальныйИдентификаторСтрокиСотрудника;
ЗарплатаКадрыРасширенный.ЗаполнитьСтрокуМногосотрудниковогоДокумента(
СведенияСотрудника, НоваяСтрокаСотрудников, Объект, ОписанияТаблиц());
УстановитьРасшифровкуСтроки(НоваяСтрокаСотрудников.ПолучитьИдентификатор());
КонецЕсли;
КонецЦикла;
Модифицированность = Истина;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПроверкаПередЗаписьюНаСервере(РезультатыПроверки, ДанныеОЗанятыхПозициях) Экспорт
Возврат КадровыйУчетРасширенный.ПроверкаСоответствияШтатномуРасписанию(ДанныеОЗанятыхПозициях, Объект.Ссылка, Истина, РезультатыПроверки);
КонецФункции
&НаСервере
Процедура ОрганизацияПриИзмененииНаСервере()
ЗаполнитьДанныеФормыПоОрганизации();
ОчиститьТаблицыПриИзмененииКлючевыхРеквизитов();
ЭлектронныеТрудовыеКнижки.ЗаполнитьНаименованиеДокумента(Объект, "КадровыйПеревод");
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
МодульРабочиеМестаОхраныТрудаФормы = ОбщегоНазначения.ОбщийМодуль("РабочиеМестаОхраныТрудаФормы");
МодульРабочиеМестаОхраныТрудаФормы.КадровыйПереводСпискомДополнитьФорму(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьДанныеФормыПоОрганизации()
Если НЕ ЗначениеЗаполнено(Объект.Организация) Тогда
Возврат;
КонецЕсли;
ЗапрашиваемыеЗначения = Новый Структура;
ЗапрашиваемыеЗначения.Вставить("Организация", "Объект.Организация");
ЗарплатаКадры.ЗаполнитьЗначенияВФорме(ЭтотОбъект, ЗапрашиваемыеЗначения, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("Организация"));
ПодписиДокументов.ЗаполнитьПодписиПоОрганизации(ЭтотОбъект);
КонецПроцедуры
#Область ЗаписьДокумента
&НаКлиенте
Процедура ЗаписатьИЗакрытьНаКлиенте(Результат, ДополнительныеПараметры) Экспорт
ПараметрыЗаписи = Новый Структура("РежимЗаписи", ?(Объект.Проведен, РежимЗаписиДокумента.Проведение, РежимЗаписиДокумента.Запись));
ЗаписатьНаКлиенте(Истина, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура ЗаписатьНаКлиенте(ЗакрытьПослеЗаписи, ПараметрыЗаписи, ОповещениеЗавершения = Неопределено)
КадровыйУчетРасширенныйКлиент.ПередЗаписьюКадровогоДокументаВФорме(ЭтотОбъект, Объект, ПараметрыЗаписи, ОповещениеЗавершения, ЗакрытьПослеЗаписи);
КонецПроцедуры
#КонецОбласти
&НаКлиенте
Функция ПолучитьДанныеОЗанятыхПозициях() Экспорт
Возврат ПоместитьДанныеОЗанятыхПозицияхВоВременноеХранилище();
КонецФункции
&НаСервере
Функция ПоместитьДанныеОЗанятыхПозицияхВоВременноеХранилище()
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Сотрудники", Объект.Сотрудники.Выгрузить());
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.ДатаНачала КАК Период,
| Сотрудники.Сотрудник
|ПОМЕСТИТЬ ВТСотрудникиПериоды
|ИЗ
| &Сотрудники КАК Сотрудники
|;
|
|
|ВЫБРАТЬ ПЕРВЫЕ 1
| СотрудникиПериоды.Сотрудник
|ИЗ
| ВТСотрудникиПериоды КАК СотрудникиПериоды";
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
ОписательТаблиц = КадровыйУчет.ОписательВременныхТаблицДляСоздатьВТКадровыеДанныеСотрудников(
Запрос.МенеджерВременныхТаблиц, "ВТСотрудникиПериоды");
Отборы = Новый Массив;
ЗарплатаКадрыОбщиеНаборыДанных.ДобавитьВКоллекциюОтбор(
Отборы, "Регистратор", "<>", Объект.Ссылка);
ПоляОтбора = Новый Структура;
ПоляОтбора.Вставить("КадроваяИсторияСотрудников", Отборы);
КадровыйУчет.СоздатьВТКадровыеДанныеСотрудников(ОписательТаблиц, Истина, "Должность,ДолжностьПоШтатномуРасписанию,КоличествоСтавок", ПоляОтбора);
Запрос.Текст =
"ВЫБРАТЬ
| КадровыеДанныеСотрудников.Период,
| КадровыеДанныеСотрудников.Сотрудник,
| КадровыеДанныеСотрудников.Должность,
| КадровыеДанныеСотрудников.ДолжностьПоШтатномуРасписанию,
| КадровыеДанныеСотрудников.КоличествоСтавок
|ИЗ
| ВТКадровыеДанныеСотрудников КАК КадровыеДанныеСотрудников";
ДанныеСотрудников = Запрос.Выполнить().Выгрузить();
Иначе
ДанныеСотрудников = Неопределено;
КонецЕсли;
ИспользуетсяШтатноеРасписание = ПолучитьФункциональнуюОпцию("ИспользоватьШтатноеРасписание");
МассивНачислений = ОбщегоНазначения.ВыгрузитьКолонку(Объект.Начисления, "Начисление", Истина);
ЗначенияРеквизитаРассчитывается = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(МассивНачислений, "Рассчитывается");
СотрудникиДаты = Объект.Сотрудники.Выгрузить(, "ДатаНачала, Сотрудник");
СотрудникиДаты.Колонки.ДатаНачала.Имя = "ДатаСобытия";
ВремяРегистрацииДокумента = ЗарплатаКадрыРасширенный.ЗначенияВремениРегистрацииДокумента(Объект.Ссылка, СотрудникиДаты);
МассивСотрудников = Новый Массив;
Для каждого СтрокаСотрудники Из Объект.Сотрудники Цикл
СтруктураДанныхСотрудника = УправлениеШтатнымРасписаниемКлиентСервер.СтруктураДанныхОЗанятыхПозициях(ТекущаяДатаСеанса());
ЗаполнитьЗначенияСвойств(СтруктураДанныхСотрудника, СтрокаСотрудники);
ВремяРегистрацииСотрудников = ВремяРегистрацииДокумента.Получить(СтрокаСотрудники.ДатаНачала);
Если ВремяРегистрацииСотрудников <> Неопределено Тогда
СтруктураДанныхСотрудника.Период = ВремяРегистрацииСотрудников.Получить(СтрокаСотрудники.Сотрудник);
КонецЕсли;
СтруктураДанныхСотрудника.ПозицияШтатногоРасписания = ?(ИспользуетсяШтатноеРасписание,
СтрокаСотрудники.ДолжностьПоШтатномуРасписанию, СтрокаСотрудники.Должность);
Если Не СтрокаСотрудники.ИзменитьПодразделениеИДолжность Тогда
СтруктураДанныхСотрудника.КоличествоСтавок = 0;
КонецЕсли;
Если ДоступноЧтениеДанныхДляНачисленияЗарплаты Тогда
ФОТ = 0;
ДанныеОНачислениях = Новый Массив;
СтрокиНачислений = Объект.Начисления.НайтиСтроки(Новый Структура("ИдентификаторСтрокиСотрудника", СтрокаСотрудники.ИдентификаторСтрокиСотрудника));
Для каждого СтрокаНачислений Из СтрокиНачислений Цикл
Если СтрокаНачислений.Действие = Перечисления.ДействияСНачислениямиИУдержаниями.Отменить Тогда
Продолжить;
КонецЕсли;
СтрокиПоказателей = Объект.Показатели.НайтиСтроки(Новый Структура("ИдентификаторСтрокиСотрудника,ИдентификаторСтрокиВидаРасчета", СтрокаНачислений.ИдентификаторСтрокиСотрудника, СтрокаНачислений.ИдентификаторСтрокиВидаРасчета));
Если СтрокиПоказателей.Количество() = 0 Тогда
СтруктураПоказателя = Новый Структура("Начисление,Показатель,Значение", СтрокаНачислений.Начисление);
Если Не ЗначенияРеквизитаРассчитывается[СтрокаНачислений.Начисление] Тогда
СтруктураПоказателя.Значение = СтрокаНачислений.Размер;
КонецЕсли;
ДанныеОНачислениях.Добавить(СтруктураПоказателя);
Иначе
Для каждого СтрокаПоказателей Из СтрокиПоказателей Цикл
СтруктураПоказателя = Новый Структура("Начисление,Показатель,Значение", СтрокаНачислений.Начисление, СтрокаПоказателей.Показатель, СтрокаПоказателей.Значение);
ДанныеОНачислениях.Добавить(СтруктураПоказателя);
КонецЦикла;
КонецЕсли;
ФОТ = ФОТ + СтрокаНачислений.Размер;
КонецЦикла;
СтруктураДанныхСотрудника.ФОТ = ФОТ;
СтруктураДанныхСотрудника.Грейд = СтрокаСотрудники.Грейд;
Иначе
ДанныеОНачислениях = Неопределено;
КонецЕсли;
СтруктураДанныхСотрудника.ДанныеОНачислениях = ДанныеОНачислениях;
МассивСотрудников.Добавить(СтруктураДанныхСотрудника);
Если СтрокаСотрудники.ИзменитьПодразделениеИДолжность Тогда
Если ДанныеСотрудников <> Неопределено Тогда
ТекущиеДанные = ДанныеСотрудников.НайтиСтроки(Новый Структура("Период,Сотрудник", СтрокаСотрудники.ДатаНачала, СтрокаСотрудники.Сотрудник));
Если ТекущиеДанные.Количество() > 0 Тогда
ЭлементДанных = УправлениеШтатнымРасписаниемКлиентСервер.СтруктураДанныхОЗанятыхПозициях(ТекущаяДатаСеанса());
ЭлементДанных.Период = СтрокаСотрудники.ДатаНачала;
ЭлементДанных.Сотрудник = СтрокаСотрудники.Сотрудник;
ЭлементДанных.ПозицияШтатногоРасписания = ?(ИспользуетсяШтатноеРасписание, ТекущиеДанные[0].ДолжностьПоШтатномуРасписанию, ТекущиеДанные[0].Должность);
ЭлементДанных.КоличествоСтавок = - ТекущиеДанные[0].КоличествоСтавок;
ЭлементДанных.ДанныеОНачислениях = Неопределено;
МассивСотрудников.Добавить(ЭлементДанных);
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаСотрудники.ДатаОкончания) Тогда
ЭлементДанных = УправлениеШтатнымРасписаниемКлиентСервер.СтруктураДанныхОЗанятыхПозициях(ТекущаяДатаСеанса());
ЭлементДанных.Период = СтрокаСотрудники.ДатаОкончания;
ЭлементДанных.Сотрудник = СтрокаСотрудники.Сотрудник;
Если ДанныеСотрудников <> Неопределено Тогда
ТекущиеДанные = ДанныеСотрудников.НайтиСтроки(Новый Структура("Период,Сотрудник", СтрокаСотрудники.ДатаНачала, СтрокаСотрудники.Сотрудник));
Если ТекущиеДанные.Количество() > 0 Тогда
ЭлементДанных.ПозицияШтатногоРасписания = ?(ИспользуетсяШтатноеРасписание, СтрокаСотрудники.ДолжностьПоШтатномуРасписанию, СтрокаСотрудники.Должность);
ЭлементДанных.КоличествоСтавок = - СтрокаСотрудники.КоличествоСтавок;
КонецЕсли;
КонецЕсли;
ЭлементДанных.ДанныеОНачислениях = Неопределено;
МассивСотрудников.Добавить(ЭлементДанных);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат ПоместитьВоВременноеХранилище(МассивСотрудников, Новый УникальныйИдентификатор);
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция РеквизитыПроверяемыеНаСоответствие()
РеквизитыПроверяемыеНаСоответствие = Новый Структура("РеквизитыШапки,ТабличныеЧасти", Новый Соответствие, Новый Соответствие);
СтруктураОписанияТЧСотрудники = УправлениеШтатнымРасписаниемКлиентСервер.ОписаниеРеквизитовПроверяемыхНаСоответствие();
СтруктураОписанияТЧСотрудники.СтруктураПоиска = Новый Структура("Сотрудник,ДолжностьПоШтатномуРасписанию");
РеквизитНесоответствияСтроки = Новый Структура("ИмяРеквизита,ИмяРеквизитаНесоответствия", "ДолжностьПоШтатномуРасписанию", "ДолжностьПоШтатномуРасписаниюНеСоответствуетПозиции");
СтруктураОписанияТЧСотрудники.РасшифровкаНачислений = Ложь;
СтруктураОписанияТЧСотрудники.РеквизитНесоответствияСтроки = РеквизитНесоответствияСтроки;
РеквизитыПроверяемыеНаСоответствие.ТабличныеЧасти.Вставить("Сотрудники", СтруктураОписанияТЧСотрудники);
Возврат РеквизитыПроверяемыеНаСоответствие;
КонецФункции
&НаКлиенте
Функция РеквизитыПроверяемыеНаСоответствиеНаКлиенте() Экспорт
Возврат РеквизитыПроверяемыеНаСоответствие();
КонецФункции
&НаСервере
Функция ОписаниеФормыРедактирующейДанныеКонтрактаДоговора()
ОписаниеФормы = КонтрактыДоговорыСотрудниковФормы.ОписаниеФормыРедактирующейДанныеКонтрактаДоговора();
ОписаниеФормы.Вставить("ИмяЭлементаПредставитель", "Руководитель");
ОписаниеФормы.Вставить("ИмяЭлементаДолжностьПредставителя", "ДолжностьРуководителя");
Возврат ОписаниеФормы;
КонецФункции
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ВыполнитьПодключаемуюКомандуПослеПодтвержденияЗаписи", ЭтотОбъект, Команда);
ЗарплатаКадрыРасширенныйКлиент.ПоказатьДиалогЗаписиОбъектаДляВыполненияПодключаемойКоманды(ЭтотОбъект, Команда, ОписаниеОповещения);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ОбновитьПодключаемыеКоманды(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьПодключаемуюКомандуПослеПодтвержденияЗаписи(РезультатВопроса, Команда) Экспорт
Если РезультатВопроса = КодВозвратаДиалога.ОК Тогда
ОписаниеКоманды = ПодключаемыеКомандыКлиентПовтИсп.ОписаниеКоманды(Команда.Имя, ЭтотОбъект.ПараметрыПодключаемыхКоманд.АдресТаблицыКоманд);
Если ОписаниеКоманды.РежимЗаписи = "Проводить" Тогда
ПараметрыЗаписи = Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение);
Иначе
ПараметрыЗаписи = Новый Структура("РежимЗаписи", ?(Объект.Проведен, РежимЗаписиДокумента.Проведение, РежимЗаписиДокумента.Запись));
КонецЕсли;
Оповещение = Новый ОписаниеОповещения("ВыполнитьКомандуПослеВсехПроверок", ЭтотОбъект, Новый Структура("Команда", Команда));
ЗаписатьНаКлиенте(Ложь, ПараметрыЗаписи, Оповещение);
Если Объект.Ссылка.Пустая() Или Модифицированность Тогда
Возврат;
КонецЕсли;
ИначеЕсли РезультатВопроса = КодВозвратаДиалога.Отмена Тогда
Возврат;
Иначе
ВыполнитьКомандуПослеВсехПроверок(Истина, Новый Структура("Команда", Команда));
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьКомандуПослеВсехПроверок(Результат, ДополнительныеПарметры) Экспорт
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, ДополнительныеПарметры.Команда, Объект);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьПодключаемыеКоманды(УправляемаяФорма)
ЭДОБЗККлиентСервер.ОбновитьКоманды(УправляемаяФорма, УправляемаяФорма.Объект, Истина);
КонецПроцедуры
#КонецОбласти