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