Всем доброго дня!
Выполнил перенос из ЗиК-7.7 (релиз 7.70.371) в ЗКГУ-3.1, используя типовой перенос. Выгрузка/загрузка данных без ошибок. Но проблема в том, что нужно чуток исправить модуль проведения документа Начальная штатная расстановка, т.е. заменить в модуле значение "ГоловнаяОрганизация" на реквизит документа "Организация" (чтобы при проведении в Регистры попадал реквизит из шапки документа).
P.S. Причина в том, что в ЗиК-7.7 в одной базе велось несколько организаций, разумеется как обособленные подразделения. После переноса в ЗКГУ-3.1 нужно их "разделить" на отдельные организации и документ Начальная штатная расстановка не позволяет это сделать.
Модуль объекта, функция ДанныеДляПроведения (изменения выделены комментариями), актуально для релиза 3.1.18.82:
Функция ДанныеДляПроведения()
ДанныеДляПроведения = Новый Структура;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.Текст =
"ВЫБРАТЬ
| НачальнаяШтатнаяРасстановкаСотрудники.Ссылка.Месяц КАК ДатаСобытия,
| ДАТАВРЕМЯ(1, 1, 1) КАК ДействуетДо,
| НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник КАК Сотрудник,
//++
//| НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
||НачальнаяШтатнаяРасстановкаСотрудники.Ссылка.Организация КАК ГоловнаяОрганизация,
//--
| НачальнаяШтатнаяРасстановкаСотрудники.ДолжностьПоШтатномуРасписанию КАК Позиция,
| НачальнаяШтатнаяРасстановкаСотрудники.Подразделение КАК Подразделение,
| НачальнаяШтатнаяРасстановкаСотрудники.Должность КАК Должность,
| НачальнаяШтатнаяРасстановкаСотрудники.РабочееМесто КАК РабочееМесто,
| НачальнаяШтатнаяРасстановкаСотрудники.КоличествоСтавок КАК КоличествоСтавок,
| НачальнаяШтатнаяРасстановкаСотрудники.ГрафикРаботы КАК ГрафикРаботы,
| НачальнаяШтатнаяРасстановкаСотрудники.СпособРасчетаАванса КАК СпособРасчетаАванса,
| НачальнаяШтатнаяРасстановкаСотрудники.Аванс КАК Аванс,
| НачальнаяШтатнаяРасстановкаСотрудники.ВидЗанятости КАК ВидЗанятости,
| НачальнаяШтатнаяРасстановкаСотрудники.Ссылка.ВидДоговора КАК ВидДоговора,
| ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.НачальныеДанные) КАК ВидСобытия,
| НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник.ФизическоеЛицо КАК ФизическоеЛицо,
| НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник.ГоловнойСотрудник КАК ГоловнойСотрудник,
| ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка) КАК ОтсутствующийСотрудник,
| ВЫБОР
| КОГДА НачальнаяШтатнаяРасстановкаСотрудники.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Подработка)
| ТОГДА ИСТИНА
| КОГДА НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник <> НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник.ГоловнойСотрудник
| И НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник.ГоловнойСотрудник <> ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоПодработка,
| НачальнаяШтатнаяРасстановкаСотрудники.ПорядокРасчетаСтоимостиЕдиницыВремени КАК ПорядокРасчетаСтоимостиЕдиницыВремени,
| НачальнаяШтатнаяРасстановкаСотрудники.СовокупнаяТарифнаяСтавка КАК СовокупнаяТарифнаяСтавка,
| НачальнаяШтатнаяРасстановкаСотрудники.ВидТарифнойСтавки КАК ВидТарифнойСтавки,
| НачальнаяШтатнаяРасстановкаСотрудники.РазрядКатегория КАК РазрядКатегория,
| НачальнаяШтатнаяРасстановкаСотрудники.Грейд КАК Грейд,
| НачальнаяШтатнаяРасстановкаСотрудники.ПКУ КАК ПКУ,
| НачальнаяШтатнаяРасстановкаСотрудники.ДатаПрисвоения КАК ДатаПрисвоения,
| НачальнаяШтатнаяРасстановкаСотрудники.КлассныйЧинРанг КАК КлассныйЧинРанг,
| НачальнаяШтатнаяРасстановкаСотрудники.ВоинскоеСпециальноеЗвание КАК ВоинскоеСпециальноеЗвание,
| НачальнаяШтатнаяРасстановкаСотрудники.ОсвобождатьСтавку КАК ОсвобождатьСтавку,
| НачальнаяШтатнаяРасстановкаСотрудники.ПланируемаяДатаВозврата КАК ПланируемаяДатаВозврата
|ПОМЕСТИТЬ ВТСотрудники
|ИЗ
| Документ.НачальнаяШтатнаяРасстановка.Сотрудники КАК НачальнаяШтатнаяРасстановкаСотрудники
|ГДЕ
| НачальнаяШтатнаяРасстановкаСотрудники.Ссылка = &Ссылка";
Запрос.Выполнить();
Запрос.УстановитьПараметр("ДатаНачала", ЗарплатаКадрыКлиентСервер.ДатаОтсчетаПериодическихСведений());
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.ДатаСобытия КАК ДатаСобытия,
| Сотрудники.ДействуетДо КАК ДействуетДо,
| Сотрудники.Сотрудник КАК Сотрудник,
| Сотрудники.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
| Сотрудники.Позиция КАК Позиция,
| Сотрудники.Подразделение КАК Подразделение,
| Сотрудники.Должность КАК Должность,
| Сотрудники.КоличествоСтавок КАК КоличествоСтавок,
| Сотрудники.ГрафикРаботы КАК ГрафикРаботы,
| Сотрудники.СпособРасчетаАванса КАК СпособРасчетаАванса,
| Сотрудники.Аванс КАК Аванс,
| Сотрудники.ВидДоговора КАК ВидДоговора,
| Сотрудники.ВидСобытия КАК ВидСобытия,
| Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
| Сотрудники.ГоловнойСотрудник КАК ГоловнойСотрудник,
| Сотрудники.ОтсутствующийСотрудник КАК ОтсутствующийСотрудник,
| Сотрудники.ЭтоПодработка КАК ЭтоПодработка
|ИЗ
| ВТСотрудники КАК Сотрудники
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &ДатаНачала,
| Сотрудники.ДействуетДо,
| Сотрудники.Сотрудник,
| Сотрудники.ГоловнаяОрганизация,
| Сотрудники.Позиция,
| Сотрудники.Подразделение,
| Сотрудники.Должность,
| Сотрудники.КоличествоСтавок,
| Сотрудники.ГрафикРаботы,
| Сотрудники.СпособРасчетаАванса,
| Сотрудники.Аванс,
| Сотрудники.ВидДоговора,
| ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.НеподтвержденныеДанные),
| Сотрудники.ФизическоеЛицо,
| Сотрудники.ГоловнойСотрудник,
| Сотрудники.ОтсутствующийСотрудник,
| Сотрудники.ЭтоПодработка
|ИЗ
| ВТСотрудники КАК Сотрудники
|ГДЕ
| Сотрудники.ДатаСобытия > &ДатаНачала";
// Первый набор данных для проведения - таблица для формирования кадровых движений, истории графиков, авансов.
КадровыеДвижения = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("КадровыеДвижения", КадровыеДвижения);
Запрос.Текст =
"ВЫБРАТЬ
| &ДатаНачала КАК Период,
| Сотрудники.Сотрудник КАК Сотрудник,
| Сотрудники.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
| Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
| Сотрудники.Позиция КАК ПозицияШтатногоРасписания,
| ВЫБОР
| КОГДА Сотрудники.ЭтоПодработка
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиПозицийШтатногоРасписания.Подработка)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиПозицийШтатногоРасписания.Занята)
| КОНЕЦ КАК ВидЗанятостиПозиции,
| Сотрудники.КоличествоСтавок КАК КоличествоСтавок,
| ДАТАВРЕМЯ(1, 1, 1) КАК ПланируемаяДатаЗавершения,
| NULL КАК ЗамещаемыйСотрудник
|ИЗ
| ВТСотрудники КАК Сотрудники
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Сотрудники.ДатаСобытия,
| Сотрудники.Сотрудник,
| Сотрудники.ГоловнаяОрганизация,
| Сотрудники.ФизическоеЛицо,
| Сотрудники.Позиция,
| ВЫБОР
| КОГДА Сотрудники.ОсвобождатьСтавку
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиПозицийШтатногоРасписания.Свободна)
| КОГДА Сотрудники.ЭтоПодработка
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиПозицийШтатногоРасписания.Подработка)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиПозицийШтатногоРасписания.Занята)
| КОНЕЦ,
| Сотрудники.КоличествоСтавок,
| Сотрудники.ПланируемаяДатаВозврата,
| Сотрудники.Сотрудник
|ИЗ
| ВТСотрудники КАК Сотрудники
|ГДЕ
| Сотрудники.ОсвобождатьСтавку";
// Первый набор данных для проведения - таблица для формирования кадровых движений, истории графиков, авансов.
ЗанятостьПозицийШтатногоРасписания = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("ЗанятостьПозицийШтатногоРасписания", ЗанятостьПозицийШтатногоРасписания);
Запрос.Текст =
"ВЫБРАТЬ
| &ДатаНачала КАК ДатаСобытия,
| Сотрудники.ДействуетДо КАК ДействуетДо,
| Сотрудники.Сотрудник КАК Сотрудник,
| Сотрудники.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
| Сотрудники.ГрафикРаботы КАК ГрафикРаботы,
| Сотрудники.СпособРасчетаАванса КАК СпособРасчетаАванса,
| Сотрудники.Аванс КАК Аванс,
| Сотрудники.ВидСобытия КАК ВидСобытия,
| Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо
|ИЗ
| ВТСотрудники КАК Сотрудники";
ГрафикРаботыСотрудниковДвижения = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("ГрафикРаботыСотрудниковДвижения", ГрафикРаботыСотрудниковДвижения);
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.ДатаСобытия КАК ДатаСобытия,
| Сотрудники.ДействуетДо КАК ДействуетДо,
| Сотрудники.Сотрудник КАК Сотрудник,
| Сотрудники.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
| Сотрудники.ГрафикРаботы КАК ГрафикРаботы,
| Сотрудники.СпособРасчетаАванса КАК СпособРасчетаАванса,
| Сотрудники.Аванс КАК Аванс,
| Сотрудники.ВидСобытия КАК ВидСобытия,
| Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо
|ИЗ
| ВТСотрудники КАК Сотрудники";
ПлановыеВыплаты = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("ПлановыеВыплаты", ПлановыеВыплаты);
Запрос.Текст =
"ВЫБРАТЬ
| &ДатаНачала КАК Период,
| Сотрудники.Сотрудник,
| Сотрудники.ГоловнаяОрганизация,
| Сотрудники.ФизическоеЛицо,
| Сотрудники.ВидЗанятости,
| Сотрудники.ДействуетДо
|ИЗ
| ВТСотрудники КАК Сотрудники";
ДвиженияВидовЗанятости = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("ДвиженияВидовЗанятости", ДвиженияВидовЗанятости);
Запрос.Текст =
"ВЫБРАТЬ
| НачальнаяШтатнаяРасстановкаПоказатели.Ссылка КАК Ссылка,
| НачальнаяШтатнаяРасстановкаПоказатели.НомерСтроки КАК НомерСтроки,
| НачальнаяШтатнаяРасстановкаПоказатели.Сотрудник КАК Сотрудник,
| НачальнаяШтатнаяРасстановкаПоказатели.ИдентификаторСтрокиВидаРасчета КАК ИдентификаторСтрокиВидаРасчета,
| НачальнаяШтатнаяРасстановкаПоказатели.Показатель КАК Показатель,
| НачальнаяШтатнаяРасстановкаПоказатели.Значение КАК Значение
|ПОМЕСТИТЬ ВТПоказателиДокумента
|ИЗ
| Документ.НачальнаяШтатнаяРасстановка.Показатели КАК НачальнаяШтатнаяРасстановкаПоказатели
|ГДЕ
| НачальнаяШтатнаяРасстановкаПоказатели.Ссылка = &Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| НачальнаяШтатнаяРасстановкаНачисления.Ссылка КАК Ссылка,
| НачальнаяШтатнаяРасстановкаНачисления.НомерСтроки КАК НомерСтроки,
| НачальнаяШтатнаяРасстановкаНачисления.Сотрудник КАК Сотрудник,
| НачальнаяШтатнаяРасстановкаНачисления.Начисление КАК Начисление,
| НачальнаяШтатнаяРасстановкаНачисления.ИдентификаторСтрокиВидаРасчета КАК ИдентификаторСтрокиВидаРасчета,
| НачальнаяШтатнаяРасстановкаНачисления.Размер КАК Размер,
| НачальнаяШтатнаяРасстановкаНачисления.ДатаНачала КАК ДатаНачала,
| НачальнаяШтатнаяРасстановкаНачисления.ДатаОкончания КАК ДатаОкончания
|ПОМЕСТИТЬ ВТНачисленияДокумента
|ИЗ
| Документ.НачальнаяШтатнаяРасстановка.Начисления КАК НачальнаяШтатнаяРасстановкаНачисления
|ГДЕ
| НачальнаяШтатнаяРасстановкаНачисления.Ссылка = &Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| НачальнаяШтатнаяРасстановкаЛьготы.Ссылка КАК Ссылка,
| НачальнаяШтатнаяРасстановкаЛьготы.НомерСтроки КАК НомерСтроки,
| НачальнаяШтатнаяРасстановкаЛьготы.Сотрудник КАК Сотрудник,
| НачальнаяШтатнаяРасстановкаЛьготы.Льгота КАК Льгота,
| НачальнаяШтатнаяРасстановкаЛьготы.ИдентификаторСтрокиВидаРасчета КАК ИдентификаторСтрокиВидаРасчета,
| НачальнаяШтатнаяРасстановкаЛьготы.Размер КАК Размер
|ПОМЕСТИТЬ ВТЛьготыДокумента
|ИЗ
| Документ.НачальнаяШтатнаяРасстановка.Льготы КАК НачальнаяШтатнаяРасстановкаЛьготы
|ГДЕ
| НачальнаяШтатнаяРасстановкаЛьготы.Ссылка = &Ссылка";
Запрос.Выполнить();
Запрос.Текст =
"ВЫБРАТЬ
| ВЫБОР
| КОГДА НачисленияДокумента.ДатаНачала = ДАТАВРЕМЯ(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, 1, 1),
| ПоказателиДокумента.Сотрудник,
| СправочникСотрудники.ФизическоеЛицо,
| ПоказателиДокумента.Показатель,
| ПоказателиДокумента.Значение
|ИЗ
| ВТПоказателиДокумента КАК ПоказателиДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК СправочникСотрудники
| ПО ПоказателиДокумента.Сотрудник = СправочникСотрудники.Ссылка
|ГДЕ
| ПоказателиДокумента.Показатель <> ЗНАЧЕНИЕ(Справочник.ПоказателиРасчетаЗарплаты.ПустаяСсылка)
| И ПоказателиДокумента.ИдентификаторСтрокиВидаРасчета = 0
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Показатели.ДатаСобытия КАК ДатаСобытия,
| Показатели.Организация КАК Организация,
| Показатели.ДействуетДо КАК ДействуетДо,
| Показатели.Сотрудник КАК Сотрудник,
| Показатели.ФизическоеЛицо КАК ФизическоеЛицо,
| Показатели.Показатель КАК Показатель,
| МАКСИМУМ(Показатели.Значение) КАК Значение
|ИЗ
| ВТПоказатели КАК Показатели
|
|СГРУППИРОВАТЬ ПО
| Показатели.ДатаСобытия,
| Показатели.Организация,
| Показатели.ДействуетДо,
| Показатели.Сотрудник,
| Показатели.ФизическоеЛицо,
| Показатели.Показатель";
// Третий набор данных для проведения - таблица для формирования значений показателей начислений.
ЗначенияПоказателей = Запрос.Выполнить().Выгрузить();
ЗначенияПоказателей.Колонки.Добавить("ДокументОснование", Новый ОписаниеТипов(Метаданные.ОпределяемыеТипы.ОснованиеНачисления.Тип));
ДанныеДляПроведения.Вставить("ЗначенияПоказателейНачислений", ЗначенияПоказателей);
Запрос.Текст =
"ВЫБРАТЬ
| ВЫБОР
| КОГДА НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.ДатаОстатка = ДАТАВРЕМЯ(1, 1, 1)
| ТОГДА НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.Ссылка.Месяц
| ИНАЧЕ ВЫБОР
| КОГДА НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.ВидЕжегодногоОтпуска.ХарактерЗависимостиДнейОтпуска = ЗНАЧЕНИЕ(Перечисление.ХарактерЗависимостиКоличестваДнейОтпуска.ЗависитОтСтажа)
| ТОГДА ДОБАВИТЬКДАТЕ(НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.ДатаОстатка, ДЕНЬ, 1)
| ИНАЧЕ НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.ДатаОстатка
| КОНЕЦ
| КОНЕЦ КАК ДатаСобытия,
| НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.Сотрудник КАК Сотрудник,
| НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.ВидЕжегодногоОтпуска КАК ВидЕжегодногоОтпуска,
| НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.КоличествоДнейВГод КАК КоличествоДнейВГод,
| НЕ НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.НеИспользовать КАК Используется,
| НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.КоличествоДней КАК КоличествоДней
|ИЗ
| Документ.НачальнаяШтатнаяРасстановка.ЕжегодныеОтпуска КАК НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыОтпусков КАК ВидыОтпусков
| ПО НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.ВидЕжегодногоОтпуска = ВидыОтпусков.Ссылка
|ГДЕ
| НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.Ссылка = &Ссылка
| И (НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.КоличествоДнейВГод > 0
| ИЛИ ВидыОтпусков.ХарактерЗависимостиДнейОтпуска = ЗНАЧЕНИЕ(Перечисление.ХарактерЗависимостиКоличестваДнейОтпуска.ЗависитОтСтажа))";
// Четвертый набор данных для проведения - таблица для формирования положенных видов ежегодных отпусков.
ПоложенныеЕжегодныеОтпуска = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("ЕжегодныеОтпуска", ПоложенныеЕжегодныеОтпуска);
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.ДатаСобытия КАК ДатаСобытия,
| Сотрудники.Сотрудник КАК Сотрудник,
| Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
| Сотрудники.ПорядокРасчетаСтоимостиЕдиницыВремени КАК ПорядокРасчета,
| ДАТАВРЕМЯ(1, 1, 1) КАК ДействуетДо
|ИЗ
| ВТСотрудники КАК Сотрудники";
// Пятый набор данных для проведения - таблица для формирования значений порядка пересчета тарифной ставки.
ПорядокПересчетаТарифнойСтавки = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("ПорядокПересчетаТарифнойСтавки", ПорядокПересчетаТарифнойСтавки);
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.ДатаСобытия КАК ДатаСобытия,
| Сотрудники.Сотрудник КАК Сотрудник,
| Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
| Сотрудники.СовокупнаяТарифнаяСтавка КАК Значение,
| ВЫБОР
| КОГДА Сотрудники.СовокупнаяТарифнаяСтавка = 0
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыТарифныхСтавок.ПустаяСсылка)
| ИНАЧЕ Сотрудники.ВидТарифнойСтавки
| КОНЕЦ КАК ВидТарифнойСтавки,
| ДАТАВРЕМЯ(1, 1, 1) КАК ДействуетДо
|ИЗ
| ВТСотрудники КАК Сотрудники";
// Шестой набор данных для проведения - таблица для формирования значений совокупной тарифной ставки.
ДанныеСовокупныхТарифныхСтавок = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("ДанныеСовокупныхТарифныхСтавок", ДанныеСовокупныхТарифныхСтавок);
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.ДатаСобытия КАК ДатаСобытия,
| Сотрудники.Сотрудник КАК Сотрудник,
| Сотрудники.РазрядКатегория КАК РазрядКатегория,
| ДАТАВРЕМЯ(1, 1, 1) КАК ДействуетДо
|ИЗ
| ВТСотрудники КАК Сотрудники";
// Седьмой набор данных для проведения - таблица для формирования значений разряда сотрудника.
РазрядыКатегорииСотрудников = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("РазрядыКатегорииСотрудников", РазрядыКатегорииСотрудников);
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.Сотрудник КАК Сотрудник,
| ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Работа) КАК Состояние,
| &ДатаНачала КАК Начало,
| ДАТАВРЕМЯ(1, 1, 1) КАК Окончание,
| НЕОПРЕДЕЛЕНО КАК ВидВремени
|ИЗ
| ВТСотрудники КАК Сотрудники
|ГДЕ
| Сотрудники.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Подработка)";
// Данные состояний
ДанныеСостояний = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("ДанныеСостояний", ДанныеСостояний);
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.ДатаСобытия КАК ДатаСобытия,
| Сотрудники.Сотрудник КАК Сотрудник
|ИЗ
| ВТСотрудники КАК Сотрудники";
// Девятый набор данных для проведения - таблица для формирования времени регистрации документа.
СотрудникиДаты = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("СотрудникиДаты", СотрудникиДаты);
Запрос.Текст =
"ВЫБРАТЬ
| ПоказателиДокумента.Ссылка.Месяц КАК ДатаСобытия,
| ПоказателиДокумента.Ссылка.Организация КАК Организация,
| ПоказателиДокумента.Сотрудник КАК Сотрудник,
| ПоказателиДокумента.Сотрудник.ФизическоеЛицо КАК ФизическоеЛицо,
| ПоказателиДокумента.Показатель КАК Показатель,
| ИСТИНА КАК Применение
|ИЗ
| ВТПоказателиДокумента КАК ПоказателиДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ ВТПоказателиДокумента КАК ПоказателиНачислений
| ПО ПоказателиДокумента.Ссылка = ПоказателиНачислений.Ссылка
| И ПоказателиДокумента.Сотрудник = ПоказателиНачислений.Сотрудник
| И ПоказателиДокумента.Показатель = ПоказателиНачислений.Показатель
| И (ПоказателиНачислений.ИдентификаторСтрокиВидаРасчета <> 0)
|ГДЕ
| ПоказателиДокумента.ИдентификаторСтрокиВидаРасчета = 0
| И ПоказателиДокумента.Показатель <> ЗНАЧЕНИЕ(Справочник.ПоказателиРасчетаЗарплаты.ПустаяСсылка)
| И ПоказателиНачислений.Показатель ЕСТЬ NULL";
// Десятый набор данных для проведения - таблица для формирования применения дополнительных показателей.
ПрименениеДополнительныхПоказателей = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("ПрименениеДополнительныхПоказателей", ПрименениеДополнительныхПоказателей);
Запрос.Текст =
"ВЫБРАТЬ
| НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.ДатаОстатка,
| НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.Сотрудник,
| НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.ВидЕжегодногоОтпуска,
| НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.РабочийГодНачало,
| НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.РабочийГодОкончание,
| НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.Остаток КАК КоличествоДней
|ИЗ
| Документ.НачальнаяШтатнаяРасстановка.ОстаткиОтпусковПоРабочимГодам КАК НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам
|ГДЕ
| НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.Ссылка = &Ссылка";
// Одиннадцатый набор данных для проведения - таблица для формирования остатков отпусков.
НачальныеОстаткиОтпусков = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("НачальныеОстаткиОтпусков", НачальныеОстаткиОтпусков);
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.ДатаСобытия КАК ДатаСобытия,
| Сотрудники.Сотрудник КАК Сотрудник,
| Сотрудники.ПКУ КАК ПКУ,
| ДАТАВРЕМЯ(1, 1, 1) КАК ДействуетДо
|ИЗ
| ВТСотрудники КАК Сотрудники";
// Двенадцатый набор данных для проведения - таблица для формирования значений разряда сотрудника.
ПКУСотрудников = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("ПКУСотрудников", ПКУСотрудников);
Запрос.Текст =
"ВЫБРАТЬ
| ОтсутствияСдвигающиеРабочийГод.Сотрудник КАК Сотрудник,
| ОтсутствияСдвигающиеРабочийГод.ДатаОстатка КАК ДатаОстатка,
| ОтсутствияСдвигающиеРабочийГод.ВидЕжегодногоОтпуска КАК ВидЕжегодногоОтпуска,
| ОтсутствияСдвигающиеРабочийГод.Состояние КАК Состояние,
| ОтсутствияСдвигающиеРабочийГод.КоличествоДней КАК КоличествоДней
|ИЗ
| Документ.НачальнаяШтатнаяРасстановка.ОтсутствияСдвигающиеРабочийГод КАК ОтсутствияСдвигающиеРабочийГод
|ГДЕ
| ОтсутствияСдвигающиеРабочийГод.Ссылка = &Ссылка";
// Тринадцатый набор данных для проведения - таблица для формирования отсутствий, сдвигающих рабочий год.
Отсутствия = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("ОтсутствияСдвигающиеРабочийГод", Отсутствия);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.Грейды") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("Грейды");
ДанныеГрейдовСотрудников = Модуль.ДанныеДляПроведенияНачальнойШтатнойРасстановкиГрейдыСотрудников(Ссылка);
ДанныеДляПроведения.Вставить("ДанныеГрейдовСотрудников", ДанныеГрейдовСотрудников);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.КадровыйУчет.ДистанционнаяРабота") Тогда
МодульДистанционнаяРабота = ОбщегоНазначения.ОбщийМодуль("ДистанционнаяРабота");
МодульДистанционнаяРабота.НачальнаяШтатнаяРасстановкаСведенияОДистанционнойРаботе(ДанныеДляПроведения, Ссылка);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОхранаТруда") Тогда
МодульОхранаТруда = ОбщегоНазначения.ОбщийМодуль("ОхранаТруда");
МодульОхранаТруда.ПриемНаРаботуСведенияОРабочихМестахСотрудников(ДанныеДляПроведения, Запрос, "ДатаСобытия");
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.КлассныеЧиныРанги") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("КлассныеЧиныРанги");
КлассныеЧиныРангиФизическихЛиц = Модуль.НачальнаяШтатнаяРасстановкаСведенияОКлассныхЧинахРангах(Ссылка);
ДанныеДляПроведения.Вставить("КлассныеЧиныРангиФизическихЛиц", КлассныеЧиныРангиФизическихЛиц);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.ВоинскиеСпециальныеЗвания") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("ВоинскиеСпециальныеЗвания");
ВоинскиеСпециальныеЗванияФизическихЛиц = Модуль.НачальнаяШтатнаяРасстановкаСведенияОВоинскихСпециальныхЗваниях(Ссылка);
ДанныеДляПроведения.Вставить("ВоинскиеСпециальныеЗванияФизическихЛиц", ВоинскиеСпециальныеЗванияФизическихЛиц);
КонецЕсли;
НастройкиПрограммыБюджетногоУчреждения = ЗарплатаКадрыРасширенный.НастройкиПрограммыБюджетногоУчреждения();
ИспользоватьРасчетДенежногоДовольствияСотрудниковОргановИсполнительнойВласти = НастройкиПрограммыБюджетногоУчреждения.ИспользоватьРасчетДенежногоДовольствияСотрудниковОргановИсполнительнойВласти;
ШтатнаяРасстановкаВоеннослужащих = ВидДоговора = Перечисления.ВидыДоговоровССотрудниками.ВоеннослужащийПоПризыву
Или ВидДоговора = Перечисления.ВидыДоговоровССотрудниками.КонтрактВоеннослужащего;
ДанныеДляПроведения.Вставить("РегистрироватьГрафикиРаботы", Не ШтатнаяРасстановкаВоеннослужащих Или ИспользоватьРасчетДенежногоДовольствияСотрудниковОргановИсполнительнойВласти);
ДанныеДляПроведения.Вставить("ШтатнаяРасстановкаВоеннослужащих",ШтатнаяРасстановкаВоеннослужащих);
Возврат ДанныеДляПроведения;
КонецФункции
заменить в модуле значение "ГоловнаяОрганизация" на реквизит документа "Организация" (чтобы при проведении в Регистры попадал реквизит из шапки документа).
Если такие документы вводятся один раз, то, может быть, просто исправить записи в регистрах?
(2) Такую обработку я могу и сам написать! Проблема в том, что при перепроведении док. "Начальная штатная расстановка" вся польза от обработки будет обнулена и нужно будет снова ее запускать, а мне нужно сдать бухам базу в так сказать "рабочем" виде.
(8) Когда бухи закончат "терроризировать/отлаживать" и перепроводить этот документ, тогда я все верну на техподдержку и скрою доступ к этому документу.
Модуль объекта, функция ДанныеДляПроведения (изменения выделены комментариями), актуально для релиза 3.1.18.82:
Функция ДанныеДляПроведения()
ДанныеДляПроведения = Новый Структура;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.Текст =
"ВЫБРАТЬ
| НачальнаяШтатнаяРасстановкаСотрудники.Ссылка.Месяц КАК ДатаСобытия,
| ДАТАВРЕМЯ(1, 1, 1) КАК ДействуетДо,
| НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник КАК Сотрудник,
//++
//| НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
||НачальнаяШтатнаяРасстановкаСотрудники.Ссылка.Организация КАК ГоловнаяОрганизация,
//--
| НачальнаяШтатнаяРасстановкаСотрудники.ДолжностьПоШтатномуРасписанию КАК Позиция,
| НачальнаяШтатнаяРасстановкаСотрудники.Подразделение КАК Подразделение,
| НачальнаяШтатнаяРасстановкаСотрудники.Должность КАК Должность,
| НачальнаяШтатнаяРасстановкаСотрудники.РабочееМесто КАК РабочееМесто,
| НачальнаяШтатнаяРасстановкаСотрудники.КоличествоСтавок КАК КоличествоСтавок,
| НачальнаяШтатнаяРасстановкаСотрудники.ГрафикРаботы КАК ГрафикРаботы,
| НачальнаяШтатнаяРасстановкаСотрудники.СпособРасчетаАванса КАК СпособРасчетаАванса,
| НачальнаяШтатнаяРасстановкаСотрудники.Аванс КАК Аванс,
| НачальнаяШтатнаяРасстановкаСотрудники.ВидЗанятости КАК ВидЗанятости,
| НачальнаяШтатнаяРасстановкаСотрудники.Ссылка.ВидДоговора КАК ВидДоговора,
| ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.НачальныеДанные) КАК ВидСобытия,
| НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник.ФизическоеЛицо КАК ФизическоеЛицо,
| НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник.ГоловнойСотрудник КАК ГоловнойСотрудник,
| ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка) КАК ОтсутствующийСотрудник,
| ВЫБОР
| КОГДА НачальнаяШтатнаяРасстановкаСотрудники.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Подработка)
| ТОГДА ИСТИНА
| КОГДА НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник <> НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник.ГоловнойСотрудник
| И НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник.ГоловнойСотрудник <> ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоПодработка,
| НачальнаяШтатнаяРасстановкаСотрудники.ПорядокРасчетаСтоимостиЕдиницыВремени КАК ПорядокРасчетаСтоимостиЕдиницыВремени,
| НачальнаяШтатнаяРасстановкаСотрудники.СовокупнаяТарифнаяСтавка КАК СовокупнаяТарифнаяСтавка,
| НачальнаяШтатнаяРасстановкаСотрудники.ВидТарифнойСтавки КАК ВидТарифнойСтавки,
| НачальнаяШтатнаяРасстановкаСотрудники.РазрядКатегория КАК РазрядКатегория,
| НачальнаяШтатнаяРасстановкаСотрудники.Грейд КАК Грейд,
| НачальнаяШтатнаяРасстановкаСотрудники.ПКУ КАК ПКУ,
| НачальнаяШтатнаяРасстановкаСотрудники.ДатаПрисвоения КАК ДатаПрисвоения,
| НачальнаяШтатнаяРасстановкаСотрудники.КлассныйЧинРанг КАК КлассныйЧинРанг,
| НачальнаяШтатнаяРасстановкаСотрудники.ВоинскоеСпециальноеЗвание КАК ВоинскоеСпециальноеЗвание,
| НачальнаяШтатнаяРасстановкаСотрудники.ОсвобождатьСтавку КАК ОсвобождатьСтавку,
| НачальнаяШтатнаяРасстановкаСотрудники.ПланируемаяДатаВозврата КАК ПланируемаяДатаВозврата
|ПОМЕСТИТЬ ВТСотрудники
|ИЗ
| Документ.НачальнаяШтатнаяРасстановка.Сотрудники КАК НачальнаяШтатнаяРасстановкаСотрудники
|ГДЕ
| НачальнаяШтатнаяРасстановкаСотрудники.Ссылка = &Ссылка";
Запрос.Выполнить();
Запрос.УстановитьПараметр("ДатаНачала", ЗарплатаКадрыКлиентСервер.ДатаОтсчетаПериодическихСведений());
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.ДатаСобытия КАК ДатаСобытия,
| Сотрудники.ДействуетДо КАК ДействуетДо,
| Сотрудники.Сотрудник КАК Сотрудник,
| Сотрудники.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
| Сотрудники.Позиция КАК Позиция,
| Сотрудники.Подразделение КАК Подразделение,
| Сотрудники.Должность КАК Должность,
| Сотрудники.КоличествоСтавок КАК КоличествоСтавок,
| Сотрудники.ГрафикРаботы КАК ГрафикРаботы,
| Сотрудники.СпособРасчетаАванса КАК СпособРасчетаАванса,
| Сотрудники.Аванс КАК Аванс,
| Сотрудники.ВидДоговора КАК ВидДоговора,
| Сотрудники.ВидСобытия КАК ВидСобытия,
| Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
| Сотрудники.ГоловнойСотрудник КАК ГоловнойСотрудник,
| Сотрудники.ОтсутствующийСотрудник КАК ОтсутствующийСотрудник,
| Сотрудники.ЭтоПодработка КАК ЭтоПодработка
|ИЗ
| ВТСотрудники КАК Сотрудники
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| &ДатаНачала,
| Сотрудники.ДействуетДо,
| Сотрудники.Сотрудник,
| Сотрудники.ГоловнаяОрганизация,
| Сотрудники.Позиция,
| Сотрудники.Подразделение,
| Сотрудники.Должность,
| Сотрудники.КоличествоСтавок,
| Сотрудники.ГрафикРаботы,
| Сотрудники.СпособРасчетаАванса,
| Сотрудники.Аванс,
| Сотрудники.ВидДоговора,
| ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.НеподтвержденныеДанные),
| Сотрудники.ФизическоеЛицо,
| Сотрудники.ГоловнойСотрудник,
| Сотрудники.ОтсутствующийСотрудник,
| Сотрудники.ЭтоПодработка
|ИЗ
| ВТСотрудники КАК Сотрудники
|ГДЕ
| Сотрудники.ДатаСобытия > &ДатаНачала";
// Первый набор данных для проведения - таблица для формирования кадровых движений, истории графиков, авансов.
КадровыеДвижения = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("КадровыеДвижения", КадровыеДвижения);
Запрос.Текст =
"ВЫБРАТЬ
| &ДатаНачала КАК Период,
| Сотрудники.Сотрудник КАК Сотрудник,
| Сотрудники.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
| Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
| Сотрудники.Позиция КАК ПозицияШтатногоРасписания,
| ВЫБОР
| КОГДА Сотрудники.ЭтоПодработка
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиПозицийШтатногоРасписания.Подработка)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиПозицийШтатногоРасписания.Занята)
| КОНЕЦ КАК ВидЗанятостиПозиции,
| Сотрудники.КоличествоСтавок КАК КоличествоСтавок,
| ДАТАВРЕМЯ(1, 1, 1) КАК ПланируемаяДатаЗавершения,
| NULL КАК ЗамещаемыйСотрудник
|ИЗ
| ВТСотрудники КАК Сотрудники
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Сотрудники.ДатаСобытия,
| Сотрудники.Сотрудник,
| Сотрудники.ГоловнаяОрганизация,
| Сотрудники.ФизическоеЛицо,
| Сотрудники.Позиция,
| ВЫБОР
| КОГДА Сотрудники.ОсвобождатьСтавку
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиПозицийШтатногоРасписания.Свободна)
| КОГДА Сотрудники.ЭтоПодработка
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиПозицийШтатногоРасписания.Подработка)
| ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиПозицийШтатногоРасписания.Занята)
| КОНЕЦ,
| Сотрудники.КоличествоСтавок,
| Сотрудники.ПланируемаяДатаВозврата,
| Сотрудники.Сотрудник
|ИЗ
| ВТСотрудники КАК Сотрудники
|ГДЕ
| Сотрудники.ОсвобождатьСтавку";
// Первый набор данных для проведения - таблица для формирования кадровых движений, истории графиков, авансов.
ЗанятостьПозицийШтатногоРасписания = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("ЗанятостьПозицийШтатногоРасписания", ЗанятостьПозицийШтатногоРасписания);
Запрос.Текст =
"ВЫБРАТЬ
| &ДатаНачала КАК ДатаСобытия,
| Сотрудники.ДействуетДо КАК ДействуетДо,
| Сотрудники.Сотрудник КАК Сотрудник,
| Сотрудники.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
| Сотрудники.ГрафикРаботы КАК ГрафикРаботы,
| Сотрудники.СпособРасчетаАванса КАК СпособРасчетаАванса,
| Сотрудники.Аванс КАК Аванс,
| Сотрудники.ВидСобытия КАК ВидСобытия,
| Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо
|ИЗ
| ВТСотрудники КАК Сотрудники";
ГрафикРаботыСотрудниковДвижения = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("ГрафикРаботыСотрудниковДвижения", ГрафикРаботыСотрудниковДвижения);
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.ДатаСобытия КАК ДатаСобытия,
| Сотрудники.ДействуетДо КАК ДействуетДо,
| Сотрудники.Сотрудник КАК Сотрудник,
| Сотрудники.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
| Сотрудники.ГрафикРаботы КАК ГрафикРаботы,
| Сотрудники.СпособРасчетаАванса КАК СпособРасчетаАванса,
| Сотрудники.Аванс КАК Аванс,
| Сотрудники.ВидСобытия КАК ВидСобытия,
| Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо
|ИЗ
| ВТСотрудники КАК Сотрудники";
ПлановыеВыплаты = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("ПлановыеВыплаты", ПлановыеВыплаты);
Запрос.Текст =
"ВЫБРАТЬ
| &ДатаНачала КАК Период,
| Сотрудники.Сотрудник,
| Сотрудники.ГоловнаяОрганизация,
| Сотрудники.ФизическоеЛицо,
| Сотрудники.ВидЗанятости,
| Сотрудники.ДействуетДо
|ИЗ
| ВТСотрудники КАК Сотрудники";
ДвиженияВидовЗанятости = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("ДвиженияВидовЗанятости", ДвиженияВидовЗанятости);
Запрос.Текст =
"ВЫБРАТЬ
| НачальнаяШтатнаяРасстановкаПоказатели.Ссылка КАК Ссылка,
| НачальнаяШтатнаяРасстановкаПоказатели.НомерСтроки КАК НомерСтроки,
| НачальнаяШтатнаяРасстановкаПоказатели.Сотрудник КАК Сотрудник,
| НачальнаяШтатнаяРасстановкаПоказатели.ИдентификаторСтрокиВидаРасчета КАК ИдентификаторСтрокиВидаРасчета,
| НачальнаяШтатнаяРасстановкаПоказатели.Показатель КАК Показатель,
| НачальнаяШтатнаяРасстановкаПоказатели.Значение КАК Значение
|ПОМЕСТИТЬ ВТПоказателиДокумента
|ИЗ
| Документ.НачальнаяШтатнаяРасстановка.Показатели КАК НачальнаяШтатнаяРасстановкаПоказатели
|ГДЕ
| НачальнаяШтатнаяРасстановкаПоказатели.Ссылка = &Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| НачальнаяШтатнаяРасстановкаНачисления.Ссылка КАК Ссылка,
| НачальнаяШтатнаяРасстановкаНачисления.НомерСтроки КАК НомерСтроки,
| НачальнаяШтатнаяРасстановкаНачисления.Сотрудник КАК Сотрудник,
| НачальнаяШтатнаяРасстановкаНачисления.Начисление КАК Начисление,
| НачальнаяШтатнаяРасстановкаНачисления.ИдентификаторСтрокиВидаРасчета КАК ИдентификаторСтрокиВидаРасчета,
| НачальнаяШтатнаяРасстановкаНачисления.Размер КАК Размер,
| НачальнаяШтатнаяРасстановкаНачисления.ДатаНачала КАК ДатаНачала,
| НачальнаяШтатнаяРасстановкаНачисления.ДатаОкончания КАК ДатаОкончания
|ПОМЕСТИТЬ ВТНачисленияДокумента
|ИЗ
| Документ.НачальнаяШтатнаяРасстановка.Начисления КАК НачальнаяШтатнаяРасстановкаНачисления
|ГДЕ
| НачальнаяШтатнаяРасстановкаНачисления.Ссылка = &Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| НачальнаяШтатнаяРасстановкаЛьготы.Ссылка КАК Ссылка,
| НачальнаяШтатнаяРасстановкаЛьготы.НомерСтроки КАК НомерСтроки,
| НачальнаяШтатнаяРасстановкаЛьготы.Сотрудник КАК Сотрудник,
| НачальнаяШтатнаяРасстановкаЛьготы.Льгота КАК Льгота,
| НачальнаяШтатнаяРасстановкаЛьготы.ИдентификаторСтрокиВидаРасчета КАК ИдентификаторСтрокиВидаРасчета,
| НачальнаяШтатнаяРасстановкаЛьготы.Размер КАК Размер
|ПОМЕСТИТЬ ВТЛьготыДокумента
|ИЗ
| Документ.НачальнаяШтатнаяРасстановка.Льготы КАК НачальнаяШтатнаяРасстановкаЛьготы
|ГДЕ
| НачальнаяШтатнаяРасстановкаЛьготы.Ссылка = &Ссылка";
Запрос.Выполнить();
Запрос.Текст =
"ВЫБРАТЬ
| ВЫБОР
| КОГДА НачисленияДокумента.ДатаНачала = ДАТАВРЕМЯ(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, 1, 1),
| ПоказателиДокумента.Сотрудник,
| СправочникСотрудники.ФизическоеЛицо,
| ПоказателиДокумента.Показатель,
| ПоказателиДокумента.Значение
|ИЗ
| ВТПоказателиДокумента КАК ПоказателиДокумента
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК СправочникСотрудники
| ПО ПоказателиДокумента.Сотрудник = СправочникСотрудники.Ссылка
|ГДЕ
| ПоказателиДокумента.Показатель <> ЗНАЧЕНИЕ(Справочник.ПоказателиРасчетаЗарплаты.ПустаяСсылка)
| И ПоказателиДокумента.ИдентификаторСтрокиВидаРасчета = 0
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Показатели.ДатаСобытия КАК ДатаСобытия,
| Показатели.Организация КАК Организация,
| Показатели.ДействуетДо КАК ДействуетДо,
| Показатели.Сотрудник КАК Сотрудник,
| Показатели.ФизическоеЛицо КАК ФизическоеЛицо,
| Показатели.Показатель КАК Показатель,
| МАКСИМУМ(Показатели.Значение) КАК Значение
|ИЗ
| ВТПоказатели КАК Показатели
|
|СГРУППИРОВАТЬ ПО
| Показатели.ДатаСобытия,
| Показатели.Организация,
| Показатели.ДействуетДо,
| Показатели.Сотрудник,
| Показатели.ФизическоеЛицо,
| Показатели.Показатель";
// Третий набор данных для проведения - таблица для формирования значений показателей начислений.
ЗначенияПоказателей = Запрос.Выполнить().Выгрузить();
ЗначенияПоказателей.Колонки.Добавить("ДокументОснование", Новый ОписаниеТипов(Метаданные.ОпределяемыеТипы.ОснованиеНачисления.Тип));
ДанныеДляПроведения.Вставить("ЗначенияПоказателейНачислений", ЗначенияПоказателей);
Запрос.Текст =
"ВЫБРАТЬ
| ВЫБОР
| КОГДА НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.ДатаОстатка = ДАТАВРЕМЯ(1, 1, 1)
| ТОГДА НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.Ссылка.Месяц
| ИНАЧЕ ВЫБОР
| КОГДА НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.ВидЕжегодногоОтпуска.ХарактерЗависимостиДнейОтпуска = ЗНАЧЕНИЕ(Перечисление.ХарактерЗависимостиКоличестваДнейОтпуска.ЗависитОтСтажа)
| ТОГДА ДОБАВИТЬКДАТЕ(НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.ДатаОстатка, ДЕНЬ, 1)
| ИНАЧЕ НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.ДатаОстатка
| КОНЕЦ
| КОНЕЦ КАК ДатаСобытия,
| НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.Сотрудник КАК Сотрудник,
| НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.ВидЕжегодногоОтпуска КАК ВидЕжегодногоОтпуска,
| НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.КоличествоДнейВГод КАК КоличествоДнейВГод,
| НЕ НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.НеИспользовать КАК Используется,
| НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.КоличествоДней КАК КоличествоДней
|ИЗ
| Документ.НачальнаяШтатнаяРасстановка.ЕжегодныеОтпуска КАК НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыОтпусков КАК ВидыОтпусков
| ПО НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.ВидЕжегодногоОтпуска = ВидыОтпусков.Ссылка
|ГДЕ
| НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.Ссылка = &Ссылка
| И (НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.КоличествоДнейВГод > 0
| ИЛИ ВидыОтпусков.ХарактерЗависимостиДнейОтпуска = ЗНАЧЕНИЕ(Перечисление.ХарактерЗависимостиКоличестваДнейОтпуска.ЗависитОтСтажа))";
// Четвертый набор данных для проведения - таблица для формирования положенных видов ежегодных отпусков.
ПоложенныеЕжегодныеОтпуска = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("ЕжегодныеОтпуска", ПоложенныеЕжегодныеОтпуска);
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.ДатаСобытия КАК ДатаСобытия,
| Сотрудники.Сотрудник КАК Сотрудник,
| Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
| Сотрудники.ПорядокРасчетаСтоимостиЕдиницыВремени КАК ПорядокРасчета,
| ДАТАВРЕМЯ(1, 1, 1) КАК ДействуетДо
|ИЗ
| ВТСотрудники КАК Сотрудники";
// Пятый набор данных для проведения - таблица для формирования значений порядка пересчета тарифной ставки.
ПорядокПересчетаТарифнойСтавки = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("ПорядокПересчетаТарифнойСтавки", ПорядокПересчетаТарифнойСтавки);
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.ДатаСобытия КАК ДатаСобытия,
| Сотрудники.Сотрудник КАК Сотрудник,
| Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
| Сотрудники.СовокупнаяТарифнаяСтавка КАК Значение,
| ВЫБОР
| КОГДА Сотрудники.СовокупнаяТарифнаяСтавка = 0
| ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыТарифныхСтавок.ПустаяСсылка)
| ИНАЧЕ Сотрудники.ВидТарифнойСтавки
| КОНЕЦ КАК ВидТарифнойСтавки,
| ДАТАВРЕМЯ(1, 1, 1) КАК ДействуетДо
|ИЗ
| ВТСотрудники КАК Сотрудники";
// Шестой набор данных для проведения - таблица для формирования значений совокупной тарифной ставки.
ДанныеСовокупныхТарифныхСтавок = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("ДанныеСовокупныхТарифныхСтавок", ДанныеСовокупныхТарифныхСтавок);
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.ДатаСобытия КАК ДатаСобытия,
| Сотрудники.Сотрудник КАК Сотрудник,
| Сотрудники.РазрядКатегория КАК РазрядКатегория,
| ДАТАВРЕМЯ(1, 1, 1) КАК ДействуетДо
|ИЗ
| ВТСотрудники КАК Сотрудники";
// Седьмой набор данных для проведения - таблица для формирования значений разряда сотрудника.
РазрядыКатегорииСотрудников = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("РазрядыКатегорииСотрудников", РазрядыКатегорииСотрудников);
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.Сотрудник КАК Сотрудник,
| ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Работа) КАК Состояние,
| &ДатаНачала КАК Начало,
| ДАТАВРЕМЯ(1, 1, 1) КАК Окончание,
| НЕОПРЕДЕЛЕНО КАК ВидВремени
|ИЗ
| ВТСотрудники КАК Сотрудники
|ГДЕ
| Сотрудники.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Подработка)";
// Данные состояний
ДанныеСостояний = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("ДанныеСостояний", ДанныеСостояний);
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.ДатаСобытия КАК ДатаСобытия,
| Сотрудники.Сотрудник КАК Сотрудник
|ИЗ
| ВТСотрудники КАК Сотрудники";
// Девятый набор данных для проведения - таблица для формирования времени регистрации документа.
СотрудникиДаты = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("СотрудникиДаты", СотрудникиДаты);
Запрос.Текст =
"ВЫБРАТЬ
| ПоказателиДокумента.Ссылка.Месяц КАК ДатаСобытия,
| ПоказателиДокумента.Ссылка.Организация КАК Организация,
| ПоказателиДокумента.Сотрудник КАК Сотрудник,
| ПоказателиДокумента.Сотрудник.ФизическоеЛицо КАК ФизическоеЛицо,
| ПоказателиДокумента.Показатель КАК Показатель,
| ИСТИНА КАК Применение
|ИЗ
| ВТПоказателиДокумента КАК ПоказателиДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ ВТПоказателиДокумента КАК ПоказателиНачислений
| ПО ПоказателиДокумента.Ссылка = ПоказателиНачислений.Ссылка
| И ПоказателиДокумента.Сотрудник = ПоказателиНачислений.Сотрудник
| И ПоказателиДокумента.Показатель = ПоказателиНачислений.Показатель
| И (ПоказателиНачислений.ИдентификаторСтрокиВидаРасчета <> 0)
|ГДЕ
| ПоказателиДокумента.ИдентификаторСтрокиВидаРасчета = 0
| И ПоказателиДокумента.Показатель <> ЗНАЧЕНИЕ(Справочник.ПоказателиРасчетаЗарплаты.ПустаяСсылка)
| И ПоказателиНачислений.Показатель ЕСТЬ NULL";
// Десятый набор данных для проведения - таблица для формирования применения дополнительных показателей.
ПрименениеДополнительныхПоказателей = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("ПрименениеДополнительныхПоказателей", ПрименениеДополнительныхПоказателей);
Запрос.Текст =
"ВЫБРАТЬ
| НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.ДатаОстатка,
| НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.Сотрудник,
| НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.ВидЕжегодногоОтпуска,
| НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.РабочийГодНачало,
| НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.РабочийГодОкончание,
| НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.Остаток КАК КоличествоДней
|ИЗ
| Документ.НачальнаяШтатнаяРасстановка.ОстаткиОтпусковПоРабочимГодам КАК НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам
|ГДЕ
| НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.Ссылка = &Ссылка";
// Одиннадцатый набор данных для проведения - таблица для формирования остатков отпусков.
НачальныеОстаткиОтпусков = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("НачальныеОстаткиОтпусков", НачальныеОстаткиОтпусков);
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.ДатаСобытия КАК ДатаСобытия,
| Сотрудники.Сотрудник КАК Сотрудник,
| Сотрудники.ПКУ КАК ПКУ,
| ДАТАВРЕМЯ(1, 1, 1) КАК ДействуетДо
|ИЗ
| ВТСотрудники КАК Сотрудники";
// Двенадцатый набор данных для проведения - таблица для формирования значений разряда сотрудника.
ПКУСотрудников = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("ПКУСотрудников", ПКУСотрудников);
Запрос.Текст =
"ВЫБРАТЬ
| ОтсутствияСдвигающиеРабочийГод.Сотрудник КАК Сотрудник,
| ОтсутствияСдвигающиеРабочийГод.ДатаОстатка КАК ДатаОстатка,
| ОтсутствияСдвигающиеРабочийГод.ВидЕжегодногоОтпуска КАК ВидЕжегодногоОтпуска,
| ОтсутствияСдвигающиеРабочийГод.Состояние КАК Состояние,
| ОтсутствияСдвигающиеРабочийГод.КоличествоДней КАК КоличествоДней
|ИЗ
| Документ.НачальнаяШтатнаяРасстановка.ОтсутствияСдвигающиеРабочийГод КАК ОтсутствияСдвигающиеРабочийГод
|ГДЕ
| ОтсутствияСдвигающиеРабочийГод.Ссылка = &Ссылка";
// Тринадцатый набор данных для проведения - таблица для формирования отсутствий, сдвигающих рабочий год.
Отсутствия = Запрос.Выполнить().Выгрузить();
ДанныеДляПроведения.Вставить("ОтсутствияСдвигающиеРабочийГод", Отсутствия);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.Грейды") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("Грейды");
ДанныеГрейдовСотрудников = Модуль.ДанныеДляПроведенияНачальнойШтатнойРасстановкиГрейдыСотрудников(Ссылка);
ДанныеДляПроведения.Вставить("ДанныеГрейдовСотрудников", ДанныеГрейдовСотрудников);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.КадровыйУчет.ДистанционнаяРабота") Тогда
МодульДистанционнаяРабота = ОбщегоНазначения.ОбщийМодуль("ДистанционнаяРабота");
МодульДистанционнаяРабота.НачальнаяШтатнаяРасстановкаСведенияОДистанционнойРаботе(ДанныеДляПроведения, Ссылка);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОхранаТруда") Тогда
МодульОхранаТруда = ОбщегоНазначения.ОбщийМодуль("ОхранаТруда");
МодульОхранаТруда.ПриемНаРаботуСведенияОРабочихМестахСотрудников(ДанныеДляПроведения, Запрос, "ДатаСобытия");
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.КлассныеЧиныРанги") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("КлассныеЧиныРанги");
КлассныеЧиныРангиФизическихЛиц = Модуль.НачальнаяШтатнаяРасстановкаСведенияОКлассныхЧинахРангах(Ссылка);
ДанныеДляПроведения.Вставить("КлассныеЧиныРангиФизическихЛиц", КлассныеЧиныРангиФизическихЛиц);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.ВоинскиеСпециальныеЗвания") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("ВоинскиеСпециальныеЗвания");
ВоинскиеСпециальныеЗванияФизическихЛиц = Модуль.НачальнаяШтатнаяРасстановкаСведенияОВоинскихСпециальныхЗваниях(Ссылка);
ДанныеДляПроведения.Вставить("ВоинскиеСпециальныеЗванияФизическихЛиц", ВоинскиеСпециальныеЗванияФизическихЛиц);
КонецЕсли;
НастройкиПрограммыБюджетногоУчреждения = ЗарплатаКадрыРасширенный.НастройкиПрограммыБюджетногоУчреждения();
ИспользоватьРасчетДенежногоДовольствияСотрудниковОргановИсполнительнойВласти = НастройкиПрограммыБюджетногоУчреждения.ИспользоватьРасчетДенежногоДовольствияСотрудниковОргановИсполнительнойВласти;
ШтатнаяРасстановкаВоеннослужащих = ВидДоговора = Перечисления.ВидыДоговоровССотрудниками.ВоеннослужащийПоПризыву
Или ВидДоговора = Перечисления.ВидыДоговоровССотрудниками.КонтрактВоеннослужащего;
ДанныеДляПроведения.Вставить("РегистрироватьГрафикиРаботы", Не ШтатнаяРасстановкаВоеннослужащих Или ИспользоватьРасчетДенежногоДовольствияСотрудниковОргановИсполнительнойВласти);
ДанныеДляПроведения.Вставить("ШтатнаяРасстановкаВоеннослужащих",ШтатнаяРасстановкаВоеннослужащих);
Возврат ДанныеДляПроведения;
КонецФункции