Зарплата и Управление Персоналом 8, редакция 2.5. Версия 2.5.34.2. Информация об ошибках

 
  Код ошибки: 10001643  
  Дата публикации: 5 августа 2008 г.  
  Описание: При отправке печатной формы документа по электронной почте в текст письма не попадают имеющиеся картинки.  
 
  Код ошибки: 00094289  
  Дата публикации: 14 сентября 2007 г.  
  Описание: В форме 2-НДФЛ за прошлые годы (по 2009-й) на работника, у которого по результатам перерасчета за прошлые налоговые периода был доудержан (зачтен) налог, не заполняются пп.5.6 или 5.7 раздела 5.  
 
  Код ошибки: 10050537  
  Дата публикации: 15 октября 2010 г.  
  Описание: Оформлен первичный больничный лист, затем продолжение больничного и в нем указана дата нарушения режима, при оформлении второго продолжения больничного, в него не переносится информация о дате нарушения режима.  
 
  Код ошибки: 10042205  
  Дата публикации: 30 ноября 2010 г.  
  Описание: При расчете б/л в 2010 году по сотруднику, работавшему ранее по основному месту работы и по внутреннему совместительству, не учитывается заработок по внутреннему совместительству, если на дату начала болезни со внутреннего совместительства сотрудник был уволен.  
 
  Код ошибки: 10064714  
  Дата публикации: 15 октября 2010 г.  
  Описание: При попытке пересчетать документ "Оплата сверхурочных часов" после повышения окладов "задним числом" при помощи обработки "Перерасчет зарплаты по предприятию" создаваемый документ не заполняется.  
 
  Код ошибки: 00103150  
  Дата публикации: 30 апреля 2008 г.  
  Описание: Если в анкету, указанную в настройках программы как резюме кандидата, добавить вопросы из предопределенной группы вопросов о контактной информации физлица, то при создании физлица по ответам на такую анкету контактная информация из опроса не будет перенесена в данные физлица.  
 
  Код ошибки: 10036185  
  Дата публикации: 15 октября 2009 г.  
  Описание: При использовании кассового метода учета управленческих затрат, в документе "Планируемые затраты на персонал" неверно определяется факт прошлого периода.  
 
  Код ошибки: 10062909  
  Дата публикации: 18 марта 2011 г.  
  Описание: Если при проведении кадрового документа-исправления будет выдано сообщение об ошибке пользователя и он не проведется, то после устранения проблемы и проведения документа возникает следующая "отложенная" проблема: при попытке отменить проведение этого документа будет выдано сообщение об ошибке.  
  Способ обхода: После неудавшейся отмены проведения необходимо снова провести документ, после чего его можно будет отменить.  
 
  Код ошибки: 10036015  
  Дата публикации: 15 октября 2009 г.  
  Описание: После исправления кадрового документа в обработке "Анализ неявок", исходное кадровое событие не показывается, отчего расчетный документ, оформленный по устаревшим кадровым данным, сопоставляется с исправленным кадровым событием.  
 
  Код ошибки: 10001302  
  Дата публикации: 29 июля 2008 г.  
  Описание: В отчете "Расчетная ведомость", построенном за несколько месяцев, в некоторых случаях неправильно отражаются итоги по показателям сальдо.  
 
  Код ошибки: 10064453  
  Дата публикации: 15 октября 2010 г.  
  Описание: Отч. "Медицинское страхование" не показывает адрес и телефон для новых незастрахованных сотрудников.  
 
  Код ошибки: 10079953  
  Дата публикации: 31 мая 2011 г.  
  Описание: В отчете "Отражение зарплаты в упр. учете" отсутствует сортировка.  
 
  Код ошибки: 10002714  
  Дата публикации: 26 сентября 2008 г.  
  Описание: При обновлении с конфигурации с редакции 2.1. на 2.5 выдается сообщение об ошибке, когда в организации не поддерживается внутреннее совместительство и по физлицу, с которым заключен договор ГПХ на выполнение работ, зарегистрирован документ «Ввод процента деятельности ЕНВД».  
 
  Код ошибки: 10043804  
  Дата публикации: 23 декабря 2009 г.  
  Описание: В документе "Оплата сверхурочных часов" не пересчитывается в часовую тарифная ставка из произвольной формулы - всегда получается 0.  
 
  Код ошибки: 10058700  
  Дата публикации: 8 июля 2010 г.  
  Описание: В документе-исправлении <Начисление зарплаты> у видов расчета с произвольной формулой неверно рассчитывается показатель <Отработано времени в днях>.  
 
  Код ошибки: 10071893  
  Дата публикации: 18 января 2011 г.  
  Описание: Неверно заполняются данные о доходах для расчета пособий соц. страхования за 2009 год в том случае, когда сотруднику в 2009 году начислялась материальная помощь, не облагавшаяся ранее ЕСН целиком, - не учитывается скидка.
 
 
  Код ошибки: 00076008  
  Дата публикации: 17 июля 2007 г.  
  Описание: Неверно исчисляются алименты с работника, отработавшего неполный рабочий месяц из-за прогулов.  
 
  Код ошибки: 10055659  
  Дата публикации: 18 мая 2011 г.  
  Описание: В том случае, когда за 1 квартал 2010 года у сотрудника имеются только отрицательные начисления, в отчете 4-ФСС неверно заполняются показатели облагаемой базы - в них ошибочно включаются эти отрицательные начисления.  
 
  Код ошибки: 10029695  
  Дата публикации: 31 августа 2010 г.  
  Описание: Отчет "4-ФСС". Раздел 3, таблица 9. Заполнение колонок 7, 8, 10, 11.
При заполнении вручную скидок и надбавок к страховому тарифу неверно происходит авторасчет итоговой 11 колонки. К введенной уже с учетом скидок и надбавок ставке взноса в ФСС от несчастного случая (колонка 7), прибавляются введенные в ручную размеры скидок и надбавок и отражается в итоговой колонке 11.
 
  Способ обхода: После заполнения отчета необходимо отключить авторасчет вычисляемых ячеек (соответствующий флаг в шапке отчета) и внести правильные процентные ставки.  
 
  Код ошибки: 10080912  
  Дата публикации: 13 мая 2011 г.  
  Описание: Если в журнале регламентированных отчетов очистить дату окончания периода, а затем снять галочку отбора Период, а затем ее опять установить, то возникает сообщение об ошибке:
{Обработка.ОбщиеОбъектыРегламентированнойОтчетности.Форма.УправлениеОтчетностью.Форма(1466)}: Ошибка при вызове метода контекста (ПредставлениеПериода)
Подсказка = "Отчеты за период " + ПредставлениеПериода(ДатаНачалаПериодаОтчета, КонецДня(ДатаКонцаПериодаОтчета), "ФП = Истина");
по причине:
Недопустимое значение параметра (параметр номер '2') (01.01.0001 23:59:59 < 01.01.2011 0:00:00)
Если закрыть журнал с включенным отбором по периоду, то открыть его в дальнейшем не удастся, т.к. будет выдаваться вышеописанное сообщение об ошибке и окно журнала не будет открываться.
 
 
  Код ошибки: 10057489  
  Дата публикации: 15 октября 2010 г.  
  Описание: В печатных формах могут неверно склоняться некоторые мужские фамилии, оканчивающиеся на "-ий" после согласной.  
 
  Код ошибки: 10082109  
  Дата публикации: 8 июня 2011 г.  
  Описание: В печатную форму "Расчет при увольнении (Т-61)" в таблице расчета выплат в колонку 12 не попадают начисленные в месяце увольнения выплаты за прошлые месяцы.  
 
  Код ошибки: 10079491  
  Дата публикации: 20 апреля 2011 г.  
  Описание: При исправлении больничных листов в сторно записях не заполняется ресурс "в т.ч. за счет федерального бюджета".  
  Исправлено в релизе: 2.5.35  
 
  Код ошибки: 10081065  
  Дата публикации: 13 мая 2011 г.  
  Описание: В форме документа "Сведения о страховых взносах и стаже застрахованных лиц (СЗВ-4, СЗВ-6)" для корректирующих форм в 2011 году по периодам 2010 года не удается выбрать категории ЗЛ 2010 года.  
  Способ обхода: Использовать для редактирования документов рабочее место "Подготовка данных в ПФР".  
  Исправлено в релизе: 2.5.35  
 
  Код ошибки: 10079307  
  Дата публикации: 20 апреля 2011 г.  
  Описание: Если в информационной базе ведется учет по нескольким организациям, то в расшифровку отчета Форма-4 ФСС по Разделу 1, табл. 2, попадают суммы по всем организациям.  
  Исправлено в релизе: 2.5.35  
 
  Код ошибки: 10080148  
  Дата публикации: 28 апреля 2011 г.  
  Описание: Если сотруднику оформлен больничный лист, а затем продолжение больничного листа, то в отчете Табель Т-13, период времени, приходящийся на продолжение больничного листа, выводится как явка.  
  Исправлено в релизе: 2.5.35  
 
  Код ошибки: 10080044  
  Дата публикации: 28 апреля 2011 г.  
  Описание: При оплате отпуска по беременности и родам по правилам 2010 года, расчет производится исходя из максимального среднедневного заработка по правилам 2010 года (415000/ 365=1136.99), а в печатной форме "Оборот" листка нетрудоспособности выводится максимальный размер дневного пособия по правилам 2011 года (463000/ 365 =1268.49), что неверно.  
  Планируется исправить в релизе: 2.5.35  
 
  Код ошибки: 10079096  
  Дата публикации: 15 апреля 2011 г.  
  Описание: Неверно перезаполнялся проведенный документ "Перечисление НДФЛ в бюджет РФ".  
  Способ исправления: Заменить процедуру Автозаполнение() модуля документа ПеречислениеНДФЛвБюджет следующим фрагментом:
Процедура Автозаполнение(ФизическиеЛица = Неопределено) Экспорт
Если Сумма = 0 Тогда
Возврат
КонецЕсли;

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РасчетыНалоговыхАгентовСБюджетомПоНДФЛОстатки.ФизЛицо,
| РасчетыНалоговыхАгентовСБюджетомПоНДФЛОстатки.СуммаОстаток КАК Сумма
|ПОМЕСТИТЬ ВТОстатки
|ИЗ
| РегистрНакопления.РасчетыНалоговыхАгентовСБюджетомПоНДФЛ.Остатки(
| &ДатаОперации,
| Организация = &Организация
| И Ставка = &Ставка
| И (ФизЛицо В (&ФизическиеЛица)
| ИЛИ &НеОтбирать)
| И МесяцНалоговогоПериода = &МесяцНалоговогоПериода
| И ОКАТО_КПП = &ОКАТО_КПП) КАК РасчетыНалоговыхАгентовСБюджетомПоНДФЛОстатки
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| РасчетыНалоговыхАгентовСБюджетомПоНДФЛ.ФизЛицо,
| РасчетыНалоговыхАгентовСБюджетомПоНДФЛ.Сумма
|ИЗ
| РегистрНакопления.РасчетыНалоговыхАгентовСБюджетомПоНДФЛ КАК РасчетыНалоговыхАгентовСБюджетомПоНДФЛ
|ГДЕ
| &УчитыватьДвиженияРегистратора
| И РасчетыНалоговыхАгентовСБюджетомПоНДФЛ.Регистратор = &Регистратор
| И (РасчетыНалоговыхАгентовСБюджетомПоНДФЛ.ФизЛицо В (&ФизическиеЛица)
| ИЛИ &НеОтбирать)
| И РасчетыНалоговыхАгентовСБюджетомПоНДФЛ.Организация = &Организация
| И РасчетыНалоговыхАгентовСБюджетомПоНДФЛ.Ставка = &Ставка
| И РасчетыНалоговыхАгентовСБюджетомПоНДФЛ.МесяцНалоговогоПериода = &МесяцНалоговогоПериода
| И РасчетыНалоговыхАгентовСБюджетомПоНДФЛ.ОКАТО_КПП = &ОКАТО_КПП
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Остатки.ФизЛицо,
| СУММА(Остатки.Сумма) КАК Сумма
|ИЗ
| ВТОстатки КАК Остатки
|
|СГРУППИРОВАТЬ ПО
| Остатки.ФизЛицо
|
|ИМЕЮЩИЕ
| СУММА(Остатки.Сумма) > 0";
Запрос.УстановитьПараметр("Регистратор", Ссылка);
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("ДатаОперации", ДатаПлатежа);
Запрос.УстановитьПараметр("МесяцНалоговогоПериода", МесяцНалоговогоПериода);
Запрос.УстановитьПараметр("Ставка", Ставка);
Запрос.УстановитьПараметр("ОКАТО_КПП", ОКАТО_КПП);
Запрос.УстановитьПараметр("НеОтбирать", Не ЗначениеЗаполнено(ФизическиеЛица));
Запрос.УстановитьПараметр("ФизическиеЛица", ФизическиеЛица);
Запрос.УстановитьПараметр("УчитыватьДвиженияРегистратора", Проведен И Модифицированность() И ДатаПлатежа > ОбщегоНазначения.ПолучитьЗначениеРеквизита(Ссылка,"ДатаПлатежа"));
Результат = Запрос.Выполнить().Выгрузить();
КоэффициентыРаспределения = ПроведениеРасчетов.ВыделитьКоэффициентыРаспределенияИзКоллекцииСтрок(Результат,"Сумма");
РезультатРаспределения = ОбщегоНазначенияЗК.РаспределитьПропорционально(Сумма, КоэффициентыРаспределения, 0);
Если РезультатРаспределения = Неопределено Тогда
Для каждого СтрокаТЧ Из СотрудникиОрганизации Цикл
СтрокаТЧ.Сумма = 0
КонецЦикла;
Возврат
Иначе
Если ЗначениеЗаполнено(ФизическиеЛица) Тогда
Для каждого СтрокаТЧ Из СотрудникиОрганизации Цикл
СтрокаТЧ.Сумма = 0
КонецЦикла;
Индекс = 0;
Для каждого СтрокаТЗ Из Результат Цикл
НоваяСтрока = СотрудникиОрганизации.Найти(СтрокаТЗ.ФизЛицо,"ФизЛицо");
Если НоваяСтрока <> Неопределено Тогда
НоваяСтрока.Сумма = РезультатРаспределения[Индекс];
КонецЕсли;
Индекс = Индекс + 1;
КонецЦикла;
Иначе
Индекс = 0;
Для каждого СтрокаТЗ Из Результат Цикл
НоваяСтрока = СотрудникиОрганизации.Добавить();
НоваяСтрока.ФизЛицо = СтрокаТЗ.ФизЛицо;
НоваяСтрока.Сумма = РезультатРаспределения[Индекс];
Индекс = Индекс + 1;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
 
  Планируется исправить в релизе: 2.5.35  
 
  Код ошибки: 10080966  
  Дата публикации: 13 мая 2011 г.  
  Описание: При создании нового платежного поручения из списка документов все поля недоступны для заполнения.  
  Планируется исправить в релизе: 2.5.35  
 
  Код ошибки: 10080068  
  Дата публикации: 18 мая 2011 г.  
  Описание: Если в документе "Сдельный наряд" в списке сотрудников присутствуют работники, принятые на работу в течение месяца, то в режиме "Учитывать отработанное время в табеле" и вводе времени по дням периода документ не проводится с сообщением об ошибке.  
  Планируется исправить в релизе: 2.5.35  
 
  Код ошибки: 10080093  
  Дата публикации: 28 апреля 2011 г.  
  Описание: При конвертации взаиморасчетов переносятся взаиморасчеты только последних 100 сотрудников  
  Планируется исправить в релизе: 2.5.35  
 
  Код ошибки: 10078482  
  Дата публикации: 18 мая 2011 г.  
  Описание: При конвертации кадровых данных из ЗиК, если сотрудник увольняется и принимается на работу повторно на следующий день и по нему до увольнения не был введен прием на работу, возникает сообщение об ошибке.  
  Планируется исправить в релизе: 2.5.35  
 
  Код ошибки: 10080467  
  Дата публикации: 3 мая 2011 г.  
  Описание: Кадровые документы, перенесенные из ЗиК, не видны пользователям с ролью "Кадровик".  
  Планируется исправить в релизе: 2.5.35  
 
  Код ошибки: 10080831  
  Дата публикации: 10 мая 2011 г.  
  Описание: После конвертации данных из ЗиК неправильно проверяются перенесенные сведения о начислениях, удержаниях и выплатах.  
  Планируется исправить в релизе: 2.5.35  
 
  Код ошибки: 10035268  
  Дата публикации: 18 мая 2011 г.  
  Описание: При конвертации не переносятся тарифные разряды.  
  Планируется исправить в релизе: 2.5.35  
 
  Код ошибки: 10081148  
  Дата публикации: 18 мая 2011 г.  
  Описание: В отчете "Унифицированная форма Т-51" долг за работником, при положительных итогах по страницам, в целом по ведомости может показываться отрицательным.  
  Планируется исправить в релизе: 2.5.35  
 
  Код ошибки: 10077990  
  Дата публикации: 13 мая 2011 г.  
  Описание: Для отпуска по беременности, рассчитываемого по правилам 2010 года, доплата до полного среднего заработка рассчитывалась неверно - по правилам 2011 года.  
  Планируется исправить в релизе: 2.5.35  
 
  Код ошибки: 10066070  
  Дата публикации: 18 мая 2011 г.  
  Описание: В некоторых случаях при автоматическом заполнении отчета РСВ-1 в строке 215 раздела 2 ошибочно появляется значение "-1", хотя соответствующих данных в ИБ нет.  
  Планируется исправить в релизе: 2.5.35  
 
  Код ошибки: 10082371  
  Дата публикации: 8 июня 2011 г.  
  Описание: В отч. "Анализ начислений сотрудникам организаций" для пользователя "Расчетчик" (роли "Пользователь"+"Расчетчик регламентированной зарплаты") группировка "Вид расчета" помечена как удаленная. В результате в отчет выводятся только суммы.  
  Исправлено в релизе: 2.5.36  
 
  Код ошибки: 10074511  
  Дата публикации: 24 мая 2011 г.  
  Описание: При формировании Карточек учета страховых взносов на список сотрудников, в некоторых случаях могла не выводиться "Дополнительная таблица карточки индивидуального учета сумм начисленных выплат и иных вознаграждений".  
  Исправлено в релизе: 2.5.36  
 
  Код ошибки: 10067581  
  Дата публикации: 24 мая 2011 г.  
  Описание: Если у сотрудника существенно различаются базы, облагаемые взносами в разные фонды (например, оплата по договорам ГПХ превышает зарплату), и при этом база взносов превышает предельную величину, в отчете "Карточка учета страховых взносов" неверно показываются суммы превышения по ФСС (иногда и по ФОМС).  
  Исправлено в релизе: 2.5.36  
 
  Код ошибки: 10082421  
  Дата публикации: 8 июня 2011 г.  
  Описание: Если сотрудник занят неполное время и у него нет данных о заработке для расчета б/л по правилам 2011 года, то при расчете исходя из МРОТ ошибочно не учитывается установленная для него доля неполного времени.  
  Способ обхода: В таблице данных для расчета среднего заработка ввести строку с нулевым заработком и рассчитать б/л кнопкой "Рассчитать начисления".  
  Исправлено в релизе: 2.5.36  
 
  Код ошибки: 10082183  
  Дата публикации: 8 июня 2011 г.  
  Описание: Для программы бухучета «Бухгалтерия предприятия редакция 2.0» неправильно распределяются по счетам затрат страховые взносы, кода в списке счетов для распределения есть счета на которых ведется учет по подразделениям и не ведется учет по подразделениям.  
  Способ исправления: В модуле документа ОтражениеЗарплатыВРеглУчете в функции ПолучитьДанныеУчетаСтраховыхВзносов2011 заменить текст основного запроса
Запрос.Текст =
"ВЫБРАТЬ
| Хозрасчетный.Ссылка КАК Ссылка
|ПОМЕСТИТЬ ВТ_Счета84
|ИЗ
| ПланСчетов.Хозрасчетный КАК Хозрасчетный
|ГДЕ
| Хозрасчетный.Ссылка В ИЕРАРХИИ(&СчетаИсключения)
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТаблицаСкидок.Сотрудник КАК Сотрудник,
| ТаблицаСкидок.ВидРасчета КАК ВидРасчета,
| ТаблицаСкидок.КодДоходаЕСН КАК КодДоходаЕСН,
| ТаблицаСкидок.ОблагаетсяПоДополнительномуТарифу КАК ОблагаетсяПоДополнительномуТарифу,
| ТаблицаСкидок.ОблагаетсяВзносамиНаДоплатуКПенсииШахтерам КАК ОблагаетсяВзносамиНаДоплатуКПенсииШахтерам,
| ТаблицаСкидок.ПериодРегистрации КАК ПериодРегистрации,
| ТаблицаСкидок.Скидка
|ПОМЕСТИТЬ ВТ_СкидкиКДоходам
|ИЗ
| &ТаблицаСкидок КАК ТаблицаСкидок
|
|ИНДЕКСИРОВАТЬ ПО
| ПериодРегистрации,
| Сотрудник,
| ВидРасчета,
| КодДоходаЕСН,
| ОблагаетсяПоДополнительномуТарифу,
| ОблагаетсяВзносамиНаДоплатуКПенсииШахтерам
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Доходы.Сотрудник КАК Сотрудник,
| Доходы.ФизЛицо КАК ФизЛицо,
| Доходы.ВидРасчета КАК ВидРасчета,
| Доходы.ВидДохода,
| Доходы.ОблагаетсяПоДополнительномуТарифу,
| Доходы.ОблагаетсяВзносамиНаДоплатуКПенсииШахтерам,
| Доходы.ПериодРегистрации КАК ПериодРегистрации,
| Доходы.ПериодДействия КАК ПериодДействия,
| СУММА(Доходы.Результат) КАК Результат,
| Доходы.ВидДохода.ВходитВБазуПФР КАК ВходитВБазуПФР,
| Доходы.ВидДохода.ВходитВБазуФСС КАК ВходитВБазуФСС,
| Доходы.ВидДохода.ВходитВБазуФОМС КАК ВходитВБазуФОМС
|ПОМЕСТИТЬ ВТ_ВзносыДоходыПоВР
|ИЗ
| (ВЫБРАТЬ
| ЕСНОсновныеНачисления.Сотрудник КАК Сотрудник,
| ЕСНОсновныеНачисления.ФизЛицо КАК ФизЛицо,
| ЕСНОсновныеНачисления.ВидРасчета КАК ВидРасчета,
| ЕСНОсновныеНачисления.КодДоходаЕСН КАК ВидДохода,
| ЕСНОсновныеНачисления.ОблагаетсяПоДополнительномуТарифу КАК ОблагаетсяПоДополнительномуТарифу,
| ЕСНОсновныеНачисления.ОблагаетсяВзносамиНаДоплатуКПенсииШахтерам КАК ОблагаетсяВзносамиНаДоплатуКПенсииШахтерам,
| ЕСНОсновныеНачисления.ПериодРегистрации КАК ПериодРегистрации,
| ЕСНОсновныеНачисления.ПериодДействия КАК ПериодДействия,
| ВЫБОР
| КОГДА ЕСНОсновныеНачисления.КодДоходаЕСН.ВходитВБазуФОМС
| ИЛИ ЕСНОсновныеНачисления.КодДоходаЕСН.ВходитВБазуФСС
| ИЛИ ЕСНОсновныеНачисления.КодДоходаЕСН.ВходитВБазуПФР
| ТОГДА ЕСНОсновныеНачисления.Результат
| ИНАЧЕ 0
| КОНЕЦ КАК Результат
| ИЗ
| РегистрРасчета.ЕСНОсновныеНачисления КАК ЕСНОсновныеНачисления
| ГДЕ
| ЕСНОсновныеНачисления.ОбособленноеПодразделение = &парамОбособленноеПодразделение
| И ЕСНОсновныеНачисления.ПериодРегистрации В(&парамМассивПериодовРегистрации)
| И (&парамНеОтбиратьФизлиц
| ИЛИ ЕСНОсновныеНачисления.ФизЛицо В (&парамМассивФизлиц))
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ЕСНДополнительныеНачисления.Сотрудник,
| ЕСНДополнительныеНачисления.ФизЛицо,
| ЕСНДополнительныеНачисления.ВидРасчета,
| ЕСНДополнительныеНачисления.КодДоходаЕСН,
| ЕСНДополнительныеНачисления.ОблагаетсяПоДополнительномуТарифу,
| ЕСНДополнительныеНачисления.ОблагаетсяВзносамиНаДоплатуКПенсииШахтерам,
| ЕСНДополнительныеНачисления.ПериодРегистрации,
| ЕСНДополнительныеНачисления.ПериодРегистрации,
| ВЫБОР
| КОГДА ЕСНДополнительныеНачисления.КодДоходаЕСН.ВходитВБазуФОМС
| ИЛИ ЕСНДополнительныеНачисления.КодДоходаЕСН.ВходитВБазуФСС
| ИЛИ ЕСНДополнительныеНачисления.КодДоходаЕСН.ВходитВБазуПФР
| ТОГДА ЕСНДополнительныеНачисления.Результат - ЕСТЬNULL(ВТ_СкидкиКДоходам.Скидка, 0)
| ИНАЧЕ 0
| КОНЕЦ
| ИЗ
| РегистрРасчета.ЕСНДополнительныеНачисления КАК ЕСНДополнительныеНачисления
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СкидкиКДоходам КАК ВТ_СкидкиКДоходам
| ПО ЕСНДополнительныеНачисления.Сотрудник = ВТ_СкидкиКДоходам.Сотрудник
| И ЕСНДополнительныеНачисления.ВидРасчета = ВТ_СкидкиКДоходам.ВидРасчета
| И ЕСНДополнительныеНачисления.КодДоходаЕСН = ВТ_СкидкиКДоходам.КодДоходаЕСН
| И ЕСНДополнительныеНачисления.ОблагаетсяПоДополнительномуТарифу = ВТ_СкидкиКДоходам.ОблагаетсяПоДополнительномуТарифу
| И ЕСНДополнительныеНачисления.ОблагаетсяВзносамиНаДоплатуКПенсииШахтерам = ВТ_СкидкиКДоходам.ОблагаетсяВзносамиНаДоплатуКПенсииШахтерам
| И ЕСНДополнительныеНачисления.ПериодРегистрации = ВТ_СкидкиКДоходам.ПериодРегистрации
| ГДЕ
| ЕСНДополнительныеНачисления.ОбособленноеПодразделение = &парамОбособленноеПодразделение
| И ЕСНДополнительныеНачисления.ПериодРегистрации В(&парамМассивПериодовРегистрации)
| И (&парамНеОтбиратьФизлиц
| ИЛИ ЕСНДополнительныеНачисления.ФизЛицо В (&парамМассивФизлиц))) КАК Доходы
|
|СГРУППИРОВАТЬ ПО
| Доходы.Сотрудник,
| Доходы.ВидРасчета,
| Доходы.ВидДохода,
| Доходы.ПериодРегистрации,
| Доходы.ПериодДействия,
| Доходы.ФизЛицо,
| Доходы.ВидДохода.ВходитВБазуПФР,
| Доходы.ВидДохода.ВходитВБазуФСС,
| Доходы.ВидДохода.ВходитВБазуФОМС,
| Доходы.ОблагаетсяПоДополнительномуТарифу,
| Доходы.ОблагаетсяВзносамиНаДоплатуКПенсииШахтерам
|
|ИНДЕКСИРОВАТЬ ПО
| ПериодРегистрации,
| ПериодДействия,
| Сотрудник,
| ВидРасчета
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Доходы.Сотрудник КАК Сотрудник,
| Доходы.ФизЛицо КАК ФизЛицо,
| Доходы.ВидРасчета КАК ВидРасчета,
| Доходы.ПериодРегистрации КАК ПериодРегистрации,
| Доходы.ПериодДействия КАК ПериодДействия,
| Доходы.СчетДт,
| Доходы.СубконтоДт1,
| Доходы.СубконтоДт2,
| Доходы.СубконтоДт3,
| Доходы.СчетДтНУ,
| Доходы.СубконтоДтНУ1,
| Доходы.СубконтоДтНУ2,
| Доходы.СубконтоДтНУ3,
| Доходы.ОтражениеВУСН,
| СУММА(Доходы.Результат) КАК Результат,
| Доходы.ПодразделениеДт,
| Доходы.ПодразделениеКт,
| Доходы.ПодменятьСчетДтНаРБП,
| ВЫБОР
| КОГДА ВТ_Счета84.Ссылка ЕСТЬ NULL
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК ЭтоСчет84
|ПОМЕСТИТЬ ВТ_БУДоходыПоВР
|ИЗ
| (ВЫБРАТЬ
| БУОсновныеНачисления.Сотрудник КАК Сотрудник,
| БУОсновныеНачисления.ФизЛицо КАК ФизЛицо,
| БУОсновныеНачисления.ВидРасчета КАК ВидРасчета,
| БУОсновныеНачисления.ПериодРегистрации КАК ПериодРегистрации,
| БУОсновныеНачисления.ПериодДействия КАК ПериодДействия,
| БУОсновныеНачисления.СчетДт КАК СчетДт,
| БУОсновныеНачисления.СубконтоДт1 КАК СубконтоДт1,
| БУОсновныеНачисления.СубконтоДт2 КАК СубконтоДт2,
| БУОсновныеНачисления.СубконтоДт3 КАК СубконтоДт3,
| БУОсновныеНачисления.СчетДтНУ КАК СчетДтНУ,
| БУОсновныеНачисления.СубконтоДтНУ1 КАК СубконтоДтНУ1,
| БУОсновныеНачисления.СубконтоДтНУ2 КАК СубконтоДтНУ2,
| БУОсновныеНачисления.СубконтоДтНУ3 КАК СубконтоДтНУ3,
| БУОсновныеНачисления.ОтражениеВУСН КАК ОтражениеВУСН,
| БУОсновныеНачисления.Результат КАК Результат,
| БУОсновныеНачисления.ПодразделениеДт КАК ПодразделениеДт,
| БУОсновныеНачисления.ПодразделениеКт КАК ПодразделениеКт,
| ВЫБОР
| КОГДА &парамФормироватьРБП
| ТОГДА ВЫБОР
| КОГДА (НЕ БУОсновныеНачисления.СчетДт В (&парамСчетаИсключенияРБП))
| И БУОсновныеНачисления.ПериодДействия > БУОсновныеНачисления.ПериодРегистрации
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПодменятьСчетДтНаРБП
| ИЗ
| РегистрРасчета.БУОсновныеНачисления КАК БУОсновныеНачисления
| ГДЕ
| БУОсновныеНачисления.ОбособленноеПодразделение = &парамОбособленноеПодразделение
| И БУОсновныеНачисления.ПериодРегистрации В(&парамМассивПериодовРегистрации)
| И (&парамНеОтбиратьФизлиц
| ИЛИ БУОсновныеНачисления.ФизЛицо В (&парамМассивФизлиц))
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| БУДополнительныеНачисления.Сотрудник,
| БУДополнительныеНачисления.ФизЛицо,
| БУДополнительныеНачисления.ВидРасчета,
| НАЧАЛОПЕРИОДА(БУДополнительныеНачисления.ПериодРегистрации, МЕСЯЦ),
| НАЧАЛОПЕРИОДА(БУДополнительныеНачисления.ПериодРегистрации, МЕСЯЦ),
| БУДополнительныеНачисления.СчетДт,
| БУДополнительныеНачисления.СубконтоДт1,
| БУДополнительныеНачисления.СубконтоДт2,
| БУДополнительныеНачисления.СубконтоДт3,
| БУДополнительныеНачисления.СчетДтНУ,
| БУДополнительныеНачисления.СубконтоДтНУ1,
| БУДополнительныеНачисления.СубконтоДтНУ2,
| БУДополнительныеНачисления.СубконтоДтНУ3,
| БУДополнительныеНачисления.ОтражениеВУСН,
| БУДополнительныеНачисления.Результат,
| БУДополнительныеНачисления.ПодразделениеДт,
| БУДополнительныеНачисления.ПодразделениеКт,
| ЛОЖЬ
| ИЗ
| РегистрРасчета.БУДополнительныеНачисления КАК БУДополнительныеНачисления
| ГДЕ
| БУДополнительныеНачисления.ОбособленноеПодразделение = &парамОбособленноеПодразделение
| И НАЧАЛОПЕРИОДА(БУДополнительныеНачисления.ПериодРегистрации, МЕСЯЦ) В (&парамМассивПериодовРегистрации)
| И (&парамНеОтбиратьФизлиц
| ИЛИ БУДополнительныеНачисления.ФизЛицо В (&парамМассивФизлиц))) КАК Доходы
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Счета84 КАК ВТ_Счета84
| ПО Доходы.СчетДт = ВТ_Счета84.Ссылка
|
|СГРУППИРОВАТЬ ПО
| Доходы.Сотрудник,
| Доходы.ВидРасчета,
| Доходы.ПериодРегистрации,
| Доходы.СчетДт,
| Доходы.СчетДтНУ,
| Доходы.СубконтоДт1,
| Доходы.СубконтоДт2,
| Доходы.СубконтоДт3,
| Доходы.СубконтоДтНУ1,
| Доходы.СубконтоДтНУ2,
| Доходы.СубконтоДтНУ3,
| Доходы.ОтражениеВУСН,
| Доходы.ПериодДействия,
| Доходы.ФизЛицо,
| Доходы.ПодразделениеДт,
| Доходы.ПодразделениеКт,
| Доходы.ПодменятьСчетДтНаРБП,
| ВЫБОР
| КОГДА ВТ_Счета84.Ссылка ЕСТЬ NULL
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ
|
|ИНДЕКСИРОВАТЬ ПО
| ПериодРегистрации,
| ПериодДействия,
| Сотрудник,
| ВидРасчета
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВзносыДоходыПоВР.Сотрудник,
| ВзносыДоходыПоВР.ФизЛицо,
| ВзносыДоходыПоВР.ВидРасчета,
| ВзносыДоходыПоВР.ОблагаетсяПоДополнительномуТарифу,
| ВзносыДоходыПоВР.ОблагаетсяВзносамиНаДоплатуКПенсииШахтерам,
| ВзносыДоходыПоВР.ПериодРегистрации,
| ВзносыДоходыПоВР.ПериодДействия,
| ВзносыДоходыПоВР.Результат,
| БУДоходыПоВР.СчетДт,
| БУДоходыПоВР.СубконтоДт1,
| БУДоходыПоВР.СубконтоДт2,
| БУДоходыПоВР.СубконтоДт3,
| БУДоходыПоВР.СчетДтНУ,
| БУДоходыПоВР.СубконтоДтНУ1,
| БУДоходыПоВР.СубконтоДтНУ2,
| БУДоходыПоВР.СубконтоДтНУ3,
| БУДоходыПоВР.ОтражениеВУСН,
| БУДоходыПоВР.Результат КАК РезультатБУ,
| БУДоходыПоВР.ПодразделениеДт,
| БУДоходыПоВР.ПодразделениеКт,
| БУДоходыПоВР.ПодменятьСчетДтНаРБП,
| ВзносыДоходыПоВР.ВходитВБазуПФР,
| ВзносыДоходыПоВР.ВходитВБазуФСС,
| ВзносыДоходыПоВР.ВходитВБазуФОМС,
| БУДоходыПоВР.ЭтоСчет84
|ПОМЕСТИТЬ ВТ_ВзносыДоходыБУДоходы
|ИЗ
| ВТ_ВзносыДоходыПоВР КАК ВзносыДоходыПоВР
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_БУДоходыПоВР КАК БУДоходыПоВР
| ПО ВзносыДоходыПоВР.Сотрудник = БУДоходыПоВР.Сотрудник
| И ВзносыДоходыПоВР.ВидРасчета = БУДоходыПоВР.ВидРасчета
| И ВзносыДоходыПоВР.ПериодРегистрации = БУДоходыПоВР.ПериодРегистрации
| И ВзносыДоходыПоВР.ПериодДействия = БУДоходыПоВР.ПериодДействия
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| БУДоходыСводПоВР.Сотрудник КАК Сотрудник,
| БУДоходыСводПоВР.ФизЛицо,
| БУДоходыСводПоВР.ВидРасчета КАК ВидРасчета,
| БУДоходыСводПоВР.ПериодРегистрации КАК ПериодРегистрации,
| БУДоходыСводПоВР.ПериодДействия КАК ПериодДействия,
| СУММА(БУДоходыСводПоВР.Результат) КАК Результат
|ПОМЕСТИТЬ ВТ_БУДоходыСводПоВР
|ИЗ
| ВТ_БУДоходыПоВР КАК БУДоходыСводПоВР
|
|СГРУППИРОВАТЬ ПО
| БУДоходыСводПоВР.Сотрудник,
| БУДоходыСводПоВР.ФизЛицо,
| БУДоходыСводПоВР.ВидРасчета,
| БУДоходыСводПоВР.ПериодРегистрации,
| БУДоходыСводПоВР.ПериодДействия
|
|ИНДЕКСИРОВАТЬ ПО
| ПериодРегистрации,
| ПериодДействия,
| Сотрудник,
| ВидРасчета
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| БУДоходыСводПоВР.ФизЛицо,
| ВзносыДоходыБУДоходы.СчетДт,
| ВзносыДоходыБУДоходы.СубконтоДт1,
| ВзносыДоходыБУДоходы.СубконтоДт2,
| ВзносыДоходыБУДоходы.СубконтоДт3,
| ВзносыДоходыБУДоходы.СчетДтНУ,
| ВзносыДоходыБУДоходы.СубконтоДтНУ1,
| ВзносыДоходыБУДоходы.СубконтоДтНУ2,
| ВзносыДоходыБУДоходы.СубконтоДтНУ3,
| ВзносыДоходыБУДоходы.ОтражениеВУСН,
| ВзносыДоходыБУДоходы.ПодразделениеДт,
| ВзносыДоходыБУДоходы.ПодразделениеКт,
| ВзносыДоходыБУДоходы.ПодменятьСчетДтНаРБП,
| ВЫБОР
| КОГДА (НЕ ВзносыДоходыБУДоходы.ВходитВБазуПФР)
| ИЛИ БУДоходыСводПоВР.Результат = 0
| ТОГДА 0
| ИНАЧЕ ВзносыДоходыБУДоходы.Результат * ВзносыДоходыБУДоходы.РезультатБУ / БУДоходыСводПоВР.Результат
| КОНЕЦ КАК БазаПФР,
| ВЫБОР
| КОГДА (НЕ ВзносыДоходыБУДоходы.ВходитВБазуФСС)
| ИЛИ БУДоходыСводПоВР.Результат = 0
| ТОГДА 0
| ИНАЧЕ ВзносыДоходыБУДоходы.Результат * ВзносыДоходыБУДоходы.РезультатБУ / БУДоходыСводПоВР.Результат
| КОНЕЦ КАК БазаФСС,
| ВЫБОР
| КОГДА (НЕ ВзносыДоходыБУДоходы.ВходитВБазуФОМС)
| ИЛИ БУДоходыСводПоВР.Результат = 0
| ТОГДА 0
| ИНАЧЕ ВзносыДоходыБУДоходы.Результат * ВзносыДоходыБУДоходы.РезультатБУ / БУДоходыСводПоВР.Результат
| КОНЕЦ КАК БазаФОМС,
| ВЫБОР
| КОГДА (НЕ ВзносыДоходыБУДоходы.ОблагаетсяПоДополнительномуТарифу)
| ИЛИ (НЕ ВзносыДоходыБУДоходы.ВходитВБазуПФР)
| ИЛИ БУДоходыСводПоВР.Результат = 0
| ТОГДА 0
| ИНАЧЕ ВзносыДоходыБУДоходы.Результат * ВзносыДоходыБУДоходы.РезультатБУ / БУДоходыСводПоВР.Результат
| КОНЕЦ КАК БазаДопТариф,
| ВЫБОР
| КОГДА (НЕ ВзносыДоходыБУДоходы.ОблагаетсяВзносамиНаДоплатуКПенсииШахтерам)
| ИЛИ (НЕ ВзносыДоходыБУДоходы.ВходитВБазуПФР)
| ИЛИ БУДоходыСводПоВР.Результат = 0
| ТОГДА 0
| ИНАЧЕ ВзносыДоходыБУДоходы.Результат * ВзносыДоходыБУДоходы.РезультатБУ / БУДоходыСводПоВР.Результат
| КОНЕЦ КАК БазаДопТарифШахтеры,
| ВЫБОР
| КОГДА (НЕ ВзносыДоходыБУДоходы.ВходитВБазуФСС)
| ИЛИ БУДоходыСводПоВР.Результат = 0
| ТОГДА 0
| ИНАЧЕ ВзносыДоходыБУДоходы.Результат * ВзносыДоходыБУДоходы.РезультатБУ / БУДоходыСводПоВР.Результат
| КОНЕЦ КАК БазаФСС_НС,
| ВзносыДоходыБУДоходы.ПериодРегистрации,
| ВзносыДоходыБУДоходы.ПериодДействия,
| ВзносыДоходыБУДоходы.ЭтоСчет84
|ПОМЕСТИТЬ ВТ_Коэффициенты
|ИЗ
| ВТ_ВзносыДоходыБУДоходы КАК ВзносыДоходыБУДоходы
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_БУДоходыСводПоВР КАК БУДоходыСводПоВР
| ПО ВзносыДоходыБУДоходы.Сотрудник = БУДоходыСводПоВР.Сотрудник
| И ВзносыДоходыБУДоходы.ПериодРегистрации = БУДоходыСводПоВР.ПериодРегистрации
| И ВзносыДоходыБУДоходы.ПериодДействия = БУДоходыСводПоВР.ПериодДействия
| И ВзносыДоходыБУДоходы.ВидРасчета = БУДоходыСводПоВР.ВидРасчета";
 
  Планируется исправить в релизе: 2.5.36  
 
  Код ошибки: 10080959  
  Дата публикации: 8 июня 2011 г.  
  Описание: При упрощенном учете взаиморасчетов:
- в документе "Депонирование организаций" возможно проведение.
- в документе "Зарплата к выплате организаций" нет печати карточек депонентов
 
  Планируется исправить в релизе: 2.5.36  
 
  Код ошибки: 10082276  
  Дата публикации: 8 июня 2011 г.  
  Описание: При упрощенном учете взаиморасчетов, если выплата и аванса, и зарплаты происходит позже исчисления налога, то удержанная сумма задваивается.  
  Способ воспроизведения: - начислить заработную плату за январь 31.01.11
- выплатить плановый аванс за январь(!) 04.02.11
- выплатить зарплату за январь 25.02.11
 
  Способ исправления: В общем модуле ЗарплатаКВыплатеОрганизацийПереопределяемый, в поцедуре ПровестиВзаиморасчеты,
строку
СтруктураДокумента.Вставить("ДатаНДФЛ", КонецМесяца(Документ.ПериодРегистрации));
заменить на
СтруктураДокумента.Вставить("ДатаНДФЛ", МАКС(Документ.Дата, КонецМесяца(Документ.ПериодРегистрации)));
 
  Способ обхода: Выплачивать аванс в течение месяца, до расчета заработной платы за этот месяц.
Проводить документ начисления зарплаты работникам организации после выплаты аванса за этот месяц.
 
  Планируется исправить в релизе: 2.5.36  
 
  Код ошибки: 10080407  
  Дата публикации: 8 июня 2011 г.  
  Описание: При автозаполнении документа "Начисление зарплаты работникам" возникает ошибка, если в плановых начислениях за текущий период есть временное изменение основного начисления.  
  Планируется исправить в релизе: 2.5.36  
 
  Код ошибки: 10049777  
  Дата публикации: 8 июня 2011 г.  
  Описание: Не заполняется поле "Подразделение" на закладке "Удержания" документа "Начисления зарплаты работникам", если сотрудника вводить с клавиатуры по фамилии.  
  Планируется исправить в релизе: 2.5.36  
 
  Код ошибки: 10082370  
  Дата публикации: 8 июня 2011 г.  
  Описание: Если в документе "Начисление по б/л" по заболеванию самого сотрудника начать оплату со второго или третьего дня болезни, то такой документ необоснованно откажется проводиться.  
  Способ исправления: Заменить процедура ПроверитьНепрерывностьЗаписейНачислений()
модуля документа НачислениеПоБольничномуЛисту
следующим фрагментом:
Процедура ПроверитьНепрерывностьЗаписейНачислений(Отказ, Заголовок)

Если Начисления.Количество() = 0 Тогда
Возврат;
КонецЕсли;

// создадим массив начислений, по которым будем проверять непрерывность записей
МассивНачислений = Новый Массив;
МассивНачислений.Добавить(?(ПричинаНетрудоспособности = Перечисления.ПричиныНетрудоспособности.ПоБеременностиИРодам, ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОтсутствиеПоБолезниПоБеременности, ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОтсутствиеПоБолезни));
МассивНачислений.Добавить(ВидРасчета);
МассивНачислений.Добавить(ВидРасчетаЗаСчетРаботодателя);

ТНачислений = Начисления.Выгрузить();
ТНачислений.Сортировать("Сотрудник, ДатаНачала");

ПредыдущийСотрудник = Справочники.СотрудникиОрганизаций.ПустаяСсылка();
ПредыдущаяДатаОкончания = '00010101';
СтрокаНеПервая = Ложь;
Для Каждого Строка ИЗ ТНачислений Цикл

// Пропустим сторно записи и записи не из массива начислений
Если Строка.Сторно ИЛИ МассивНачислений.Найти(Строка.ВидРасчета) = Неопределено Тогда
Продолжить;
КонецЕсли;

Если ПредыдущийСотрудник <> Строка.Сотрудник Тогда
ПредыдущийСотрудник = Строка.Сотрудник;
СтрокаНеПервая = Ложь;
КонецЕсли;

// если встретили не первую строку начислений
Если СтрокаНеПервая Тогда
// строка не первая
Если Строка.ДатаНачала <> ПредыдущаяДатаОкончания + мДлинаСуток Тогда
СтрокаНачалаСообщенияОбОшибке = "В строке номер """+ СокрЛП(Строка.НомерСтроки) +
""" табл. части ""Начисления"": ";
ОбщегоНазначения.ВывестиИнформациюОбОшибке(СтрокаНачалаСообщенияОбОшибке + "нарушено требование непрерывности записей начислений!", Отказ, Заголовок);
КонецЕсли;
Иначе
СтрокаНеПервая = Истина;
КонецЕсли;
ПредыдущаяДатаОкончания = Строка.ДатаОкончания;

КонецЦикла;

Если ДоплачиватьДоПолногоСреднегоЗаработка Тогда
ТНачислений = Начисления.Выгрузить(Новый Структура("ВидРасчета, Сторно",ВидРасчетаДоплаты, Ложь));
ТНачислений.Сортировать("Сотрудник, ДатаНачала");
ПредыдущийСотрудник = Справочники.СотрудникиОрганизаций.ПустаяСсылка();
ПредыдущаяДатаОкончания = '00010101';
СтрокаНеПервая = Ложь;
Для Каждого Строка ИЗ ТНачислений Цикл

Если ПредыдущийСотрудник <> Строка.Сотрудник Тогда
ПредыдущийСотрудник = Строка.Сотрудник;
СтрокаНеПервая = Ложь;
КонецЕсли;

// если встретили не первую строку начислений
Если СтрокаНеПервая Тогда
// строка не первая
Если Строка.ДатаНачала <> ПредыдущаяДатаОкончания + мДлинаСуток Тогда
СтрокаНачалаСообщенияОбОшибке = "В строке номер """+ СокрЛП(Строка.НомерСтроки) +
""" табл. части ""Начисления"": ";
ОбщегоНазначения.ВывестиИнформациюОбОшибке(СтрокаНачалаСообщенияОбОшибке + "нарушено требование непрерывности записей начислений!", Отказ, Заголовок);
КонецЕсли;
Иначе
СтрокаНеПервая = Истина;
КонецЕсли;
ПредыдущаяДатаОкончания = Строка.ДатаОкончания;

КонецЦикла;
КонецЕсли;

КонецПроцедуры // ПроверитьНепрерывностьЗаписейНачислений()
 
  Планируется исправить в релизе: 2.5.36  
 
  Код ошибки: 10082326  
  Дата публикации: 8 июня 2011 г.  
  Описание: После редактирования номера пачки АДВ-6-2 из него не отбрасываются пробелы, если они там присутствуют.  
  Планируется исправить в релизе: 2.5.36  
 
  Код ошибки: 10081019  
  Дата публикации: 8 июня 2011 г.  
  Описание: При создании документа "Прием на работу в организацию" из формы списка справочника "Сотрудники", таблица "Начисления" заполняется некорректно.  
  Планируется исправить в релизе: 2.5.36  
 
  Код ошибки: 10080081  
  Дата публикации: 8 июня 2011 г.  
  Описание: При заполнении документа "Регистрация разовых начислений" для сотрудников, принятых в текущем месяце, неверно заполняется колонка "Дата начала события".  
  Планируется исправить в релизе: 2.5.36  
 
  Код ошибки: 10074238  
  Дата публикации: 8 июня 2011 г.  
  Описание: При изменении даты начала в строке документа "Регистрация разовых начислений" введенное вручную значение показателя "обнуляется".  
  Планируется исправить в релизе: 2.5.36  
 
  Код ошибки: 10080318  
  Дата публикации: 8 июня 2011 г.  
  Описание: При заполнении документа "Регистрация разовых удержаний" в список попадает несколько одинаковых строк, если для одного физического лица в ИБ существует несколько сотрудников.  
  Планируется исправить в релизе: 2.5.36  
 
  Код ошибки: 10082008  
  Дата публикации: 20 июня 2011 г.  
  Описание: В бухгалтерских проводках, отражающих начисления по сдельным нарядам, не заполняется вид расходов по ст. 255 НК РФ.  
  Планируется исправить в релизе: 2.5.36  
 
  Код ошибки: 10078247  
  Дата публикации: 31 мая 2011 г.  
  Описание: При автоматическом заполнении остатков отпусков прошлых лет, у элементов справочника остатков не заполняется наименование.  
  Планируется исправить в релизе: 2.5.36  
 
  Код ошибки: 10081495  
  Дата публикации: 20 июня 2011 г.  
  Описание: При повторном открытии формы настройки параметров учета, в списке размеров государственных пособий дублируются строки.  
  Планируется исправить в релизе: 2.5.36  
 
  Код ошибки: 10079514  
  Дата публикации: 20 апреля 2011 г.  
  Описание: Отчет "Организационная структура" выводит подразделения, помеченные на удаление.  
  Планируется исправить в релизе: 2.5.36  
 
  Код ошибки: 10082510  
  Дата публикации: 20 июня 2011 г.  
  Описание: Отчет "Свод начисленной зарплаты" не показывает депонированные суммы при упрощенном учете взаиморасчетов.  
  Планируется исправить в релизе: 2.5.36  
 
  Код ошибки: 10075803  
  Дата публикации: 8 июня 2011 г.  
  Описание: При выплате зарплаты (окончательный расчет) в течение расчетного периода (например, в последний день месяца), если выплачиваемая сумма не совпадает с положенной к выплате (недоплата или переплата), то в отчете Т-51 возникает необоснованный долг за работником в размере фактически выплаченной суммы.  
  Способ воспроизведения: Упрощенный учет взаиморасчетов, в разрезе месяцев.
Начисляем в декабре 33 000
Создаем док. Зарплата к выплате организаций с датой 31 декабря (время не важно).
Заполняем, правим "к выплате" на 30 000, проводим.
Формируем Т-51 за декабрь.
В задолженности за работником 30 000.
 
  Планируется исправить в релизе: 2.5.36  
 
  Код ошибки: 10081063  
  Дата публикации: 31 мая 2011 г.  
  Описание: Если для сотрудника введена оплата выходных дней документом "Оплата праздничных и выходных дней", но не введен документ "Табель учета рабочего времени", то в отчете "Унифицированная форма Т-13" отработанный выходной день ошибочно не отмечается.  
  Способ исправления: Заменить процедуру СформироватьМакет() модуля отчета УнифицированнаяФормаТ13 следующим фрагментом:
Процедура СформироватьМакет(ДокументРезультат, Режим, НачалоПериода, КонецПериода, СписокРаботников, ТаблицаРаботниковОрганизации, Ответственный, ГруппироватьПодразделения, ВозвращаемоеСообщениеОбОшибке)

Если Не ПроцедурыУправленияПерсоналомПереопределяемый.РегламентированныйКалендарьЗаполнен(НачалоПериода, КонецПериода, Истина) Тогда
Если Режим = "Табель" Тогда
Возврат;
КонецЕсли;
КонецЕсли;

ДокументРезультат.Очистить();

ЗапросТабель = Новый Запрос();

ЗапросТабель.УстановитьПараметр("НачалоПериода", НачалоПериода);
ЗапросТабель.УстановитьПараметр("КонецПериода", КонецПериода);
ЗапросТабель.УстановитьПараметр("ТаблицаРаботниковОрганизации", ТаблицаРаботниковОрганизации);

Если ТипЗнч(Ответственный) = Тип("СправочникСсылка.Пользователи") тогда
ЗапросТабель.УстановитьПараметр("Ответственный", Ответственный.ФизЛицо);
Иначе
ЗапросТабель.УстановитьПараметр("Ответственный", Справочники.Пользователи.ПустаяСсылка());
КонецЕсли;

// условия на измерения регистра
УсловиеПоРаботникам = "";
УсловиеНаОрганизации = "";

ЗапросТабель.УстановитьПараметр("РаботникиОрганизации", СписокРаботников);
УсловиеПоРаботникам = " Сотрудник В (&РаботникиОрганизации)";

ОтборОрганизации = ложь;
Организация = Неопределено;
ВидСравненияОрганизации = "";

МассивОтборов = ТиповыеОтчеты.ПолучитьЭлементыОтбора(КомпоновщикНастроек);
Для каждого ЭлементОтбора из МассивОтборов Цикл
Если ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Организация") и ЭлементОтбора.Использование тогда
Если ТипЗнч(ЭлементОтбора.ПравоеЗначение) <> Тип("ПолеКомпоновкиДанных") тогда
Если ОтборОрганизации и Организация <> Неопределено тогда
ОтборОрганизации = ложь;
Организация = Неопределено;
ВидСравненияОрганизации = "";
Иначе
ОтборОрганизации = истина;
Организация = ЭлементОтбора.ПравоеЗначение;
Если ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно Тогда
ВидСравненияОрганизации = ВидСравнения.Равно;
ИначеЕсли ВидСравненияОрганизации = ВидСравненияКомпоновкиДанных.НеРавно Тогда
ВидСравненияОрганизации = ВидСравнения.НеРавно;
ИначеЕсли ВидСравненияОрганизации = ВидСравненияКомпоновкиДанных.ВСписке Тогда
ВидСравненияОрганизации = ВидСравнения.ВСписке;
ИначеЕсли ВидСравненияОрганизации = ВидСравненияКомпоновкиДанных.НеВСписке Тогда
ВидСравненияОрганизации = ВидСравнения.НеВСписке;
ИначеЕсли ВидСравненияОрганизации = ВидСравненияКомпоновкиДанных.ВИерархии Тогда
ВидСравненияОрганизации = ВидСравнения.ВИерархии;
ИначеЕсли ВидСравненияОрганизации = ВидСравненияКомпоновкиДанных.НеВИерархии Тогда
ВидСравненияОрганизации = ВидСравнения.НеВИерархии;
ИначеЕсли ВидСравненияОрганизации = ВидСравненияКомпоновкиДанных.НеВСпискеПоИерархии Тогда
ВидСравненияОрганизации = ВидСравнения.НеВСпискеПоИерархии;
ИначеЕсли ВидСравненияОрганизации = ВидСравненияКомпоновкиДанных.ВСпискеПоИерархии Тогда
ВидСравненияОрганизации = ВидСравнения.ВСпискеПоИерархии;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;

Если ОтборОрганизации Тогда
Если ТипЗнч(Организация) = Тип("СправочникСсылка.Организации") Тогда
ЗапросТабель.УстановитьПараметр("Организация", ОбщегоНазначения.ГоловнаяОрганизация(Организация));
Иначе
Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| ВЫБОР
| КОГДА Организации.ГоловнаяОрганизация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
| ТОГДА Организации.Ссылка
| ИНАЧЕ Организации.ГоловнаяОрганизация
| КОНЕЦ КАК Ссылка
|ИЗ
| Справочник.Организации КАК Организации
|ГДЕ
| Организации.Ссылка В(&Организация)");

Запрос.УстановитьПараметр("Организация", Организация);
ЗапросТабель.УстановитьПараметр("Организация", Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
КонецЕсли;

Если ВидСравненияОрганизации = ВидСравнения.Равно Тогда
ВидСравненияДляОрганизации = "="
ИначеЕсли ВидСравненияОрганизации = ВидСравнения.НеРавно Тогда
ВидСравненияДляОрганизации = "<>"
ИначеЕсли ВидСравненияОрганизации = ВидСравнения.ВСписке Тогда
ВидСравненияДляОрганизации = "В"
ИначеЕсли ВидСравненияОрганизации = ВидСравнения.НеВСписке Тогда
ВидСравненияДляОрганизации = "НЕ В"
КонецЕсли;

Если ВидСравненияОрганизации = ВидСравнения.Равно ИЛИ ВидСравненияОрганизации = ВидСравнения.НеРавно Тогда
УсловиеНаОрганизации = " Организация " + ВидСравненияДляОрганизации + " &Организация";
Иначе
УсловиеНаОрганизации = " Организация " + ВидСравненияДляОрганизации + " (&Организация)";
КонецЕсли;
КонецЕсли;

// условия на ресурсы регистра
УсловиеВЗапрос = "";
Если ОтборОрганизации Тогда
ЗапросТабель.УстановитьПараметр("ОбособленноеПодразделение", Организация);
Если ВидСравненияОрганизации = ВидСравнения.Равно Тогда
ВидСравненияДляОрганизации = "="
ИначеЕсли ВидСравненияОрганизации = ВидСравнения.НеРавно Тогда
ВидСравненияДляОрганизации = "<>"
ИначеЕсли ВидСравненияОрганизации = ВидСравнения.ВСписке Тогда
ВидСравненияДляОрганизации = "В"
ИначеЕсли ВидСравненияОрганизации = ВидСравнения.НеВСписке Тогда
ВидСравненияДляОрганизации = "НЕ В"
КонецЕсли;

Если ВидСравненияОрганизации = ВидСравнения.Равно ИЛИ ВидСравненияОрганизации = ВидСравнения.НеРавно Тогда
УсловиеНаОбособленноеПодразделение = " %Таблица%.Организация " + ВидСравненияДляОрганизации + " &ОбособленноеПодразделение";
Иначе
УсловиеНаОбособленноеПодразделение = " %Таблица%.Организация " + ВидСравненияДляОрганизации + " (&ОбособленноеПодразделение)";
КонецЕсли;
УсловиеВЗапрос = УсловиеВЗапрос + " И " + УсловиеНаОбособленноеПодразделение;
КонецЕсли;

ОтборПодразделения = ложь;
Подразделение = Неопределено;
ВидСравненияПодразделения = "";

МассивОтборов = ТиповыеОтчеты.ПолучитьЭлементыОтбора(КомпоновщикНастроек);
Для каждого ЭлементОтбора из МассивОтборов Цикл
Если ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПодразделениеОрганизации") и ЭлементОтбора.Использование тогда
Если ТипЗнч(ЭлементОтбора.ПравоеЗначение) <> Тип("ПолеКомпоновкиДанных") тогда
Если ОтборПодразделения и Подразделение <> Неопределено тогда
ОтборПодразделения = ложь;
Подразделение = Неопределено;
ВидСравненияПодразделения = "";
Иначе
ОтборПодразделения = истина;
Подразделение = ЭлементОтбора.ПравоеЗначение;
Если ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно Тогда
ВидСравненияПодразделения = ВидСравнения.Равно;
ИначеЕсли ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно Тогда
ВидСравненияПодразделения = ВидСравнения.НеРавно;
ИначеЕсли ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке Тогда
ВидСравненияПодразделения = ВидСравнения.ВСписке;
ИначеЕсли ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке Тогда
ВидСравненияПодразделения = ВидСравнения.НеВСписке;
ИначеЕсли ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии Тогда
ВидСравненияПодразделения = ВидСравнения.ВИерархии;
ИначеЕсли ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВИерархии Тогда
ВидСравненияПодразделения = ВидСравнения.НеВИерархии;
ИначеЕсли ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСпискеПоИерархии Тогда
ВидСравненияПодразделения = ВидСравнения.ВСпискеПоИерархии;
ИначеЕсли ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСпискеПоИерархии Тогда
ВидСравненияПодразделения = ВидСравнения.НеВСпискеПоИерархии;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;

УсловиеПодразделение = "";
Если ОтборПодразделения Тогда
ЗапросТабель.УстановитьПараметр("ПодразделениеОрганизации", Подразделение);

Если ВидСравненияПодразделения = ВидСравнения.Равно Тогда
ВидСравненияДляПодразделения = "="
ИначеЕсли ВидСравненияПодразделения = ВидСравнения.НеРавно Тогда
ВидСравненияДляПодразделения = "<>"
ИначеЕсли ВидСравненияПодразделения = ВидСравнения.ВСписке Тогда
ВидСравненияДляПодразделения = "В"
ИначеЕсли ВидСравненияПодразделения = ВидСравнения.НеВСписке Тогда
ВидСравненияДляПодразделения = "НЕ В"
ИначеЕсли ВидСравненияПодразделения = ВидСравнения.ВСпискеПоИерархии ИЛИ
ВидСравненияПодразделения = ВидСравнения.ВИерархии Тогда
ВидСравненияДляПодразделения = "В ИЕРАРХИИ"
ИначеЕсли ВидСравненияПодразделения = ВидСравнения.НеВСпискеПоИерархии ИЛИ
ВидСравненияПодразделения = ВидСравнения.НеВИерархии Тогда
ВидСравненияДляПодразделения = "НЕ В ИЕРАРХИИ"
КонецЕсли;

Если ВидСравненияПодразделения = ВидСравнения.Равно ИЛИ ВидСравненияПодразделения = ВидСравнения.НеРавно Тогда
УсловиеПодразделение = " %Таблица%.ПодразделениеОрганизации " + ВидСравненияДляПодразделения + " &ПодразделениеОрганизации";
Иначе
УсловиеПодразделение = " %Таблица%.ПодразделениеОрганизации " + ВидСравненияДляПодразделения + " (&ПодразделениеОрганизации)";
КонецЕсли;

УсловиеВЗапрос = УсловиеВЗапрос + " И " + УсловиеПодразделение;
КонецЕсли;

Если ГруппироватьПодразделения Тогда
ПорядокГруппировки = " ПодразделениеОрганизации, ";
Иначе
ПорядокГруппировки = " ";
КонецЕсли;

Макет = ПолучитьМакет("Т13");

ОбластьДанныхШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьДанныхКолонтитул = Макет.ПолучитьОбласть("Колонтитул");
ОбластьДанныхСтрока = Макет.ПолучитьОбласть("Строка");
ОбластьДанныхПодвал = Макет.ПолучитьОбласть("Подвал");

//ОбластьДанныхШапка.Параметры.ДатаНач = НачалоПериода;
//ОбластьДанныхШапка.Параметры.ДатаКон = КонецПериода;

Если ОтборПодразделения и НЕ ГруппироватьПодразделения и ТипЗнч(Подразделение) <> Тип("СписокЗначений") тогда
ЗапросТабель.УстановитьПараметр("Подразделение", Подразделение);
КонецЕсли;
ПараметровВстроке = ОбластьДанныхСтрока.Параметры.Количество();
ЗапросТабель.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;

// Запрос дат периода
Если РабочаяДата < НачалоПериода Тогда
// формируем пустую таблицу
ВозвращаемоеСообщениеОбОшибке = "Отчет можно формировать только за текущий или предыдущий периоды!";
Возврат;
Иначе
ТекстЗапросаДат =
"ВЫБРАТЬ
| ДАТАВРЕМЯ(" + Формат(Год(НачалоПериода), "ЧГ=4") + ", " + Месяц(НачалоПериода) + " , " + День(НачалоПериода) + ") КАК ДатаТабеля,
| ДАТАВРЕМЯ(" + Формат(Год(НачалоПериода), "ЧГ=4") + ", " + Месяц(НачалоПериода) + " , 1) КАК ПериодРегистрации
|ПОМЕСТИТЬ ВТДатыТабеля
| ";
ДатаВОтчете = НачалоПериода + 86400;
Пока ДатаВОтчете <= НачалоДня(КонецПериода) Цикл
НомерДня = День(ДатаВОтчете);
НомерМесяца = Месяц(ДатаВОтчете);
НомерГода = Год(ДатаВОтчете);
ТекстЗапросаДат = ТекстЗапросаДат +
"ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ
| ДАТАВРЕМЯ(" + Формат(НомерГода, "ЧГ=4")+ ", " + НомерМесяца + " ," + НомерДня + "),
| ДАТАВРЕМЯ(" + Формат(НомерГода, "ЧГ=4") + ", " + НомерМесяца + " , 1) КАК ПериодРегистрации
| ";
ДатаВОтчете = ДатаВОтчете + 86400;
КонецЦикла;
КонецЕсли;


//ЗапросТабель.Текст =
//"ВЫБРАТЬ РАЗРЕШЕННЫЕ
//| РаботникиОрганизаций.Сотрудник,
//| РаботникиОрганизаций.Организация КАК Организация,
//| &Подразделение КАК ПодразделениеОрганизации,
//| РаботникиОрганизаций.Должность КАК Должность,
//| РаботникиОрганизаций.ГрафикРаботы КАК ГрафикРаботы,
//| РаботникиОрганизаций.ПериодРегистрации КАК ПериодРегистрации,
//| РаботникиОрганизаций.ДатаКалендаря КАК ДатаСр
//|ПОМЕСТИТЬ ВТТаблицаРаботниковОрганизации
//|ИЗ
//| &ТаблицаРаботниковОрганизации КАК РаботникиОрганизаций
//|ИНДЕКСИРОВАТЬ ПО
//| РаботникиОрганизаций.Сотрудник";
//ЗапросТабель.Выполнить();

Если Режим = "Табель" Тогда

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

ТекстШаблона = "
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДАТАВРЕМЯ(2010, 1, 1) КАК ДатаТабеля,
| ДАТАВРЕМЯ(2010, 1, 1) КАК ПериодРегистрации
|ПОМЕСТИТЬ ВТДатыТабеля";

ЗапросТабель.Текст = СтрЗаменить(ЗапросТабель.Текст, ТекстШаблона, ТекстЗапросаДат);

Если НЕ (ОтборПодразделения и НЕ ГруппироватьПодразделения и ТипЗнч(Подразделение) <> Тип("СписокЗначений")) тогда
ЗапросТабель.Текст = СтрЗаменить(ЗапросТабель.Текст, "ВЫРАЗИТЬ(&Подразделение КАК Справочник.ПодразделенияОрганизаций) КАК ПодразделениеОрганизации", "РаботникиОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации")
КонецЕсли;

Если ГруппироватьПодразделения ИЛИ ОтборПодразделения Тогда
ЗапросТабель.Текст = СтрЗаменить(ЗапросТабель.Текст, "ПО НеотфильтрованноеВремя.Организация = Руководитель.СтруктурнаяЕдиница", "ПО НеотфильтрованноеВремя.ПодразделениеОрганизации = Руководитель.СтруктурнаяЕдиница");
ЗапросТабель.Текст = СтрЗаменить(ЗапросТабель.Текст, "ПО НеотфильтрованноеВремя.Организация = Руководитель.СтруктурнаяЕдиница", "ПО НеотфильтрованноеВремя.ПодразделениеОрганизации = РуководительКадровойСлужбыПодразделения.СтруктурнаяЕдиница");
КонецЕсли;

РезультатЗапроса = ЗапросТабель.Выполнить();
ВыборкаПоРаботнику = РезультатЗапроса.Выбрать();

СоответствиеЦелодневныхНевыходов = Новый Соответствие;
СоответствиеЦелодневныхНевыходовЧасы = Новый Соответствие;
ВидыВремениЗаДень = Новый Соответствие;
ПредыдущаяДата = 0;
// Выводим информационное сообщение, если табель формируется "вперед"
Если РабочаяДата < НачалоДня(КонецПериода) Тогда
ОбработкаКомментариев = глЗначениеПеременной("глОбработкаСообщений");
ОбработкаКомментариев.УдалитьСообщения();
ОбработкаКомментариев.ДобавитьСообщение("Формирование табеля за неоконченный месяц", Перечисления.ВидыСообщений.Раздел);
ОбработкаКомментариев.ДобавитьСообщение("При формировании табеля за будущий или текущий месяц, выводятся данные только до рабочей даты (" + Формат(РабочаяДата, "ДЛФ=ДД") + "). Изменить рабочую дату можно в меню ""Сервис/Параметры.""", Перечисления.ВидыСообщений.Информация);
ОбработкаКомментариев.ПоказатьСообщения();
КонецЕсли;

