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