Закрытие доступа к документу Поступление товаров, если по структуре подчиненности закрыт документ Заказ поставщику
В форме документа Поступление товаров в процедуре ПриОткрытии добавляем процедуру ПроверкаНаЗакрытыйДокумент
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПоступлениеТоваровУслуг.ЗаказПоставщику.Ссылка,
| ПоступлениеТоваровУслуг.ЗаказПоставщику.Статус КАК Статус
|ИЗ
| Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
|ГДЕ
| ПоступлениеТоваровУслуг.Номер = &НомерДокумента";
Запрос.УстановитьПараметр("НомерДокумента", Объект.Номер);
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Если ВыборкаДетальныеЗаписи.Количество() = 0 Тогда
Возврат
КонецЕсли;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Статус = Формат(ВыборкаДетальныеЗаписи.Статус)
КонецЦикла;
Если НЕ РольДоступна(Метаданные.Роли.АдминистраторСистемы) Тогда
Если ВыборкаДетальныеЗаписи.Статус = Перечисления.СтатусыЗаказовПоставщикам.Закрыт Тогда
ЭтаФорма.Доступность = Ложь
КонецЕсли
КонецЕсли
В форме документа Поступление товаров в процедуре ПриОткрытии добавляем процедуру ПроверкаНаЗакрытыйДокумент
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПоступлениеТоваровУслуг.ЗаказПоставщику.Ссылка,
| ПоступлениеТоваровУслуг.ЗаказПоставщику.Статус КАК Статус
|ИЗ
| Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
|ГДЕ
| ПоступлениеТоваровУслуг.Номер = &НомерДокумента";
Запрос.УстановитьПараметр("НомерДокумента", Объект.Номер);
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Если ВыборкаДетальныеЗаписи.Количество() = 0 Тогда
Возврат
КонецЕсли;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Статус = Формат(ВыборкаДетальныеЗаписи.Статус)
КонецЦикла;
Если НЕ РольДоступна(Метаданные.Роли.АдминистраторСистемы) Тогда
Если ВыборкаДетальныеЗаписи.Статус = Перечисления.СтатусыЗаказовПоставщикам.Закрыт Тогда
ЭтаФорма.Доступность = Ложь
КонецЕсли
КонецЕсли
Комментариев нет:
Отправить комментарий