Если ГруппироватьПодразделения Тогда

Пока ВыборкаПоРаботнику.СледующийПоЗначениюПоля("ПериодРегистрации") Цикл

ОбластьДанныхШапка.Параметры.ДатаНач = Макс(НачалоМесяца(ВыборкаПоРаботнику.ПериодРегистрации), НачалоПериода);
ОбластьДанныхШапка.Параметры.ДатаКон = Мин(КонецМесяца(ВыборкаПоРаботнику.ПериодРегистрации), КонецПериода);

Пока ВыборкаПоРаботнику.СледующийПоЗначениюПоля("Организация") Цикл

Пока ВыборкаПоРаботнику.СледующийПоЗначениюПоля("ПодразделениеОрганизации") Цикл
Если ДокументРезультат.ВысотаТаблицы > 0 Тогда
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;

НомерПП = 0;
ОбластьДанныхШапка.Параметры.Заполнить(ВыборкаПоРаботнику);
ОбластьДанныхШапка.Параметры.ИмяОрганизации = СОКРЛП(ВыборкаПоРаботнику.ИмяОрганизации);
ОбластьДанныхПодвал.Параметры.Заполнить(ВыборкаПоРаботнику);
ОбластьДанныхПодвал.Параметры.ФИООтветственного = УправлениеОтчетамиЗК.ФамилияИнициалыОтветсвенногоЛица(ВыборкаПоРаботнику.ФизЛицоОтветственного, ВыборкаПоРаботнику.ФамилияОтветственного, ВыборкаПоРаботнику.ИмяОтветственного, ВыборкаПоРаботнику.ОтчествоОтветственного);
ОбластьДанныхПодвал.Параметры.ФИОРуководителя = УправлениеОтчетамиЗК.ФамилияИнициалыОтветсвенногоЛица(ВыборкаПоРаботнику.ФизЛицоРуководителя, ВыборкаПоРаботнику.ФамилияРуководителя, ВыборкаПоРаботнику.ИмяРуководителя, ВыборкаПоРаботнику.ОтчествоРуководителя);
ОбластьДанныхПодвал.Параметры.ФИОКадровика = УправлениеОтчетамиЗК.ФамилияИнициалыОтветсвенногоЛица(ВыборкаПоРаботнику.ФизЛицоКадровика, ВыборкаПоРаботнику.ФамилияКадровика, ВыборкаПоРаботнику.ИмяКадровика, ВыборкаПоРаботнику.ОтчествоКадровика);

ДокументРезультат.Вывести(ОбластьДанныхШапка);
ДокументРезультат.Вывести(ОбластьДанныхКолонтитул);
Пока ВыборкаПоРаботнику.СледующийПоЗначениюПоля("Должность") Цикл
Пока ВыборкаПоРаботнику.СледующийПоЗначениюПоля("СотрудникНаименование") Цикл
Пока ВыборкаПоРаботнику.СледующийПоЗначениюПоля("Сотрудник") Цикл

НомерПП = НомерПП + 1;

ДниПерваяПоловина = 0;
ЧасыПерваяПоловина = 0;
ДниВтораяПоловина = 0;
ЧасыВтораяПоловина = 0;

ПредыдущаяДата = Дата(1,1,1);

Для Сч = 1 По ПараметровВстроке Цикл
ОбластьДанныхСтрока.Параметры.Установить(Сч - 1,"");
КонецЦикла;
СоответствиеЦелодневныхНевыходов.Очистить();
СоответствиеЦелодневныхНевыходовЧасы.Очистить();

ОбластьДанныхСтрока.Параметры.НомерПП = НомерПП;
ОбластьДанныхСтрока.Параметры.Работник = СокрП(ВыборкаПоРаботнику.СотрудникНаименование) + ", " + Символы.ПС + ВыборкаПоРаботнику.Должность;
ОбластьДанныхСтрока.Параметры.ФизЛицо = ВыборкаПоРаботнику.Сотрудник;
ОбластьДанныхСтрока.Параметры.Заполнить(ВыборкаПоРаботнику);

Пока ВыборкаПоРаботнику.СледующийПоЗначениюПоля("ДатаТабеля") Цикл

