Здравствуйте! Подскажите, как в Зарплата и управление персоналом, редакция 3.1 из тз запроса
фио дата перевода подразделение должность событие
петров 01.01.2013 подр1 должн1 прием
петров 01.01.2014 подр2 должн2 перевод
петров 01.01.2015 подр2 должн2 перевод
петров 01.01.2016 подр3 должн3 перевод
иванов 01.01.2014 подр1 должн8 прием
иванов 01.01.2016 подр3 должн5 перевод
получить след таблицу (нужно отразить все переводы по подразделению)
петров 01.01.2013 подр1,должн1(прием) 01.01.2014подр2,должн2(перевод)
петров 01.01.2014 подр2,должн2 01.01.2015 подр2,должн2
петров 01.01.2015 подр2,должн2 01.01.2016 подр3,должн3
иванов 01.01.2014 подр1,должн8 01.01.2016 подр3,должн5
фио дата перевода подразделение должность событие
петров 01.01.2013 подр1 должн1 прием
петров 01.01.2014 подр2 должн2 перевод
петров 01.01.2015 подр2 должн2 перевод
петров 01.01.2016 подр3 должн3 перевод
иванов 01.01.2014 подр1 должн8 прием
иванов 01.01.2016 подр3 должн5 перевод
получить след таблицу (нужно отразить все переводы по подразделению)
петров 01.01.2013 подр1,должн1(прием) 01.01.2014подр2,должн2(перевод)
петров 01.01.2014 подр2,должн2 01.01.2015 подр2,должн2
петров 01.01.2015 подр2,должн2 01.01.2016 подр3,должн3
иванов 01.01.2014 подр1,должн8 01.01.2016 подр3,должн5
По теме из базы знаний
- Кадровые переводы с предыдущими данными сотрудника для ЗКГУ 3.1
- Приказ о переводе на другую работу (Т-5) из документа Кадровый перевод списком с выбором сотрудников (ЗУП 3, КА 2, ERP 2)
- Отчет по кадровым переводам
- Прием на работу, Кадровый перевод (печатные формы Word)
- Кадровый перевод Т-5 для 1С:Зарплата и кадры Государственного учреждения 3.0
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)сделала так, получилось.
но выдает ошибку:
Индекс находится за границами массива
ОбластьСтрока.Параметры.новМРаб = тз[ии+1].Подразделение;
к примеру всего строк 4.
аа = 0; ии=0;
Для каждого стр из тз цикл
всегостр = тз.Количество();
сообщить(всегостр);
для ии = 0 по всегостр-1 цикл
ОбластьСтрока.Параметры.Сотрудник = стр.Сотрудник;
ОбластьСтрока.Параметры.старМРаб = тз[ии].Подразделение;
ОбластьСтрока.Параметры.старОплата = тз[ии].ДатаПеревода;
ОбластьСтрока.Параметры.новМРаб = тз[ии+1].Подразделение;
ОбластьСтрока.Параметры.новОплата = тз[ии+1].ДатаПеревода;
ТабличныйДокумент.Вывести(ОбластьСтрока);
конеццикла;
КонецЦикла;
Показатьно выдает ошибку:
Индекс находится за границами массива
ОбластьСтрока.Параметры.новМРаб = тз[ии+1].Подразделение;
к примеру всего строк 4.
Упорядочи по ФИО и дате запрос
После чего двумя циклами обходи
Неоптимизированно но должно работать
После чего двумя циклами обходи
Для каждого стр1 из тз цикл
Для каждого стр2 из тз цикл
Если стр1.фио = стр2.Фио И стр1.дата = стр2.Дата Тогда
Продолжить;
ИначеЕсли стр1.фио = стр2.Фио И стр1.дата <> стр2.Дата Тогда
ОбластьСтрока.Параметры.старМРаб = Стр1.Подразделение;
ОбластьСтрока.Параметры.старОплата = Стр1.ДатаПеревода;
ОбластьСтрока.Параметры.новМРаб = Стр2.Подразделение;
ОбластьСтрока.Параметры.новОплата = Стр2.ДатаПеревода;
ТабличныйДокумент.Вывести(ОбластьСтрока);
КонецЕсли;
КонецЦикла;
КонецЦикла;
ПоказатьНеоптимизированно но должно работать
(7) сделала вот так и так заработало:
ии=0; номер = 0;
всегостр = тз.Количество();
Для каждого стр1 из тз цикл
Для каждого стр2 из тз цикл
Если СокрЛП(стр1.сотрудник) = СокрЛП(стр2.сотрудник) И СокрЛП(стр1.Дата1) = СокрЛП(стр2.Дата1) тогда
Продолжить;
ИначеЕсли СОкрЛП(стр1.сотрудник) = СокрЛП(стр2.сотрудник) И СокрЛП(стр1.Дата1) <> СокрЛП(стр2.Дата1) И ии<>всегостр-1 Тогда
ОбластьСтрока.Параметры.номерПП = номер+1;
ОбластьСтрока.Параметры.Сотрудник = стр1.Сотрудник;
ОбластьСтрока.Параметры.старМРаб = тз[ии].ПодразделениеПолное + Символы.ПС + тз[ии].Должность + Символы.ПС + Формат(тз[ии].Дата1,"ДЛФ=Д") + " " + Формат(тз[ии].Дата2,"ДЛФ=Д");
ОбластьСтрока.Параметры.старОплата = тз[ии].Оплата + Символы.ПС + тз[ии].Оклад;
ОбластьСтрока.Параметры.новМРаб = тз[ии+1].ПодразделениеПолное + Символы.ПС + тз[ии+1].Должность + Символы.ПС + Формат(тз[ии+1].Дата1,"ДЛФ=Д") + " " + Формат(тз[ии+1].Дата2,"ДЛФ=Д");
ОбластьСтрока.Параметры.новОплата = тз[ии+1].Оплата + Символы.ПС + тз[ии+1].Оклад;
ТабличныйДокумент.Вывести(ОбластьСтрока);
номер = номер + 1;
ии = ии+1;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот