Имя: Пароль:
1C
1С v8
Как получить текущий "Номер лицевого счета" сотрудника?
0 CbIP
 
10.06.22
10:11
Доброго

Как программно получить ТЕКУЩИЙ "Номер лицевого счета" сотрудника в 1с 8.3 ЗКГУ 3.1 (можно и в ЗУП)?
Пробовал обращаться к РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам но у одного сотрудника может быть несколько зарплатных проектов и лицевых счетов.
Пробовал обращаться к РегистрСведений.МестаВыплатыЗарплатыСотрудников но у сотрудника может и не быть сведений в этом регистре если в справочнике "Сотрудники" на вкладке "Выплаты и учет затрат" будет установлена галка "Как всем" (при этом выбирается зарплатный проект по умолчанию для организации) и указан номер счета.

Так вот как же получить этот текущий номер счета из справочника "Сотрудники"???
1 Kigo_Kigo
 
10.06.22
10:15
Ну так выбирай запросом и анализируй, один счет, несколько счетов, сотрудник не найден(пустой запрос или не вошел в список)
2 CbIP
 
10.06.22
10:24
В реквизитах справочника "Сотрудники" нет реквизита "Номер лицевого счета" или "Номер счета" что выбирать запросом?
в РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам нет пометки что проект текущий.
3 SleepyHead
 
гуру
10.06.22
10:50
(0) Сначала получи место выплаты - оно не периодическое, привязано к сотруднику. Потом выбирай лицевой счет, который относится к этому месту выплаты.
4 CbIP
 
10.06.22
10:55
Откуда выбирать "Место выплаты"? если из РегистрСведений.МестаВыплатыЗарплатыСотрудников то у сотрудника может и не быть сведений в этом регистре
как выбрать "место выплаты" или "лицевой счет" из справочника Сотрудники? в нем нет таких реквизитов?
5 Гость из Мариуполя
 
гуру
10.06.22
12:04
Нифига не понял.
Что подразумевается под термином - "текущий" (номер лицевого счета)? Если у сотрудника несколько ДЕЙСТВУЮЩИХ зарплатных проектов (и соответственно несколько номеров лицевых счетов) - то все они текущие.

Почему ты решил, что если они все действующие, то текущий из них - только один?  Все действуют - значит все текущие.

А если какие-то зарплатные проекты уже не действующие - тогда хм.. да тупо почистить РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам от ненужных.

Итак, термин "текущий" (номер лицевого счета) чем отличается от термина "действующий в настоящее время" (зарплатный проект)?
6 Гость из Мариуполя
 
гуру
10.06.22
12:12
на крайняк в РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам есть даты. Если принять, что текущий - это последний, то можно отсортировать по дате.

а если в справочнике сотрудники стоит "как всем" (зарплатный проект по умолчанию для организации), то из РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам тупо выбрать лицевой с нужным зарплатным проектом по умолчанию.
7 CbIP
 
10.06.22
12:19
Когда заходим из справочника Сотрудники в Сотрудника на вкладку "Выплаты, учет затрат" у него есть поле ввода "Номер счета" (Это и есть текущий счет - счет на который ему будет выплачена з/п, а счетов в регистре РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам у этого сотрудника может быть много).

Как получить именно тот счет который указан в "Номер счета" при открытии вкладки "Выплаты, учет затрат"? где он храниться в справочнике Сотрудники?
8 Фрэнки
 
10.06.22
12:22
(7) по идее, если очень хочется сделать по типовому, то нужно посмотреть в коде, каким именно образом реализовано заполнение этого поля на форме.

Или посмотреть в коде по ссылкам на использование из регистра сведений.

А если предположить не глядя, то можно написать запрос с условиями. А условий несколько должно выполниться, чтоб "текущий" оказался именно таким, что указан на вкладке
9 Kigo_Kigo
 
10.06.22
12:25
Кстати , где то он в стандартной конфе получется для работы, может стоит туда залезть а там и общий модуль для этого есть и ничего изобретать не надо?
10 _Batoo
 
10.06.22
12:36
Общий модуль "КадровыйУчетВнутренний", читаем описания к функциям:

- ЗапросВТПостоянныеКадровыеДанныеФизическихЛиц
- ЗапросВТКадровыеДанныеФизическихЛиц
- ЗапросВТПостоянныеКадровыеДанныеСотрудников
- ЗапросВТКадровыеДанныеСотрудников

в описаниях перечислены возможные получаемые кадровые данные для функции "КадровыйУчет.КадровыеДанныеСотрудников(...)"

тут можно найти и место выплаты и номер лицевого счета и чего только нет
11 CbIP
 
10.06.22
13:32
Делаю так:
    
Данные = КадровыйУчет.КадровыеДанныеСотрудников(Истина, Сотрудник, "НомерЛицевогоСчета");
Если Данные.Количество() > 0 Тогда
    ИскомыйРеквизит=Данные[0].НомерЛицевогоСчета;
КонецЕсли;    
Сообщить(Сотрудник);
Сообщить(ИскомыйРеквизит);

Похоже фунция просто обращается к РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам и соответственно выдает все счета из регистра, а не текущий счет сотрудника.
12 _Batoo
 
10.06.22
13:41
Значит как писали в (3) нужно получить текущее место выплаты сотрудника (зарплатный проект, банковский счет) и далее определить по нему номер счета
13 CbIP
 
10.06.22
13:48
Данные = КадровыйУчет.КадровыеДанныеСотрудников(Истина, Сотрудник, "ЗарплатныйПроект");
Если Данные.Количество() > 0 Тогда
    ИскомыйРеквизит=Данные[0].ЗарплатныйПроект;
КонецЕсли;    
Сообщить(Сотрудник);
Сообщить(ИскомыйРеквизит);

ток же выдаёт все зарплатные проекты сотрудника.


"нужно получить текущее место выплаты сотрудника"
в том то и загвоздка как получить текущие "место выплаты сотрудника (зарплатный проект, банковский счет)"?
14 _Batoo
 
10.06.22
14:00
читал (10)? "МестоВыплаты"
15 CbIP
 
10.06.22
14:05
"читал (10)? "МестоВыплаты""

!!!Оно!!!
Огромное спасибо ребят!
16 CbIP
 
10.06.22
14:55
ну и еще тупой вопрос:
а как в запрос эту функцию запихнуть: КадровыйУчет.КадровыеДанныеСотрудников(Истина, Сотрудник, "МестоВыплаты") ?