СимволДня = "";
ОтработаноЧасовЗаДень = 0;
ОтработаноЧасовЗаДеньСтр = "";
НомерДня = Строка(День(ВыборкаПоРаботнику.ДатаТабеля));
ПерваяПоловина = День(ВыборкаПоРаботнику.ДатаТабеля) <= 15;
УчитыватьВыходнойДень = Истина;

Пока ВыборкаПоРаботнику.Следующий() Цикл

Если НЕ ПредыдущаяДата = ВыборкаПоРаботнику.ДатаТабеля Тогда
// Очищаем соответствие
ВидыВремениЗаДень.Очистить();
КонецЕсли;

Если ВыборкаПоРаботнику.ВидВремени = ВыборкаПоРаботнику.ВнутрисменныеОтклоненияВидИспользованияРабочегоВремени
И ВыборкаПоРаботнику.РабочееВремя Тогда
ОтработаноЧасовЗаДень = ОтработаноЧасовЗаДень + ВыборкаПоРаботнику.ВнутрисменныеОтклоненияЧасов;
Продолжить;
КонецЕсли;

Если ВыборкаПоРаботнику.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.Праздники Тогда
УчитыватьВыходнойДень = Ложь;
ИначеЕсли ВыборкаПоРаботнику.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.ВыходныеДни И НЕ УчитыватьВыходнойДень Тогда
Продолжить;
КонецЕсли;
Если ВидыВремениЗаДень.Получить(ВыборкаПоРаботнику.ВидВремени) = Неопределено Тогда
ОсновнойВидВремениПолучен = Ложь;
БуквенныйКод = ВыборкаПоРаботнику.БуквенныйКод;
СимволДня = СимволДня + "/" + БуквенныйКод;
Иначе
ОсновнойВидВремениПолучен = Истина;
КонецЕсли;
// Обработка внутрисменных отклонений
Если ВыборкаПоРаботнику.ВнутрисменныеОтклоненияВидИспользованияРабочегоВремени <> NULL
И ВыборкаПоРаботнику.РабочееВремя
И НЕ(ВыборкаПоРаботнику.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.РаботаВечерниеЧасы
ИЛИ ВыборкаПоРаботнику.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.РаботаНочныеЧасы) Тогда

ОтработаноЧасовЗаДень = ОтработаноЧасовЗаДень + ВыборкаПоРаботнику.Часов;

ЧасыВходятВЯвку = (ВыборкаПоРаботнику.ВнутрисменныеОтклоненияВидИспользованияРабочегоВремени <> Справочники.КлассификаторИспользованияРабочегоВремени.Сверхурочные)
И (ВыборкаПоРаботнику.ВнутрисменныеОтклоненияВидИспользованияРабочегоВремениРабочееВремя);

ОтработаноЧасовЗаДень = ОтработаноЧасовЗаДень -
?(ЧасыВходятВЯвку, ВыборкаПоРаботнику.ВнутрисменныеОтклоненияЧасов, 0);
БуквенныйКод = ВыборкаПоРаботнику.ВнутрисменныеОтклоненияВидИспользованияРабочегоВремениБуквенныйКод;
СимволДня = СимволДня + "/" + БуквенныйКод;
ОтработаноЧасовЗаДеньСтр = ОтработаноЧасовЗаДеньСтр +
?(ОсновнойВидВремениПолучен, "", "/" + Строка(ВыборкаПоРаботнику.Часов - ?(ЧасыВходятВЯвку, ВыборкаПоРаботнику.ВнутрисменныеОтклоненияЧасов, 0)))
+ "/" + Строка(ВыборкаПоРаботнику.ВнутрисменныеОтклоненияЧасов);
Если Не ВыборкаПоРаботнику.ВнутрисменныеОтклоненияВидИспользованияРабочегоВремениРабочееВремя Тогда
Если СоответствиеЦелодневныхНевыходов.Получить(БуквенныйКод) = Неопределено Тогда
СоответствиеЦелодневныхНевыходов.Вставить(БуквенныйКод, 0);
СоответствиеЦелодневныхНевыходовЧасы.Вставить(БуквенныйКод, ВыборкаПоРаботнику.ВнутрисменныеОтклоненияЧасов);
Иначе
СоответствиеЦелодневныхНевыходовЧасы.Вставить(БуквенныйКод, ВыборкаПоРаботнику.ВнутрисменныеОтклоненияЧасов + СоответствиеЦелодневныхНевыходовЧасы.Получить(БуквенныйКод));
КонецЕсли;
КонецЕсли;
ИначеЕсли НЕ(ВыборкаПоРаботнику.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.РаботаВечерниеЧасы
ИЛИ ВыборкаПоРаботнику.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.РаботаНочныеЧасы)
И ВыборкаПоРаботнику.РабочееВремя
И НЕ ОсновнойВидВремениПолучен Тогда

ОтработаноЧасовЗаДень = ОтработаноЧасовЗаДень + ВыборкаПоРаботнику.Часов;
ОтработаноЧасовЗаДеньСтр = ОтработаноЧасовЗаДеньСтр + "/" + Строка(ВыборкаПоРаботнику.Часов);
ИначеЕсли ВыборкаПоРаботнику.РабочееВремя И НЕ ОсновнойВидВремениПолучен Тогда
ОтработаноЧасовЗаДеньСтр = ОтработаноЧасовЗаДеньСтр + "/" + Строка(ВыборкаПоРаботнику.Часов);
//ИначеЕсли (НЕ ВыборкаПоРаботнику.РабочееВремя) И (ВыборкаПоРаботнику.Часов = 0) И (ВыборкаПоРаботнику.НеотработаноЧасов > 0)
// И (ВыборкаПоРаботнику.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.Командировка) Тогда
// ОтработаноЧасовЗаДеньСтр = ОтработаноЧасовЗаДеньСтр + "/" + Строка(ВыборкаПоРаботнику.НеотработаноЧасов);
// ОтработаноЧасовЗаДень = ОтработаноЧасовЗаДень + ВыборкаПоРаботнику.НеотработаноЧасов;
КонецЕсли;

Если (НЕ ВыборкаПоРаботнику.РабочееВремя)
//И ВыборкаПоРаботнику.Часов <> 0
И (ВыборкаПоРаботнику.ВидВремени <> Справочники.КлассификаторИспользованияРабочегоВремени.ВыходныеДни) Тогда
Если СоответствиеЦелодневныхНевыходов.Получить(БуквенныйКод) = Неопределено Тогда
СоответствиеЦелодневныхНевыходов.Вставить(БуквенныйКод, ?(ВыборкаПоРаботнику.НеотработаноЧасов <> 0, 1, 0));
СоответствиеЦелодневныхНевыходовЧасы.Вставить(БуквенныйКод, ВыборкаПоРаботнику.НеотработаноЧасов);
Иначе
СоответствиеЦелодневныхНевыходов.Вставить(БуквенныйКод, ?(ВыборкаПоРаботнику.НеотработаноЧасов <> 0, 1, 0) + СоответствиеЦелодневныхНевыходов.Получить(БуквенныйКод));
СоответствиеЦелодневныхНевыходовЧасы.Вставить(БуквенныйКод, ВыборкаПоРаботнику.НеотработаноЧасов + СоответствиеЦелодневныхНевыходовЧасы.Получить(БуквенныйКод));
КонецЕсли;

Если ОтработаноЧасовЗаДень > 0 И ВыборкаПоРаботнику.НеотработаноЧасов > 0 тогда
ОтработаноЧасовЗаДеньСтр = ОтработаноЧасовЗаДеньСтр + "/" + Строка(ВыборкаПоРаботнику.НеотработаноЧасов);
КонецЕсли;
КонецЕсли;

ПредыдущаяДата = ВыборкаПоРаботнику.ДатаТабеля;
Если ВыборкаПоРаботнику.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.Работа И ВыборкаПоРаботнику.ВнутрисменныеОтклоненияЧасов > 0 Тогда
Если ВидыВремениЗаДень.Получить(ВыборкаПоРаботнику.ВидВремени) = Неопределено Тогда
ВидыВремениЗаДень.Вставить(ВыборкаПоРаботнику.ВидВремени, ВыборкаПоРаботнику.Часов);
Иначе
ВидыВремениЗаДень.Вставить(ВыборкаПоРаботнику.ВидВремени, ВидыВремениЗаДень.Получить(ВыборкаПоРаботнику.ВидВремени) - ВыборкаПоРаботнику.ВнутрисменныеОтклоненияЧасов);
КонецЕсли;
Иначе
ВидыВремениЗаДень.Вставить(ВыборкаПоРаботнику.ВидВремени, ВыборкаПоРаботнику.Часов);
КонецЕсли;
ВидыВремениЗаДень.Вставить(ВыборкаПоРаботнику.ВнутрисменныеОтклоненияВидИспользованияРабочегоВремени, ВыборкаПоРаботнику.ВнутрисменныеОтклоненияЧасов);
КонецЦикла;
СимволДня = Сред(СимволДня, 2);
ОтработаноЧасовЗаДеньСтр = Сред(ОтработаноЧасовЗаДеньСтр, 2);
Если ВидыВремениЗаДень.Получить(Справочники.КлассификаторИспользованияРабочегоВремени.Работа) <> Неопределено
И ВидыВремениЗаДень.Получить(Справочники.КлассификаторИспользованияРабочегоВремени.Работа) <= 0
И Лев(СимволДня, СтрДлина(Справочники.КлассификаторИспользованияРабочегоВремени.Работа.БуквенныйКод)) = Справочники.КлассификаторИспользованияРабочегоВремени.Работа.БуквенныйКод
Тогда
Разд = Найти(СимволДня, "/");
Если Разд > 1 Тогда
СимволДня = Сред(СимволДня, Разд+1);
КонецЕсли;
Разд = Найти(ОтработаноЧасовЗаДеньСтр, "/");
Если Разд > 1 Тогда
ОтработаноЧасовЗаДеньСтр = Сред(ОтработаноЧасовЗаДеньСтр, Разд+1);
КонецЕсли;

КонецЕсли;
ОбластьДанныхСтрока.Параметры["Символ"+НомерДня] = СимволДня;
ОбластьДанныхСтрока.Параметры["ДополнительноеЗначение"+НомерДня] = Формат(ОтработаноЧасовЗаДеньСтр);

Если ОтработаноЧасовЗаДень <> 0 Тогда
Если ПерваяПоловина Тогда
ДниПерваяПоловина = ДниПерваяПоловина + 1;
ЧасыПерваяПоловина = ЧасыПерваяПоловина + ОтработаноЧасовЗаДень
Иначе
ДниВтораяПоловина = ДниВтораяПоловина + 1;
ЧасыВтораяПоловина = ЧасыВтораяПоловина + ОтработаноЧасовЗаДень
КонецЕсли;
КонецЕсли;
КонецЦикла;

// заполняем раздел "Отработано за"
ОбластьДанныхСтрока.Параметры.ДниПерваяПоловина = ДниПерваяПоловина;
ОбластьДанныхСтрока.Параметры.ЧасыПерваяПоловина = ЧасыПерваяПоловина;
ОбластьДанныхСтрока.Параметры.ДниВтораяПоловина = ДниВтораяПоловина;
ОбластьДанныхСтрока.Параметры.ЧасыВтораяПоловина = ЧасыВтораяПоловина;
ОбластьДанныхСтрока.Параметры.ДниЗаМесяц = ДниПерваяПоловина + ДниВтораяПоловина;
ОбластьДанныхСтрока.Параметры.ЧасыЗаМесяц = ЧасыПерваяПоловина + ЧасыВтораяПоловина;

// заполняем раздел "Неявки по причинам"
СчНеявок = 0;
Для каждого Элемент Из СоответствиеЦелодневныхНевыходов Цикл
Если (Элемент.Значение > 0) ИЛИ СоответствиеЦелодневныхНевыходовЧасы.Получить(Элемент.Ключ) > 0 Тогда
СчНеявок = СчНеявок + 1;
ОбластьДанныхСтрока.Параметры["НеявкаКод" + Строка(СчНеявок)] = Элемент.Ключ;
КоличествоЧасов = Строка(СоответствиеЦелодневныхНевыходовЧасы.Получить(Элемент.Ключ));
Если КоличествоЧасов <> "0" Тогда
ОбластьДанныхСтрока.Параметры["НеявкаДниЧасы" + Строка(СчНеявок)] = Формат(Элемент.Значение) + "(" + КоличествоЧасов + ")";
Иначе
ОбластьДанныхСтрока.Параметры["НеявкаДниЧасы" + Строка(СчНеявок)] = Формат(Элемент.Значение);
КонецЕсли;
КонецЕсли;
КонецЦикла;

// Проверим, уместится ли строка на странице или надо открывать новую страницу
Если Не ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ДокументРезультат, ОбластьДанныхСтрока) Тогда
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
ДокументРезультат.Вывести(ОбластьДанныхКолонтитул);
КонецЕсли;

ДокументРезультат.Вывести(ОбластьДанныхСтрока);

КонецЦикла;
КонецЦикла;
КонецЦикла;
Если Не ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ДокументРезультат, ОбластьДанныхПодвал) Тогда
ПоследняяСтрокаЛиста = ДокументРезультат.ПолучитьОбласть(ДокументРезультат.ВысотаТаблицы - 3,,ДокументРезультат.ВысотаТаблицы,);
ДокументРезультат.УдалитьОбласть(ДокументРезультат.Область(ДокументРезультат.ВысотаТаблицы - 3,,ДокументРезультат.ВысотаТаблицы,),);
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
ДокументРезультат.Вывести(ОбластьДанныхКолонтитул);
ДокументРезультат.Вывести(ПоследняяСтрокаЛиста);
КонецЕсли;
ДокументРезультат.Вывести(ОбластьДанныхПодвал);
КонецЦикла;
КонецЦикла;

КонецЦикла;

Иначе
Пока ВыборкаПоРаботнику.СледующийПоЗначениюПоля("ПериодРегистрации") Цикл

ОбластьДанныхШапка.Параметры.ДатаНач = Макс(НачалоМесяца(ВыборкаПоРаботнику.ПериодРегистрации), НачалоПериода);
ОбластьДанныхШапка.Параметры.ДатаКон = Мин(КонецМесяца(ВыборкаПоРаботнику.ПериодРегистрации), КонецПериода);

Пока ВыборкаПоРаботнику.СледующийПоЗначениюПоля("Организация") Цикл

Если ДокументРезультат.ВысотаТаблицы > 0 Тогда
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;

