![]() |
![]() |
|
1С:Предприятие
:: 1С:Предприятие 8 общая
|
|
| ||
егаис 03.12.18 - 20:50 | На входе имеем организацию, подразделение, датаначала, датаокончания
нужно вернуть сотрудников, работавших в организации и подразделение за указанный период, период работы надо тоже вернуть 1. Вариант 1 ПараметрыПолученияСотрудников = КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц(); ПараметрыПолученияСотрудников.НачалоПериода = ПериодНачало; ПараметрыПолученияСотрудников.ОкончаниеПериода = ПериодОкончание; ПараметрыПолученияСотрудников.Организация = Организация; ПараметрыПолученияСотрудников.Подразделение = Подразделение; СотрудникОрганизаций = КадровыйУчет.СотрудникиОрганизации(Ложь, ПараметрыПолученияСотрудников); не канает, нет данных по периоду работы 2. Вариант 2 с выборкой из регистра КадроваяИсторияСотрудниковИнтервальный работает некорректно. | ||
егаис 1 - 03.12.18 - 21:00 | вариант 3 ПараметрыПолученияСотрудников = КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц(); ПараметрыПолученияСотрудников.НачалоПериода = ПериодНачало; ПараметрыПолученияСотрудников.ОкончаниеПериода = ПериодОкончание; ПараметрыПолученияСотрудников.Организация = Организация; ПараметрыПолученияСотрудников.Подразделение = Подразделение; Запрос = Новый Запрос(); Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; КадровыйУчет.СоздатьВТСотрудникиОрганизации(Запрос.МенеджерВременныхТаблиц, Истина, ПараметрыПолученияСотрудников); Запрос.Текст = "ВЫБРАТЬ ВТСотрудникиОрганизации.* ИЗ ВТСотрудникиОрганизации КАК ВТСотрудникиОрганизации"; ВТСотрудникиОрганизации = Запрос.Выполнить().Выгрузить(); вроде бы должен отработать, но вижу, что попадают не все сотрудники. Например, сотрудник переведен с 01.08.18 в нужное подразделение.Но он не попадает в результат запроса | ||
егаис 2 - 03.12.18 - 21:13 | закрываем, глаза замылены, варинат в (1) рабочий | ||
егаис 3 - 06.12.18 - 09:51 | подниму тему столкнулся с неприятным моментом, на примере сотрудник работает в подразделении с 02.09 по 12.09 Если сюда передать датуначала = 12.08.18 и дату окончания 23.09.18 ПараметрыПолученияСотрудников = КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц(); ПараметрыПолученияСотрудников.НачалоПериода = ПериодНачало; ПараметрыПолученияСотрудников.ОкончаниеПериода = ПериодОкончание; ПараметрыПолученияСотрудников.Организация = Организация; ПараметрыПолученияСотрудников.Подразделение = Подразделение; то после Запрос = Новый Запрос(); Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; КадровыйУчет.СоздатьВТСотрудникиОрганизации(Запрос.МенеджерВременныхТаблиц, Истина, ПараметрыПолученияСотрудников); Запрос.Текст = "ВЫБРАТЬ ВТСотрудникиОрганизации.* ИЗ ВТСотрудникиОрганизации КАК ВТСотрудникиОрганизации"; ВТСотрудникиОрганизации = Запрос.Выполнить().Выгрузить(); данные по сотруднику возвращаются с 02.09.18 по 23.09.18Т.е. дату начала работы в подразделении определена верно, а вот дату окончания возвращает дату переданного параметра, а не дату окончания работы в подразделении. Кто подскажет? | ||
егаис 4 - 06.12.18 - 10:03 | может есть другой алгоритм получения периода работы сотрудника в подразделении за указанный диапазон? | ||
mmmarat 5 - 06.12.18 - 10:30 | (4) Первая часть у Вас сформирована правильно. Т.е. получили список сотрудников работавших в нужном подразделении в указанный период.
Далее необходимо получить периоды работы сотрудника в этом подразделении. Формируем ВТСотрудникиПериоды с периодами и передаем в процедуру: ОписаниеФильтра = ЗарплатаКадрыПериодическиеРегистры.ОписаниеФильтраДляСоздатьВТИмяРегистра("ВТСотрудникиПериоды", "Сотрудник"); ПараметрыПостроения = ЗарплатаКадрыПериодическиеРегистры.ПараметрыПостроенияДляСоздатьВТИмяРегистра(); ЗарплатаКадрыПериодическиеРегистры.СоздатьВТИмяРегистраПериоды("КадроваяИсторияСотрудников", Запрос.МенеджерВременныхТаблиц, Истина, ОписаниеФильтра, ПараметрыПостроения, "ВТСотрудникиИнтервалы"); | ||
егаис 6 - 06.12.18 - 10:41 | не понятно это должно выглядеть так? ПараметрыПолученияСотрудников = КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц(); ПараметрыПолученияСотрудников.НачалоПериода = ПериодНачало; ПараметрыПолученияСотрудников.ОкончаниеПериода = ПериодОкончание; ПараметрыПолученияСотрудников.Организация = Организация; ПараметрыПолученияСотрудников.Подразделение = Подразделение; ОписаниеФильтра = ЗарплатаКадрыПериодическиеРегистры.ОписаниеФильтраДляСоздатьВТИмяРегистра("ВТСотрудникиПериоды", "Сотрудник"); ПараметрыПостроения = ЗарплатаКадрыПериодическиеРегистры.ПараметрыПостроенияДляСоздатьВТИмяРегистра(); ЗарплатаКадрыПериодическиеРегистры.СоздатьВТИмяРегистраПериоды("КадроваяИсторияСотрудников", Запрос.МенеджерВременныхТаблиц, Истина, ОписаниеФильтра, ПараметрыПостроения, "ВТСотрудникиИнтервалы"); ошибки возникают | ||
егаис 7 - 06.12.18 - 10:42 | пропустил
ПараметрыПолученияСотрудников = КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц(); ПараметрыПолученияСотрудников.НачалоПериода = ПериодНачало; ПараметрыПолученияСотрудников.ОкончаниеПериода = ПериодОкончание; ПараметрыПолученияСотрудников.Организация = Организация; ПараметрыПолученияСотрудников.Подразделение = Подразделение; Запрос = Новый Запрос(); Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; КадровыйУчет.СоздатьВТСотрудникиОрганизации(Запрос.МенеджерВременныхТаблиц, Истина, ПараметрыПолученияСотрудников); ОписаниеФильтра = ЗарплатаКадрыПериодическиеРегистры.ОписаниеФильтраДляСоздатьВТИмяРегистра("ВТСотрудникиПериоды", "Сотрудник"); ПараметрыПостроения = ЗарплатаКадрыПериодическиеРегистры.ПараметрыПостроенияДляСоздатьВТИмяРегистра(); ЗарплатаКадрыПериодическиеРегистры.СоздатьВТИмяРегистраПериоды("КадроваяИсторияСотрудников", Запрос.МенеджерВременныхТаблиц, Истина, ОписаниеФильтра, ПараметрыПостроения, "ВТСотрудникиИнтервалы"); | ||
mmmarat 8 - 06.12.18 - 11:01 | (7) Создайте ВТ "ВЫБРАТЬ ВТСотрудникиОрганизации.Сотрудник, &ПериодНачало КАК ДатаНачала, &ПериодОкончание КАК ДатаОкончания ПОМЕСТИТЬ ВТСотрудникиПериоды ИЗ ВТСотрудникиОрганизации". | ||
егаис 9 - 06.12.18 - 14:06 | (8) спасибо, но выходит ошибка ПараметрыПолученияСотрудников = КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц(); ПараметрыПолученияСотрудников.НачалоПериода = ПериодНачало; ПараметрыПолученияСотрудников.ОкончаниеПериода = ПериодОкончание; ПараметрыПолученияСотрудников.Организация = Организация; ПараметрыПолученияСотрудников.Подразделение = Подразделение; Запрос = Новый Запрос(); Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; КадровыйУчет.СоздатьВТСотрудникиОрганизации(Запрос.МенеджерВременныхТаблиц, Истина, ПараметрыПолученияСотрудников); Запрос.Текст = "ВЫБРАТЬ ВТСотрудникиОрганизации.Сотрудник КАК Сотрудник, | &ПериодНачало КАК ДатаНачала, | &ПериодОкончание КАК ДатаОкончания |ПОМЕСТИТЬ ВТСотрудникиПериоды | ИЗ ВТСотрудникиОрганизации КАК ВТСотрудникиОрганизации";// УПОРЯДОЧИТЬ По ВТСотрудникиОрганизации.Сотрудник.Наименование Запрос.УстановитьПараметр("ПериодНачало", ПериодНачало); Запрос.УстановитьПараметр("ПериодОкончание", ПериодОкончание);  //ВТСотрудникиОрганизации = Запрос.Выполнить().Выгрузить(); ОписаниеФильтра = ЗарплатаКадрыПериодическиеРегистры.ОписаниеФильтраДляСоздатьВТИмяРегистра("ВТСотрудникиПериоды", "Сотрудник"); ПараметрыПостроения = ЗарплатаКадрыПериодическиеРегистры.ПараметрыПостроенияДляСоздатьВТИмяРегистра(); ЗарплатаКадрыПериодическиеРегистры.СоздатьВТИмяРегистраПериоды("КадроваяИсторияСотрудников", Запрос.МенеджерВременныхТаблиц, Истина, ОписаниеФильтра, ПараметрыПостроения, "ВТСотрудникиИнтервалы"); {ОбщийМодуль.ЗарплатаКадрыПериодическиеРегистры.Модуль(217)}: Ошибка при вызове метода контекста (Выполнить) Запрос.Выполнить(); по причине: {(49, 2)}: Таблица не найдена "ВТСотрудникиПериоды" <<?>>ВТСотрудникиПериоды КАК ИзмеренияДаты | ||
егаис 10 - 06.12.18 - 14:33 | (8) Марат, выручай, воде бы все верно сделал Рекламное место пустует | ||
mmmarat 11 - 06.12.18 - 15:03 | (10) Забыл выполнить запрос где ВТ ВТСотрудникиПериоды формируется. | ||
kumena 12 - 06.12.18 - 15:11 | а на 2.5 надо час грамотного программиста, чтобы запрос нужный написать.
а тут человек уже третьи сутки, и похоже без перерыва, бьётся! | ||
mmmarat 13 - 06.12.18 - 15:16 | (12) в ЗУП 3.1 все достаточно просто при знании методов. | ||
Akela has missed 14 - 06.12.18 - 15:18 | (12) так грамотного и тут на час :D | ||
kumena 15 - 06.12.18 - 15:49 | > так грамотного и тут на час :Dв моем понимании, то что выше - это совсем не программирование. программист должен знать что откуда берется. а перенесут куда-нибудь эти костыли/функции или даже переназовут, и будет плач по всей стране стоять. | ||
KrasnSergey 16 - 06.12.18 - 16:06 | (15)+100500 | ||
Akela has missed 17 - 06.12.18 - 16:16 | (15) если это не совсем программирование, кто мешает сделать так как в твоем понимании?)
Если в 2.5 на запрос вам надо час, то тут на запрос уйдет не больше 5 минут. | ||
Alexandr_U1982 18 - 06.12.18 - 16:30 | (17)+100500 | ||
mmmarat 19 - 06.12.18 - 16:41 | (15)
Возьмем пример. В 3.1.4 в РС кадровой истории сотрудников был такой ресурс как "ВидЗанятости". Программисты брали в запросе срезпоследних и радовались жизни. А в 3.1.5 этот ресурс переехал в РС "ВидыЗанятостиСотрудников". А событие для получения кадровых данных как было так и осталось "ВидЗанятости". Так кто в этом случае плакать будет. Я не утверждаю, что от запросов нужно отказываться, но некоторые банально в регистре забывают учитывать такие ресурсы как "ДействуетДо". | ||
2S 20 - 06.12.18 - 16:44 | (19) стукнись в личку | ||
kumena 21 - 10.12.18 - 16:23 | > Если в 2.5 на запрос вам надо час, то тут на запрос уйдет не больше 5 минут.
а вот наш коллега mmmarat утверждает что на час. в данном случае я не себя имел ввиду, а человека, который будет это делать впервые. лично мне на это дело хватит и пары минут, я уже сто раз это писал, и могу скопировать из предыдущих отчетов/обработок. > Программисты брали в запросе срезпоследних и радовались жизни. А в 3.1.5 этот ресурс переехал в РС "ВидыЗанятостиСотрудников". А вы считаете это нормально, когда программе столько лет, и разработчики никак не могут определиться со структурой? Про то что из этого следует я пожалуй промолчу. За разработку "ПериодаЗавершения" я бы пожал руку 1совсцам, а за то, что они навертели в третьей версии настучал бы линейкой по рукам. |
|
Список тем форума |
Правила | Описание | Реклама на форуме | Волшебные решения | Поиск | Секции | Рейтинг | Книга знаний | Вики-миста (КЗ2) | Мобильная | Архив | Модераторы | Галерея | Регистрация | 18+ |