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