Заполнить параметры макета

1. Geophysic 09.03.23 10:33 Сейчас в теме
Здравствуйте, работаю во внешней обработке, мне нужно заполнить параметр макета "НомерДоверенности". Работать должно так, если поле "За руководителя по приказу" в документе "СчетНаОплатуПокупателю" заполнено тогда заполнить полем "Основание" из справочника "ОснованиеНаПравоПодписи", должно совпадать по имени, организации и должности с документом "СчетНаОплатуПокупателю", а если поле "За руководителя по приказу" пустое, тогда сравнивать уже по полю "Руководитель". Подскажите пожалуйста как это осуществить?

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

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

		Результат = Запрос.Выполнить();
			
		Выборка = Результат.Выбрать();
		
		Пока Выборка.Следующий() Цикл
		
		Организация           = Выборка.Организация;
		ОрганизацияПодписи    = Выборка.ОрганизацияПодписи;
		Руководитель          = Выборка.Руководитель;
		Сотрудник		      = Выборка.Сотрудник;
		ИВС_Подразделение     = Выборка.ИВС_Подразделение;
		Подразделение	      = Выборка.Подразделение;
		Наименование	      = Выборка.Наименование;
		НомерДоверенности     = Доверенность.Параметры.НомерДоверенности;
		Должность             = Выборка.Должность;
		ДолжностьРуководителя = Выборка.ДолжностьРуководителя;
		ЗаРуководителяПоПриказу = Выборка.ЗаРуководителяПоПриказу;
   
		Наименование = Выборка.Наименование;
		
		Если Организация = ОрганизацияПодписи И 
			 Руководитель = Сотрудник И
			 Должность = ДолжностьРуководителя И
			 ИВС_Подразделение = Подразделение Тогда
			 Доверенность.Параметры.НомерДоверенности = Наименование; 					
		Иначе Доверенность.Параметры.НомерДоверенности = Неопределено
		КонецЕсли;
Показать
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Zevzm 09.03.23 11:08 Сейчас в теме
Если просто проверить через ЗначениеЗапонено() реквизит "За руководителя по приказу". Заполнен - выводим номер доверенности, нет - не выводим.
Если у вас в "За руководителя по приказу" ссылочный тип, можете просто сравнить с пустой ссылкой этого типа.
3. Geophysic 09.03.23 11:18 Сейчас в теме
(2)
 Если ЗаРуководителяПоПриказу = Документы.СчетНаОплатуПокупателю.ПустаяСсылка() И 
			 Организация = ОрганизацияПодписи И 
			 Должность = ДолжностьРуководителя И
			 ИВС_Подразделение = Подразделение Тогда
			 Доверенность.Параметры.НомерДоверенности = Наименование; 					
		Иначе Доверенность.Параметры.НомерДоверенности = Неопределено
		КонецЕсли;


Вот так прописал не работает
4. Zevzm 09.03.23 11:20 Сейчас в теме
Ну это не то совсем. Этот реквизит "ЗаРуководителяПоПриказу" у вас какого типа?
5. Geophysic 09.03.23 11:22 Сейчас в теме
(4)СправочникСсылка.Сотрудники
6. Zevzm 09.03.23 11:28 Сейчас в теме
(5)Если так:
Если Не ЗаРуководителяПоПриказу = Спрачовники.Сотрудники.ПустаяСсылка()
Доверенность.Параметры.НомерДоверенности = Наименование;
Иначе Доверенность.Параметры.НомерДоверенности = "";
КонецЕсли;
7. Geophysic 09.03.23 11:35 Сейчас в теме
(6) Благодарю, работает, но печатает номер доверенности по другому сотруднику, находит не того сотрудника в справочнике. То есть в документе у меня руководитель Антонова, а печатается по Астаевой. Как отбор сделать по организации, руководителю и должности?
8. Zevzm 09.03.23 11:45 Сейчас в теме
(7)Проверьте параметры запроса. Запрос.УстановитьПараметр("Сотрудник", ВыборкаДетальныеЗаписи.СотрудникПодписи);
9. Geophysic 09.03.23 11:48 Сейчас в теме
(8)
ВыборкаДетальныеЗаписи.СотрудникПодписи

Выдает как разтаки Астаеву
10. Geophysic 09.03.23 12:57 Сейчас в теме
(8) Подскажите пожалуйста, как установить отбор так чтобы сотрудник был такой же как руководитель?
11. Zevzm 09.03.23 13:19 Сейчас в теме
(10)Опишите как должно быть словами.
12. Geophysic 09.03.23 13:26 Сейчас в теме
(11) То есть если я печатаю документ "Счет на оплату покупателю" и во вкладке "Подписи" указан определенный руководитель например Антонова (так же как на скрине) то в печать выходит номер доверенности именно по ней из справочника "ОснованияНаПравоПодписи". Сейчас же у меня работает так, что если у меня указана Антонова(реквизит "Руководитель", документ "Счет на оплату покупателю") в документе, то печатается номер доверенности по Астаевой(ревезеит "Сотрудник", справочник "ОснованияНаПравоПодписи"). Находит почему то именно её, а не того кто указан в документе
13. Zevzm 09.03.23 13:30 Сейчас в теме
(12) Заполняйте тогда параметр Запроса для получения номера доверенности в зависимости от заполнения ЗаРуководителяПоПриказу .
Если Не ЗаРуководителяПоПриказу = Спрачовники.Сотрудники.ПустаяСсылка()
Запрос.УстановитьПараметр("Сотрудник", ВыборкаДетальныеЗаписи.СотрудникПодписи);
Иначе
Запрос.УстановитьПараметр("Сотрудник", ЭтотОбъект.СсылкаНаОбъект.Руководитель);
КонецЕсли;
14. Geophysic 09.03.23 13:52 Сейчас в теме
(13)
("Сотрудник", ВыборкаДетальныеЗаписи.СотрудникПодписи);


Тут всё равно Астаеву выдает, я может что-то не так написал?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот