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