НомерПП = 0;
ОбластьДанныхШапка.Параметры.Заполнить(ВыборкаПоРаботнику);
ОбластьДанныхШапка.Параметры.ИмяОрганизации = СОКРЛП(ВыборкаПоРаботнику.ИмяОрганизации);
ОбластьДанныхШапка.Параметры.ИмяПодразделения = ?(ОтборПодразделения, Подразделение, "");
ОбластьДанныхШапка.Параметры.ДатаЗаполнения = ДатаЗаполнения;
ОбластьДанныхШапка.Параметры.НомерДокумента = НомерДокумента;
ДокументРезультат.Вывести(ОбластьДанныхШапка);
ДокументРезультат.Вывести(ОбластьДанныхКолонтитул);
Пока ВыборкаПоРаботнику.СледующийПоЗначениюПоля("Должность") Цикл
Пока ВыборкаПоРаботнику.СледующийПоЗначениюПоля("СотрудникНаименование") Цикл
Пока ВыборкаПоРаботнику.СледующийПоЗначениюПоля("Сотрудник") Цикл

НомерПП = НомерПП + 1;

ДниПерваяПоловина = 0;
ЧасыПерваяПоловина = 0;
ДниВтораяПоловина = 0;
ЧасыВтораяПоловина = 0;

ПредыдущаяДата = Дата(1,1,1);

Для Сч = 1 По ПараметровВстроке Цикл
ОбластьДанныхСтрока.Параметры.Установить(Сч - 1,"");
КонецЦикла;
СоответствиеЦелодневныхНевыходов.Очистить();
СоответствиеЦелодневныхНевыходовЧасы.Очистить();

ОбластьДанныхСтрока.Параметры.НомерПП = НомерПП;
ОбластьДанныхСтрока.Параметры.Работник = СокрП(ВыборкаПоРаботнику.СотрудникНаименование) + ", " + Символы.ПС + ВыборкаПоРаботнику.Должность;
ОбластьДанныхСтрока.Параметры.ФизЛицо = ВыборкаПоРаботнику.Сотрудник;
ОбластьДанныхСтрока.Параметры.Заполнить(ВыборкаПоРаботнику);
ОбластьДанныхПодвал.Параметры.Заполнить(ВыборкаПоРаботнику);
ОбластьДанныхПодвал.Параметры.ФИООтветственного = УправлениеОтчетамиЗК.ФамилияИнициалыОтветсвенногоЛица(ВыборкаПоРаботнику.ФизЛицоОтветственного, ВыборкаПоРаботнику.ФамилияОтветственного, ВыборкаПоРаботнику.ИмяОтветственного, ВыборкаПоРаботнику.ОтчествоОтветственного);
ОбластьДанныхПодвал.Параметры.ФИОРуководителя = УправлениеОтчетамиЗК.ФамилияИнициалыОтветсвенногоЛица(ВыборкаПоРаботнику.ФизЛицоРуководителя, ВыборкаПоРаботнику.ФамилияРуководителя, ВыборкаПоРаботнику.ИмяРуководителя, ВыборкаПоРаботнику.ОтчествоРуководителя);
ОбластьДанныхПодвал.Параметры.ФИОКадровика = УправлениеОтчетамиЗК.ФамилияИнициалыОтветсвенногоЛица(ВыборкаПоРаботнику.ФизЛицоКадровика, ВыборкаПоРаботнику.ФамилияКадровика, ВыборкаПоРаботнику.ИмяКадровика, ВыборкаПоРаботнику.ОтчествоКадровика);

Пока ВыборкаПоРаботнику.СледующийПоЗначениюПоля("ДатаТабеля") Цикл

СимволДня = ""; ОтработаноЧасовЗаДень = 0;
ОтработаноЧасовЗаДеньСтр = "";

НомерДня = Строка(День(ВыборкаПоРаботнику.ДатаТабеля));
ПерваяПоловина = День(ВыборкаПоРаботнику.ДатаТабеля) <= 15;
УчитыватьВыходнойДень = Истина;

Пока ВыборкаПоРаботнику.Следующий() Цикл

Если НЕ ПредыдущаяДата = ВыборкаПоРаботнику.ДатаТабеля Тогда
// Очищаем соответствие
ВидыВремениЗаДень.Очистить();
КонецЕсли;

Если ВыборкаПоРаботнику.ВидВремени = ВыборкаПоРаботнику.ВнутрисменныеОтклоненияВидИспользованияРабочегоВремени
И ВыборкаПоРаботнику.РабочееВремя Тогда
ОтработаноЧасовЗаДень = ОтработаноЧасовЗаДень + ВыборкаПоРаботнику.ВнутрисменныеОтклоненияЧасов;
Продолжить;
КонецЕсли;

Если ВыборкаПоРаботнику.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.Праздники Тогда
УчитыватьВыходнойДень = Ложь;
ИначеЕсли ВыборкаПоРаботнику.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.ВыходныеДни И НЕ УчитыватьВыходнойДень Тогда
Продолжить;
КонецЕсли;

Если ВидыВремениЗаДень.Получить(ВыборкаПоРаботнику.ВидВремени) = Неопределено Тогда
ОсновнойВидВремениПолучен = Ложь;
БуквенныйКод = ВыборкаПоРаботнику.БуквенныйКод;
СимволДня = СимволДня + "/" + БуквенныйКод;
Иначе
ОсновнойВидВремениПолучен = Истина;
КонецЕсли;

// Обработка внутрисменных отклонений
Если ВыборкаПоРаботнику.ВнутрисменныеОтклоненияВидИспользованияРабочегоВремени <> NULL
И ВыборкаПоРаботнику.РабочееВремя
И НЕ(ВыборкаПоРаботнику.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.РаботаВечерниеЧасы
ИЛИ ВыборкаПоРаботнику.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.РаботаНочныеЧасы) Тогда


ОтработаноЧасовЗаДень = ОтработаноЧасовЗаДень + ВыборкаПоРаботнику.Часов;


ЧасыВходятВЯвку = (ВыборкаПоРаботнику.ВнутрисменныеОтклоненияВидИспользованияРабочегоВремени <> Справочники.КлассификаторИспользованияРабочегоВремени.Сверхурочные)
И (ВыборкаПоРаботнику.ВнутрисменныеОтклоненияВидИспользованияРабочегоВремениРабочееВремя);

Если ВыборкаПоРаботнику.ВнутрисменныеОтклоненияВидИспользованияРабочегоВремени
= Справочники.КлассификаторИспользованияРабочегоВремени.Сверхурочные Тогда
ОтработаноЧасовЗаДень = ОтработаноЧасовЗаДень + ВыборкаПоРаботнику.ВнутрисменныеОтклоненияЧасов;
ЧасыВходятВЯвку = Ложь;
ИначеЕсли ВыборкаПоРаботнику.ВнутрисменныеОтклоненияВидИспользованияРабочегоВремениРабочееВремя Тогда
ЧасыВходятВЯвку = Истина;
ОтработаноЧасовЗаДень = ОтработаноЧасовЗаДень - ВыборкаПоРаботнику.ВнутрисменныеОтклоненияЧасов;
Иначе
ЧасыВходятВЯвку = Ложь;
КонецЕсли;
//ОтработаноЧасовЗаДень = ОтработаноЧасовЗаДень -
// ?(ЧасыВходятВЯвку, ВыборкаПоРаботнику.ВнутрисменныеОтклоненияЧасов, 0);
БуквенныйКод = ВыборкаПоРаботнику.ВнутрисменныеОтклоненияВидИспользованияРабочегоВремениБуквенныйКод;
СимволДня = СимволДня + "/" + БуквенныйКод;
ОтработаноЧасовЗаДеньСтр = ОтработаноЧасовЗаДеньСтр +
?(ОсновнойВидВремениПолучен, "", "/" + Строка(ВыборкаПоРаботнику.Часов - ?(ЧасыВходятВЯвку, ВыборкаПоРаботнику.ВнутрисменныеОтклоненияЧасов, 0)))
+ "/" + Строка(ВыборкаПоРаботнику.ВнутрисменныеОтклоненияЧасов);

Если Не ВыборкаПоРаботнику.ВнутрисменныеОтклоненияВидИспользованияРабочегоВремениРабочееВремя Тогда
Если СоответствиеЦелодневныхНевыходов.Получить(БуквенныйКод) = Неопределено Тогда
СоответствиеЦелодневныхНевыходов.Вставить(БуквенныйКод, 0);
СоответствиеЦелодневныхНевыходовЧасы.Вставить(БуквенныйКод, ВыборкаПоРаботнику.ВнутрисменныеОтклоненияЧасов);
Иначе
СоответствиеЦелодневныхНевыходовЧасы.Вставить(БуквенныйКод, ВыборкаПоРаботнику.ВнутрисменныеОтклоненияЧасов + СоответствиеЦелодневныхНевыходовЧасы.Получить(БуквенныйКод));
КонецЕсли;
КонецЕсли;
ИначеЕсли НЕ(ВыборкаПоРаботнику.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.РаботаВечерниеЧасы
ИЛИ ВыборкаПоРаботнику.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.РаботаНочныеЧасы)
И ВыборкаПоРаботнику.РабочееВремя
И НЕ ОсновнойВидВремениПолучен Тогда

ОтработаноЧасовЗаДень = ОтработаноЧасовЗаДень + ВыборкаПоРаботнику.Часов;
ОтработаноЧасовЗаДеньСтр = ОтработаноЧасовЗаДеньСтр + "/" + Строка(ВыборкаПоРаботнику.Часов);
ИначеЕсли ВыборкаПоРаботнику.РабочееВремя И НЕ ОсновнойВидВремениПолучен Тогда
ОтработаноЧасовЗаДеньСтр = ОтработаноЧасовЗаДеньСтр + "/" + Строка(ВыборкаПоРаботнику.Часов);
//ИначеЕсли (НЕ ВыборкаПоРаботнику.РабочееВремя) И (ВыборкаПоРаботнику.Часов = 0) И (ВыборкаПоРаботнику.НеотработаноЧасов > 0)
// И (ВыборкаПоРаботнику.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.Командировка) Тогда
// ОтработаноЧасовЗаДеньСтр = ОтработаноЧасовЗаДеньСтр + "/" + Строка(ВыборкаПоРаботнику.НеотработаноЧасов);
// ОтработаноЧасовЗаДень = ОтработаноЧасовЗаДень + ВыборкаПоРаботнику.НеотработаноЧасов;
КонецЕсли;

Если (НЕ ВыборкаПоРаботнику.РабочееВремя)
И ВыборкаПоРаботнику.ВнутрисменныеОтклоненияВидИспользованияРабочегоВремени = NULL
И (ВыборкаПоРаботнику.ВидВремени <> Справочники.КлассификаторИспользованияРабочегоВремени.ВыходныеДни) Тогда

Если СоответствиеЦелодневныхНевыходов.Получить(БуквенныйКод) = Неопределено Тогда
СоответствиеЦелодневныхНевыходов.Вставить(БуквенныйКод, ?(ВыборкаПоРаботнику.НеотработаноЧасов <> 0, 1, 0));
СоответствиеЦелодневныхНевыходовЧасы.Вставить(БуквенныйКод, ВыборкаПоРаботнику.НеотработаноЧасов);
Иначе
СоответствиеЦелодневныхНевыходов.Вставить(БуквенныйКод, ?(ВыборкаПоРаботнику.НеотработаноЧасов <> 0, 1, 0) + СоответствиеЦелодневныхНевыходов.Получить(БуквенныйКод));
СоответствиеЦелодневныхНевыходовЧасы.Вставить(БуквенныйКод, ВыборкаПоРаботнику.НеотработаноЧасов + СоответствиеЦелодневныхНевыходовЧасы.Получить(БуквенныйКод));
КонецЕсли;

Если ОтработаноЧасовЗаДень > 0 И ВыборкаПоРаботнику.НеотработаноЧасов > 0 тогда
ОтработаноЧасовЗаДеньСтр = ОтработаноЧасовЗаДеньСтр + "/" + Строка(ВыборкаПоРаботнику.НеотработаноЧасов);
КонецЕсли;

КонецЕсли;

ПредыдущаяДата = ВыборкаПоРаботнику.ДатаТабеля;
Если ВыборкаПоРаботнику.ВидВремени = Справочники.КлассификаторИспользованияРабочегоВремени.Работа И ВыборкаПоРаботнику.ВнутрисменныеОтклоненияЧасов > 0 Тогда
Если ВидыВремениЗаДень.Получить(ВыборкаПоРаботнику.ВидВремени) = Неопределено Тогда
ВидыВремениЗаДень.Вставить(ВыборкаПоРаботнику.ВидВремени, ВыборкаПоРаботнику.Часов);
Иначе
ВидыВремениЗаДень.Вставить(ВыборкаПоРаботнику.ВидВремени, ВидыВремениЗаДень.Получить(ВыборкаПоРаботнику.ВидВремени) - ВыборкаПоРаботнику.ВнутрисменныеОтклоненияЧасов);
КонецЕсли;
Иначе
ВидыВремениЗаДень.Вставить(ВыборкаПоРаботнику.ВидВремени, ВыборкаПоРаботнику.Часов);
КонецЕсли;
ВидыВремениЗаДень.Вставить(ВыборкаПоРаботнику.ВнутрисменныеОтклоненияВидИспользованияРабочегоВремени, ВыборкаПоРаботнику.ВнутрисменныеОтклоненияЧасов);


КонецЦикла;
СимволДня = Сред(СимволДня, 2);
ОтработаноЧасовЗаДеньСтр = Сред(ОтработаноЧасовЗаДеньСтр, 2);
Если ВидыВремениЗаДень.Получить(Справочники.КлассификаторИспользованияРабочегоВремени.Работа) <> Неопределено
И ВидыВремениЗаДень.Получить(Справочники.КлассификаторИспользованияРабочегоВремени.Работа) <= 0
И Лев(СимволДня, СтрДлина(Справочники.КлассификаторИспользованияРабочегоВремени.Работа.БуквенныйКод)) = Справочники.КлассификаторИспользованияРабочегоВремени.Работа.БуквенныйКод
Тогда
Разд = Найти(СимволДня, "/");
Если Разд > 1 Тогда
СимволДня = Сред(СимволДня, Разд+1);
КонецЕсли;
Разд = Найти(ОтработаноЧасовЗаДеньСтр, "/");
Если Разд > 1 Тогда
ОтработаноЧасовЗаДеньСтр = Сред(ОтработаноЧасовЗаДеньСтр, Разд+1);
КонецЕсли;

КонецЕсли;
ОбластьДанныхСтрока.Параметры["Символ"+НомерДня] = СимволДня;
ОбластьДанныхСтрока.Параметры["ДополнительноеЗначение"+НомерДня] = Формат(ОтработаноЧасовЗаДеньСтр);

Если ОтработаноЧасовЗаДень <> 0 Тогда
Если ПерваяПоловина Тогда
ДниПерваяПоловина = ДниПерваяПоловина + 1;
ЧасыПерваяПоловина = ЧасыПерваяПоловина + ОтработаноЧасовЗаДень
Иначе
ДниВтораяПоловина = ДниВтораяПоловина + 1;
ЧасыВтораяПоловина = ЧасыВтораяПоловина + ОтработаноЧасовЗаДень
КонецЕсли;
КонецЕсли;
КонецЦикла;

// заполняем раздел "Отработано за"
ОбластьДанныхСтрока.Параметры.ДниПерваяПоловина = ДниПерваяПоловина;
ОбластьДанныхСтрока.Параметры.ЧасыПерваяПоловина = ЧасыПерваяПоловина;
ОбластьДанныхСтрока.Параметры.ДниВтораяПоловина = ДниВтораяПоловина;
ОбластьДанныхСтрока.Параметры.ЧасыВтораяПоловина = ЧасыВтораяПоловина;
ОбластьДанныхСтрока.Параметры.ДниЗаМесяц = ДниПерваяПоловина + ДниВтораяПоловина;
ОбластьДанныхСтрока.Параметры.ЧасыЗаМесяц = ЧасыПерваяПоловина + ЧасыВтораяПоловина;

// заполняем раздел "Неявки по причинам"
СчНеявок = 0;
Для каждого Элемент Из СоответствиеЦелодневныхНевыходов Цикл
//Если (Элемент.Значение > 0) ИЛИ СоответствиеЦелодневныхНевыходовЧасы.Получить(Элемент.Ключ) > 0 Тогда
СчНеявок = СчНеявок + 1;
ОбластьДанныхСтрока.Параметры["НеявкаКод" + Строка(СчНеявок)] = Элемент.Ключ;
КоличествоЧасов = Строка(СоответствиеЦелодневныхНевыходовЧасы.Получить(Элемент.Ключ));
Если КоличествоЧасов <> "0" Тогда
ОбластьДанныхСтрока.Параметры["НеявкаДниЧасы" + Строка(СчНеявок)] = формат(Элемент.Значение) + "(" + КоличествоЧасов + ")";
Иначе
ОбластьДанныхСтрока.Параметры["НеявкаДниЧасы" + Строка(СчНеявок)] = формат(Элемент.Значение);
КонецЕсли;
//КонецЕсли;
КонецЦикла;

// Проверим, уместится ли строка на странице или надо открывать новую страницу
Если Не ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ДокументРезультат, ОбластьДанныхСтрока) Тогда
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
ДокументРезультат.Вывести(ОбластьДанныхКолонтитул);
КонецЕсли;

ДокументРезультат.Вывести(ОбластьДанныхСтрока);

КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЦикла;
Если Не ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ДокументРезультат, ОбластьДанныхПодвал) Тогда
ПоследняяСтрокаЛиста = ДокументРезультат.ПолучитьОбласть(ДокументРезультат.ВысотаТаблицы - 3,,ДокументРезультат.ВысотаТаблицы,);
ДокументРезультат.УдалитьОбласть(ДокументРезультат.Область(ДокументРезультат.ВысотаТаблицы - 3,,ДокументРезультат.ВысотаТаблицы,),);
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
ДокументРезультат.Вывести(ОбластьДанныхКолонтитул);
ДокументРезультат.Вывести(ПоследняяСтрокаЛиста);
КонецЕсли;
ДокументРезультат.Вывести(ОбластьДанныхПодвал);

КонецЦикла;
КонецЕсли;

ИначеЕсли Режим = "Бланк" Тогда

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

Если НЕ (ОтборПодразделения и НЕ ГруппироватьПодразделения и ТипЗнч(Подразделение) <> Тип("СписокЗначений")) тогда
ЗапросТабель.Текст = СтрЗаменить(ЗапросТабель.Текст, "ВЫРАЗИТЬ(&Подразделение КАК Справочник.ПодразделенияОрганизаций) КАК ПодразделениеОрганизации", "РаботникиОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации")
КонецЕсли;
ВыборкаПоРаботнику = ЗапросТабель.Выполнить().Выбрать();

Если ГруппироватьПодразделения Тогда
Пока ВыборкаПоРаботнику.СледующийПоЗначениюПоля("ПериодРегистрации") Цикл

ОбластьДанныхШапка.Параметры.ДатаНач = НачалоМесяца(ВыборкаПоРаботнику.ПериодРегистрации);
ОбластьДанныхШапка.Параметры.ДатаКон = КонецМесяца(ВыборкаПоРаботнику.ПериодРегистрации);

Пока ВыборкаПоРаботнику.СледующийПоЗначениюПоля("Организация") Цикл
Пока ВыборкаПоРаботнику.СледующийПоЗначениюПоля("ПодразделениеОрганизации") Цикл

Если ДокументРезультат.ВысотаТаблицы > 0 Тогда
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;

НомерПП = 0;
ОбластьДанныхШапка.Параметры.Заполнить(ВыборкаПоРаботнику);
ОбластьДанныхШапка.Параметры.ИмяОрганизации = СОКРЛП(ВыборкаПоРаботнику.ИмяОрганизации);
ОбластьДанныхПодвал.Параметры.Заполнить(ВыборкаПоРаботнику);

ДокументРезультат.Вывести(ОбластьДанныхШапка);
ДокументРезультат.Вывести(ОбластьДанныхКолонтитул);
Пока ВыборкаПоРаботнику.СледующийПоЗначениюПоля("Должность") Цикл
Пока ВыборкаПоРаботнику.СледующийПоЗначениюПоля("СотрудникНаименование") Цикл
Пока ВыборкаПоРаботнику.СледующийПоЗначениюПоля("Сотрудник") Цикл

НомерПП = НомерПП + 1;

ОбластьДанныхСтрока.Параметры.НомерПП = НомерПП;
ОбластьДанныхСтрока.Параметры.Работник = СокрП(ВыборкаПоРаботнику.СотрудникНаименование) + ", " + Символы.ПС + ВыборкаПоРаботнику.Должность;
ОбластьДанныхСтрока.Параметры.ФизЛицо = ВыборкаПоРаботнику.Сотрудник;
ОбластьДанныхСтрока.Параметры.Заполнить(ВыборкаПоРаботнику);

// Проверим, уместится ли строка на странице или надо открывать новую страницу
Если Не ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ДокументРезультат, ОбластьДанныхСтрока) Тогда
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
ДокументРезультат.Вывести(ОбластьДанныхКолонтитул);
КонецЕсли;
ДокументРезультат.Вывести(ОбластьДанныхСтрока);

КонецЦикла;
КонецЦикла;
КонецЦикла;
Если Не ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ДокументРезультат, ОбластьДанныхПодвал) Тогда
ПоследняяСтрокаЛиста = ДокументРезультат.ПолучитьОбласть(ДокументРезультат.ВысотаТаблицы - 3,,ДокументРезультат.ВысотаТаблицы,);
ДокументРезультат.УдалитьОбласть(ДокументРезультат.Область(ДокументРезультат.ВысотаТаблицы - 3,,ДокументРезультат.ВысотаТаблицы,),);
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
ДокументРезультат.Вывести(ОбластьДанныхКолонтитул);
ДокументРезультат.Вывести(ПоследняяСтрокаЛиста);
КонецЕсли;
ДокументРезультат.Вывести(ОбластьДанныхПодвал);

КонецЦикла;
КонецЦикла;
КонецЦикла;
Иначе
Пока ВыборкаПоРаботнику.СледующийПоЗначениюПоля("ПериодРегистрации") Цикл

ОбластьДанныхШапка.Параметры.ДатаНач = НачалоМесяца(ВыборкаПоРаботнику.ПериодРегистрации);
ОбластьДанныхШапка.Параметры.ДатаКон = КонецМесяца(ВыборкаПоРаботнику.ПериодРегистрации);

Пока ВыборкаПоРаботнику.СледующийПоЗначениюПоля("Организация") Цикл

Если ДокументРезультат.ВысотаТаблицы > 0 Тогда
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;

НомерПП = 0;
ОбластьДанныхШапка.Параметры.Заполнить(ВыборкаПоРаботнику);
ОбластьДанныхШапка.Параметры.ИмяОрганизации = СОКРЛП(ВыборкаПоРаботнику.ИмяОрганизации);
ОбластьДанныхШапка.Параметры.ИмяПодразделения = "";
ОбластьДанныхПодвал.Параметры.Заполнить(ВыборкаПоРаботнику);
ДокументРезультат.Вывести(ОбластьДанныхШапка);
ДокументРезультат.Вывести(ОбластьДанныхКолонтитул);
Пока ВыборкаПоРаботнику.СледующийПоЗначениюПоля("Должность") Цикл

Пока ВыборкаПоРаботнику.СледующийПоЗначениюПоля("СотрудникНаименование") Цикл
Пока ВыборкаПоРаботнику.СледующийПоЗначениюПоля("Сотрудник") Цикл

НомерПП = НомерПП + 1;

ОбластьДанныхСтрока.Параметры.НомерПП = НомерПП;
ОбластьДанныхСтрока.Параметры.Работник = СокрП(ВыборкаПоРаботнику.СотрудникНаименование) + ", " + Символы.ПС + ВыборкаПоРаботнику.Должность;
ОбластьДанныхСтрока.Параметры.ФизЛицо = ВыборкаПоРаботнику.Сотрудник;
ОбластьДанныхСтрока.Параметры.Заполнить(ВыборкаПоРаботнику);

// Проверим, уместится ли строка на странице или надо открывать новую страницу
Если Не ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ДокументРезультат, ОбластьДанныхСтрока) Тогда
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
ДокументРезультат.Вывести(ОбластьДанныхКолонтитул);
КонецЕсли;
ДокументРезультат.Вывести(ОбластьДанныхСтрока);

КонецЦикла;
КонецЦикла;
КонецЦикла;
Если Не ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ДокументРезультат, ОбластьДанныхПодвал) Тогда
ПоследняяСтрокаЛиста = ДокументРезультат.ПолучитьОбласть(ДокументРезультат.ВысотаТаблицы - 3,,ДокументРезультат.ВысотаТаблицы,);
ДокументРезультат.УдалитьОбласть(ДокументРезультат.Область(ДокументРезультат.ВысотаТаблицы - 3,,ДокументРезультат.ВысотаТаблицы,),);
ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
ДокументРезультат.Вывести(ОбластьДанныхКолонтитул);
ДокументРезультат.Вывести(ПоследняяСтрокаЛиста);
КонецЕсли;
ДокументРезультат.Вывести(ОбластьДанныхПодвал);

КонецЦикла;
КонецЦикла;
КонецЕсли;

Если ДокументРезультат.ВысотаТаблицы = 0 Тогда

Если ОтборОрганизации и ТипЗнч(Организация) = Тип("СправочникСсылка.Организации") Тогда
ОбластьДанныхШапка.Параметры.ИмяОрганизации = СОКРЛП(Организация.НаименованиеПолное);
ОбластьДанныхШапка.Параметры.КодПоОКПО = Организация.КодПоОКПО;
КонецЕсли;
Если ОтборПодразделения и ТипЗнч(Организация) = Тип("СправочникСсылка.ПодразделенияОрганизаций") Тогда
ОбластьДанныхШапка.Параметры.ИмяПодразделения = Подразделение.Наименование;
КонецЕсли;

ОбластьДанныхСтрока.Параметры.Работник = " " + Символы.ПС + " ";
ВыводимыеОбласти = Новый Массив();
ВыводимыеОбласти.Добавить(ОбластьДанныхСтрока);
ВыводимыеОбласти.Добавить(ОбластьДанныхПодвал);
ДокументРезультат.Вывести(ОбластьДанныхШапка);
ДокументРезультат.Вывести(ОбластьДанныхКолонтитул);
Для Сч = 1 По ПараметровВстроке Цикл
ОбластьДанныхСтрока.Параметры.Установить(Сч - 1,"");
КонецЦикла;
Пока ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ДокументРезультат, ВыводимыеОбласти, Ложь) Цикл
ДокументРезультат.Вывести(ОбластьДанныхСтрока);
КонецЦикла;
ДокументРезультат.Вывести(ОбластьДанныхПодвал);
КонецЕсли;

КонецЕсли;

КонецПроцедуры // СформироватьОтчет()
 
  Планируется исправить в релизе: 2.5.36  
 
  Код ошибки: 10081506  
  Дата публикации: 24 мая 2011 г.  
  Описание: Если учебный отпуск и больничный лист регистрируются в одном периоде, то при пересчете отпуска не происходит уменьшения начисленных за отпуск сумм.  
  Планируется исправить в релизе: 2.5.36  
 
  Код ошибки: 10081928  
  Дата публикации: 31 мая 2011 г.  
  Описание: При автоматическом заполнении отчета РСВ-1 по обособленному подразделению страхователя неверно заполняется показатель "Количество застрахованных лиц".  
  Планируется исправить в релизе: 2.5.36  
 
  Код ошибки: 10081885  
  Дата публикации: 31 мая 2011 г.  
  Описание: Если для организации выставлен тариф по стаховым взносам УСН без применения льгот и в организации имеются инвалиды, по которым страховые взносы уплачиваются по пониженному тарифу, то в отчете РСВ-1 при автоматическом заполнении неверно показываются суммы взносов, уплаченных за инвалидов - попадают в Раздел 2.  
  Планируется исправить в релизе: 2.5.36  
 
  Код ошибки: 10081081  
  Дата публикации: 8 июня 2011 г.  
  Описание: В отчете "Сравнительный анализ затрат на персонал" возникает ошибка у пользователя с ролями "Расчетчик управленческой зарплаты" или "Расчетчик регламентированной зарплаты".  
  Планируется исправить в релизе: 2.5.36  
 
  Код ошибки: 10081930  
  Дата публикации: 31 мая 2011 г.  
  Описание: В печатных формах документов полное наименование организации длиной 360 символов обрезается до 300.  
  Планируется исправить в релизе: 2.5.36  
 
  Код ошибки: 10081740  
  Дата публикации: 31 мая 2011 г.  
  Описание: Если остатки отпусков прошлых лет были заполнены автоматически по расписанию, то при попытке ручного редактирования остатков возникает сообщение об ошибке.  
  Планируется исправить в релизе: 2.5.36  
 
  Код ошибки: 10083267  
  Дата публикации: 24 июня 2011 г.  
  Описание: В том случае, когда при выплате пособия по временной нетрудоспособности средний заработок сотрудника не превышает МРОТ, болезнь началась до 1 июня 2011 года и продолжается после 1 июня 2011 года, период болезни после 1 июня 2011 года ошибочно оплачивается исходя из МРОТ 4611 руб., а не 4330 руб, как должно было быть.  
  Планируется исправить в релизе: 2.5.37  
 
  Код ошибки: 10081020  
  Дата публикации: 24 июня 2011 г.  
  Описание: При выгрузки отчетов РСВ-1 у показателя РегистрационныйНомерТФОМС обрезаются ведущие нули.  
  Способ обхода: Исправить вручную полученный файл выгрузки, дописав лидирующие нули у показателя РегистрационныйНомерТФОМС.  
  Планируется исправить в релизе: 2.5.37