(1) Работающих имеется ввиду всех штатных или находящихся на рабочем месте? Если первое то по РС кадровая история сотрудников, иначе по РС Состояния сотрудников
ВЫБРАТЬ
КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник,
КадроваяИсторияСотрудниковСрезПоследних.Должность КАК Должность,
КадроваяИсторияСотрудниковСрезПоследних.Организация КАК Организация
ИЗ
РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&КонецПериода,) КАК КадроваяИсторияСотрудниковСрезПоследних
ГДЕ
КадроваяИсторияСотрудниковСрезПоследних.ВидСобытия <> ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение)
ВЫБРАТЬ
КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник,
КадроваяИсторияСотрудниковСрезПоследних.Должность КАК Должность,
КадроваяИсторияСотрудниковСрезПоследних.Организация КАК Организация
ИЗ
РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&КонецПериода,) КАК КадроваяИсторияСотрудниковСрезПоследних
ГДЕ
КадроваяИсторияСотрудниковСрезПоследних.ВидСобытия <> ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение)
В случае если у сотрудника есть временный кадровый перевод, этот запрос покажет временное подразделение как постоянное.
(8)
оперировать прямыми запросами к регистрам в ЗУП 3 не очень хорошо (как говорят разработчики ЗУП 3). Нужно пользоваться программным интерфейсом. Будет легче сопровождать.
ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц = КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц();
ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц.ОкончаниеПериода = ДатаВремя(2018,09,04);
ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц.КадровыеДанные = "Организация, Подразделение, ТабельныйНомер, ДатаПриема"; //Любое поле из описания через запятую из
//КадровыйУчетВнутренний.ЗапросВТПостоянныеКадровыеДанныеСотрудников
//КадровыйУчетВнутренний.ЗапросВТКадровыеДанныеСотрудников
//КадровыйУчетВнутренний.ЗапросВТПостоянныеКадровыеДанныеФизическихЛиц
//КадровыйУчетВнутренний.ЗапросВТКадровыеДанныеФизическихЛиц
ТабличаЗначений = КадровыйУчет.СотрудникиОрганизации(Истина, ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц );
Если нужно получить во временную таблицу, то
МойЗапрос = Новый Запрос;
МойЗапрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
СоздатьВТСотрудникиОрганизации(МойЗапрос.МенеджерВременныхТаблиц , Истина, ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц);
МойЗапрос.Текст = "ВЫБРАТЬ * ИЗ ВТСотрудникиОрганизации";
//или можно дальше соединять с чем попало, но с умом и желательно через программный интерфейс
Выборка = МойЗапрос.выполнить().Выбрать()
P.S Для отчетов есть механизмы Представлений. Тоже все легко и просто и без прямых запросов. Ато потом жалуются, что ЗУП постоянно регистры меняет и нужно опять все переделывать.
(9) Здравствуйте! Поделитесь опытом может где есть описания по функциям от разработчиков ЗУП/ЗКГУ или описание каким функционалом общих модулей пользоваться?
Было бы очень удобно(даже как платная литература) чтобы 1С и разработчики документировали универсальный функционал
В качестве примера как сделано (нужен доступ на сайт ИТС) для БСП https://its.1c.ru/db/bsp311doc
оперировать прямыми запросами к регистрам в ЗУП 3 не очень хорошо (как говорят разработчики ЗУП 3). Нужно пользоваться программным интерфейсом. Будет легче сопровождать.
Я долго искал что-то подобное, пользовался универсальной: КадровыеДанные = КадровыйУчет.КадровыеДанныеСотрудников(Истина, Сотрудник, ЗапрашиваемыеКадровыеДанные, АктДата);
- да, это рабочая функция. Но когда протестировал Вашу "функцию", был просто шокирован скоростью выполнения! Это просто СУПЕР!!! Замеры не делал, но на одном и том же списке сотрудников "универсальная" отрабатывала более 15 минут, а Ваша примерно 15 секунд!!! И то, что хотел получить - получаю. Беру ее как лучшую из всех себе на "вооружение". Большое Вам Спасибо!
(13) ох ёжик))))
Она не моя) ее разработчики ЗУПа сделали, чтобы было проще нам всем работать))) Там их много) По учету времени, начислениям и всему остальному
Если коротко, то все что находится в области ПрограммныйИнтерфейс в общих модулях, будет работать минимум в рамках одной редакции и следует использовать их, т.к. они не будут часто меняться, соответственно не придется часто переписывать доработки. И да они более менее оптимизированы. Нужно только уметь читать описания)
Если сильно интересно, почему так и зачем, то стоит прочитать про SOLID
(9)А можно отобрать в этой функции "ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц " только неуволенных ?
Можно конечно через отбор где ДатаУвольнения = '00010101'. Может какой параметр есть для этого?
заходим в зуп. находим документ табель. находим кнопку заполнить. через нее выходим на функцию заполнить "Авто". в ней должен быть вызов заполнения таблицы по работающим и работавшим сотрудникам предприятия за период
16.
user614414_danyspb2015
14.12.21 12:14 Сейчас в теме
А если временный перевод уже закончился он так и остается болтаться в подразделении в которое его переводили И РС "КадроваяИстрияСотрудников " не катит !