Имя: Пароль:
1C
 
запрос в 1с ЗУП
,
0 Slaifer
 
26.07.22
11:00
Извиняюсь за спам и создание второй темы. Т.З. вывести список: сотрудник, дата увольнения, организация, снилс, вид занятости(только основное место работы). У кого место работы совмещенное или внутреннее совместительство и тд, то их не надо выводить.
1)Список без поля вид занятости я могу вывести таким кодом:
ВЫБРАТЬ
    ТекущиеКадровыеДанныеСотрудников.ГоловнаяОрганизация.НаименованиеСокращенное КАК Организация,
    ТекущиеКадровыеДанныеСотрудников.Сотрудник КАК ФИО,
    ТекущиеКадровыеДанныеСотрудников.ДатаУвольнения КАК ДатаУвольнения,
    ТекущиеКадровыеДанныеСотрудников.ФизическоеЛицо.СтраховойНомерПФР КАК СНИЛС
ИЗ
    РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
2) подсказали написать такой код:
ВЫБРАТЬ
    ТекущиеКадровыеДанныеСотрудников.ГоловнаяОрганизация.НаименованиеСокращенное КАК Организация,
    ТекущиеКадровыеДанныеСотрудников.Сотрудник КАК ФИО,
    ТекущиеКадровыеДанныеСотрудников.ДатаУвольнения КАК ДатаУвольнения,
    ТекущиеКадровыеДанныеСотрудников.ФизическоеЛицо.СтраховойНомерПФР КАК СНИЛС
ИЗ
    РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
ГДЕ
    ТекущиеКадровыеДанныеСотрудников.ТекущийВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы)
//////////////////
Почему то выводит не весь список сотрудников, а только часть, хотя у нас есть уволенный сотрудник например Вася, который уволился совсем недавно, а его нет в списке.
А если ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы) заменить на ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ПустаяСсылка) тогда выведет всех сотрудников и даже Васю, правда поле ВидЗанятости будет пустым
Если открыть Васю в справочнике сотрудников, то у Васи будет Вид занятости = Основное место работы
1 Amra
 
26.07.22
11:15
Не тот РС используешь. Используй КадроваяИсторияСотрудников, срез последних на нужную дату. А вообще есть уже готовые функции для получения нужных данных
2 Slaifer
 
26.07.22
11:18
КадроваяИсторияСотрудников в это регистре нет даты увольнения
3 СеменовСемен
 
26.07.22
11:20
Там же в зупе апи есть по получению данных из регистров
Нужно использовать его
4 Amra
 
26.07.22
11:20
(2) Все там есть. Это Период при событии Увольнение
5 6awkup_true
 
26.07.22
11:21
&НаСервере
Функция ПолучитьПараметры()
    Возврат КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц();    
КонецФункции

В твоей функции код будет

СтруктураДанных = Новый Структура();
    
    СтруктураДанных.Вставить("ДатаНачала",);
    СтруктураДанных.Вставить("ДатаОкончания",);
    СтруктураДанных.Вставить("РазмерОклада",);
    
    ПараметрыПолучения = ПолучитьПараметры();
    ПараметрыПолучения.Организация = ЭтотОбъект.Организация;

ПараметрыПолучения.НачалоПериода = НачалоМесяца(ДатаНазначения);
    ПараметрыПолучения.ОкончаниеПериода = КонецМесяца(ДатаНазначения);
    ПараметрыПолучения.ПодработкиРаботниковПоТрудовымДоговорам = Истина;
    ПараметрыПолучения.РаботникиПоДоговорамГПХ = Ложь;

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

    ПараметрыПолучения.КадровыеДанные = "Сотрудник,ФизическоеЛицо,Подразделение,Должность,ДолжностьПоШтатномуРасписанию,КоличествоСтавок,ВидЗанятости,ДатаПриема,ДатаУвольнения,ГрафикРаботы";
    
    ТаблицаСотрудников = КадровыйУчет.СотрудникиОрганизации(Истина, ПараметрыПолучения);
    
    Возврат ТаблицаСотрудников;
6 Slaifer
 
26.07.22
11:28
запрос на скд написан, потому что в т.з было добавлено, что нужно каждый понедельник рассылать отчет определенным людям, тех сотрудников, которых уволил неделю назад.
(например 25.07 необходимо произвести выгрузку сотрудников, уволенных за период с 18.07 по 24.07), выгружать необходимо только сотрудников, которые работают по основному месту работы.
7 Slaifer
 
26.07.22
11:29
я на скд выбрал в отборах ДатаУвольнения = начало прошлой недели
8 6awkup_true
 
26.07.22
11:31
(6) можно получить все данные через общие функции, запихать как внешний источник данных, а уж потом накладывать любые отборы, которые душа пожелает
9 Amra
 
26.07.22
11:36
(6) Изобретаем велосипед с квадратными колесами вместо того, чтобы использовать уже готовое....
10 _Batoo
 
26.07.22
11:56
(6) возьми отчет Штатные сотрудники, добавь туда пользовательское поле с твоим условием и настрой поля какие хочешь
11 _Batoo
 
26.07.22
11:57
(1) >> срез последних на нужную дату

так, кстати, делать нельзя. надо либо использовать программный интерфейс, либо уже если совсем приперло, то делать запрос к интервальному регистру
12 Amra
 
26.07.22
11:59
(11) Не надо вообще изобретать велосипед. То что надо ТС делается в несколько кликов с уже имеющимся функционалом
13 El_Duke
 
гуру
26.07.22
12:04
(12) Вы не понимаете, этот отчет надо рассылать "определенным людям"
Видимо они такие большие и важные, что сами формировать его не будут, даже если в 2 клика переделать готовый
14 sitex
 
naïve
26.07.22
12:08
(13) Поверьте у меня примеру  тоже таких *небожителей* которые не могут даже 1 кнопку нажать, предостаточно.
15 El_Duke
 
гуру
26.07.22
12:20
(14) Верю, соболезную
16 6awkup_true
 
26.07.22
12:32
(14) тогда отчет вообще не нужен. в рег задании формировать таб док, выгружать в эксель и отправлять. но если уже прям через скд надо, то только схема нужна. получил схему, выполнил, отправил результат
17 Amra
 
26.07.22
12:36
(13) Рассылку отчетов украли? Кто посмел???
18 sitex
 
naïve
26.07.22
12:43
(16) Способов много и реализация тоже.
2 + 2 = 3.9999999999999999999999999999999...