Получить руководителя

1. topline 09.09.20 14:07 Сейчас в теме
подскажите как программно получить руководителя подразделения в конфигурции ЗУП КОРП
Найденные решения
27. sergioevans 15.09.20 14:23 Сейчас в теме
В общем нужно получать такой конструкцией:
РуководителиПодразделений.ДанныеРуководителей(ОрганизационнаяСтруктура.ПодразделениеВСтруктуреПредприятия(СтрокаТЧ.Подразделение))


Потому что на входе функции
РуководителиПодразделений.ДанныеРуководителей(МассивПодразделений, НаследованиеРуководителей = Ложь)
ожидается значение или массив значений типа Справочник.СтруктураПредприятия, а не ПодразделенияОрганизаций.
Поэтому и добавляем ещё одну функцию.
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Hla 65 09.09.20 14:11 Сейчас в теме
(1) Добрый день! В какой программе работаете? ЗУП 3.1 или другой?
10. Hla 65 09.09.20 14:58 Сейчас в теме
(1)Руководителя подразделения, нет такого реквизита. Надо вносить дополнительный реквизит.
3. topline 09.09.20 14:12 Сейчас в теме
5. topline 09.09.20 14:18 Сейчас в теме
мне бы еще и пальцем ткнуть (((
6. topline 09.09.20 14:31 Сейчас в теме
Перерыл всю статью .... мне нужен конкретно руководитель отдела
7. user5300 539 09.09.20 14:39 Сейчас в теме
(6) 3 строка "ПОЛУЧИТЬ ОТВЕТСТВЕННЫХ ОРГАНИЗАЦИИ" ))

ЗапрашиваемыеЗначения = Новый Структура;
	ЗапрашиваемыеЗначения.Вставить("Организация", Объект.Документ.Организация);
	
	ЗапрашиваемыеЗначения.Вставить("РуководительПОДРАЗДЕЛЕНИЯ");
	///ЗапрашиваемыеЗначения.Вставить("ДолжностьРуководителя");
	
	///ЗапрашиваемыеЗначения.Вставить("ГлавныйБухгалтер");
	
	///ЗапрашиваемыеЗначения.Вставить("РуководительКадровойСлужбы"); ///
	///ЗапрашиваемыеЗначения.Вставить("ДолжностьРуководителяКадровойСлужбы");
	
	ДатаВЗапросОтветственных = Объект.Документ.Дата;
	
	//!!! ПОЗВОЛЯЕТ ПОЛУЧИТЬ ДАННЫЕ ТОЛЬКО НА ДАТУ СЕАНСА
	ЗарплатаКадры.ПолучитьЗначенияПоУмолчанию(ЗапрашиваемыеЗначения, ДатаВЗапросОтветственных);
	
	ФИОГлБух = "";
	
	Если ФизическиеЛицаЗарплатаКадры.Просклонять(ЗапрашиваемыеЗначения.ГлавныйБухгалтер.Наименование, 3, ФИОГлБух, 
		?(ЗапрашиваемыеЗначения.ГлавныйБухгалтер.Пол = Перечисления.ПолФизическогоЛица.Мужской, 1, 2)) Тогда	
		
		//Область3.Параметры.ФИОГлБух = ФИОГлБух;

	КонецЕсли;	
	
	ОбластьМакетаПриказ.Параметры.ФИОГлавныйБухгалтер					= ФизическиеЛицаЗарплатаКадрыКлиентСервер.ФамилияИнициалы(ФИОГлБух);
	ОбластьПодписиРуководитель.Параметры.ФИО 								= ФизическиеЛицаЗарплатаКадры.РасшифровкаПодписи(ЗапрашиваемыеЗначения.Руководитель);
	ОбластьПодписиРуководитель.Параметры.Должность 						= ЗапрашиваемыеЗначения.ДолжностьРуководителя;


	//ОТВЕТСТВЕННЫЕ ЛИЦА НА ЗАДАННУЮ ДАТУ

	ДатаВЗапросОтветственных = ДАТА(2019,09,02);
		
	ЗапрашиваемыеЗначения = СведенияОбОтветственныхЛицах.СведенияОбОтветственныхЛицах(Выборка.Организация, "Руководитель,ДолжностьРуководителя", ДатаВЗапросОтветственных);

Показать
Vitaly1C8; +1 Ответить
8. Vitaly1C8 09.09.20 14:41 Сейчас в теме
(6)
Прикрепленные файлы:
user5300; +1 Ответить
9. Балабас 164 09.09.20 14:55 Сейчас в теме
(6) руководителя любого произвольного отдела?
11. topline 09.09.20 15:00 Сейчас в теме
Вот и я не могу найти ...
хотя на форме у подразделения есть руководитель
У меня ЗУП КОРП 3.1
12. i_a 09.09.20 20:54 Сейчас в теме
(11)откройте основную форму объекта справочника Подразделения и посмотрите значение свойства ПутьКДанным у элемента формы в котором мы выбираем руководителя подразделения. Далее исходя из того что указано в значении свойства ПутьКДанным, сможете определить, что из себя представляет "Руководитель подразделения" - это реквизит или вычисляемое поле, которое мы читаем из другого объекта конфигурации.
13. topline 10.09.20 15:40 Сейчас в теме
(12) при работе программы есть на форме руководитель, а в конфигураторе не вижу (((
15. i_a 11.09.20 20:46 Сейчас в теме
(13) к сожаление нет возможности посмотреть корп версию. Если хотите, напишите мне личное сообщение, могу по удаленке посмотреть и постараться помочь.
14. FatPanzer 10.09.20 15:57 Сейчас в теме
(11) Немножечко неправда. Насколько я вижу - на форме отображается позиция руководителя согласно штатному расписанию. А ФИО руководителя высчитывается динамически.

А ноги растут из ПриСозданииНаСервере(). Начните копать оттуда (см. скриншот)
Прикрепленные файлы:
16. sergioevans 13.09.20 02:29 Сейчас в теме
FatPanzer_Job прав.

Если сильно упростить, то таким запросом можно получить руководителя.
&ПодразделениеОрганизации - ссылка на подразделение, форму которого открываем,
&ДатаАктуальности - дата, на которую нас интересует руководитель.

ВЫБРАТЬ
	ПозицииРуководителейПодразделений.ПозицияШтатногоРасписания КАК ПозицияШтатногоРасписания,
	КадроваяИсторияСотрудниковИнтервальный.Сотрудник КАК Сотрудник
ИЗ
	Справочник.СтруктураПредприятия КАК СтруктураПредприятия
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПозицииРуководителейПодразделений КАК ПозицииРуководителейПодразделений
			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудниковИнтервальный КАК КадроваяИсторияСотрудниковИнтервальный
			ПО (ПозицииРуководителейПодразделений.ПозицияШтатногоРасписания = КадроваяИсторияСотрудниковИнтервальный.ДолжностьПоШтатномуРасписанию
					И КадроваяИсторияСотрудниковИнтервальный.ДатаНачала <= &ДатаАктуальности
					И КадроваяИсторияСотрудниковИнтервальный.ДатаОкончания >= &ДатаАктуальности)
		ПО (СтруктураПредприятия.Ссылка = ПозицииРуководителейПодразделений.Подразделение)
ГДЕ
	СтруктураПредприятия.Источник = &ПодразделениеОрганизации
Показать


ЗУП, конечно, получает сотрудника функцией СотрудникНаПозицииРуководителя() в модуле РуководителиПодразделений, там привычно для ЗУП сборка запроса путём прогона МенеджераВременныхТаблиц по множеству процедур, но суть всё равно одна:
Подразделение -> Место в структуре -> Позиции руководителей -> Штатное расписание -> Кадровая история -> Находим сотрудника на данной позиции на [текущую] дату.

Данных реквизитов и элементов на форме в конфигураторе мы не увидим, они создаются в модуле РуководителиПодразделенийФормы.
17. topline 14.09.20 10:58 Сейчас в теме
Блин ...Хочется как правильно сделать
Есть же РуководителиПодразделений , только как не крутился не выходит каменный цветок ...
18. sergioevans 14.09.20 18:42 Сейчас в теме
(17) Так а что сделать-то надо? Если нужно "как правильно" программно вытащить руководителя определённого подразделения, почему бы типовой функцией и не воспользоваться?
Общий модуль РуководителиПодразделений
Функция ДанныеРуководителей(МассивПодразделений, НаследованиеРуководителей = Ложь) Экспорт
возвращает для каждого подразделения прямо структуру: Сотрудник, Должность по штатке, Физлицо
19. topline 14.09.20 21:26 Сейчас в теме
(18) в том то и засада что у меня почему то пустое значение возвращает (((
20. sergioevans 14.09.20 23:18 Сейчас в теме
(19) Может быть нет никого на этой должности на этот момент?
Моим запросом пробовали?
Хотя скорее надо проверять привязана ли штатка к структуре предприятия и что есть в регистре ПозицииРуководителейПодразделений.
21. topline 15.09.20 06:59 Сейчас в теме
(20) Запрос возвращает нужные данные
Патаюсь вот такой конструкцией получиить данные - РуководителиПодразделений.ДанныеРуководителей(ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(СтрокаТЧ.Подразделение)) возвращает пустоту (((
22. sergioevans 15.09.20 09:27 Сейчас в теме
(21) Но если открыть именно это подразделение - СтрокаТЧ.Подразделение - там руководитель заполнен?
Для проверки сделайте прямо в коде:
ПоказатьЗначение(, СтрокаТЧ.Подразделение);

То же самое откроется, которое вы имели в виду?
ЗУП коварен. Откроется подразделение из СтруктураПредприятия или ещё что-то :)
23. topline 15.09.20 09:35 Сейчас в теме
(22) в отладчике показывает ссылку на справочник подразделений организаций и соответственно есть элемент
24. sergioevans 15.09.20 09:51 Сейчас в теме
(23) А если это именно подразделение открыть, там заполнено?
Чудес-то не бывает.
25. topline 15.09.20 10:51 Сейчас в теме
Заполнено ((( могу даже базу прислать ....
26. sergioevans 15.09.20 11:30 Сейчас в теме
(25) Это конечно слишком (персональные данные всё-таки), но если не сложно (и если прямо уверены, что ссылка в СтрокаТЧ и та, что открывается, - это одно и то же), выкладывайте, посмотрю.
Куда-нибудь в облако, а адрес в личку наверное.
27. sergioevans 15.09.20 14:23 Сейчас в теме
В общем нужно получать такой конструкцией:
РуководителиПодразделений.ДанныеРуководителей(ОрганизационнаяСтруктура.ПодразделениеВСтруктуреПредприятия(СтрокаТЧ.Подразделение))


Потому что на входе функции
РуководителиПодразделений.ДанныеРуководителей(МассивПодразделений, НаследованиеРуководителей = Ложь)
ожидается значение или массив значений типа Справочник.СтруктураПредприятия, а не ПодразделенияОрганизаций.
Поэтому и добавляем ещё одну функцию.
28. topline 15.09.20 14:44 Сейчас в теме
(27) УРА !!!!!!!!!!!!!!!!!!!!!! ПОЛУЧИЛОСЬ !!!!!!!!!!!!!!!!!!!
sergioevans; +1 Ответить
30. nvk13875 1 01.10.20 06:55 Сейчас в теме
(28) Здравствуйте!
Не подскажите , в чем была проблема у Вас?
Так же пытаюсь получить данные руководителя подразделения. На форме подразделения позиция руководителя заполнена. В регистре "Позиции руководителей подразделений" тоже заполнено. Но функция РуководителиПодразделений.ДанныеРуководителей(Подразделение, Ложь) возвращает пустое соответствие.
29. slasher777 29.09.20 19:51 Сейчас в теме
А если это именно подразделение открыть, там заполнено?
Оставьте свое сообщение
Вопросы с вознаграждением