Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 18:10

не получается установить соответствие двух реквизитов

Автор User33221, 09 мар 2023, 13:59

0 Пользователей и 1 гость просматривают эту тему.

User33221

Здравствуйте, работаю во внешней обработке, мне нужно заполнить параметр макета "НомерДоверенности". Работать должно так, если поле "За руководителя по приказу" в документе "СчетНаОплатуПокупателю" заполнено тогда заполнить полем "Основание" из справочника "ОснованиеНаПравоПодписи", должно совпадать по имени, организации и должности с документом "СчетНаОплатуПокупателю", а если поле "За руководителя по приказу" пустое, тогда сравнивать уже по полю "Руководитель". В документе стоит руководитель Антонова, а выдает номер доверенности по Астаевой, подскажите пожалуйста как осуществить данную задачу?

Доверенность = Макет.ПолучитьОбласть("Доверенность");

Запрос = Новый Запрос;

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

Запрос.Текст =

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

Результат = Запрос.Выполнить();

Выборка = Результат.Выбрать();

Пока Выборка.Следующий() Цикл

Организация             = Выборка.Организация;
ОрганизацияПодписи      = Выборка.ОрганизацияПодписи;
Руководитель            = Выборка.Руководитель;
Сотрудник         = Выборка.Сотрудник;
ИВС_Подразделение       = Выборка.ИВС_Подразделение;
Подразделение         = Выборка.Подразделение;
Наименование         = Выборка.Наименование;
НомерДоверенности       = Доверенность.Параметры.НомерДоверенности;
Должность               = Выборка.Должность;
ДолжностьРуководителя   = Выборка.ДолжностьРуководителя;
ЗаРуководителяПоПриказу = Выборка.ЗаРуководителяПоПриказу;
   
Наименование = Выборка.Наименование;

Если Не ЗаРуководителяПоПриказу = Справочники.Сотрудники.ПустаяСсылка() Тогда
Доверенность.Параметры.НомерДоверенности = Наименование;
ИначеЕсли Не Руководитель = Справочники.Сотрудники.ПустаяСсылка() Тогда
Доверенность.Параметры.НомерДоверенности = Наименование;
    Иначе Доверенность.Параметры.НомерДоверенности = Неопределено
КонецЕсли;

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск