Как проверить заполнен ли объект в другом документе?

1. user973528 18.06.18 12:36 Сейчас в теме
Есть документ Договоры у которого реквизиты Объект.Подписан и Объект.ОригиналПолучен.

Есть документ "Договоры контрагентов", нужно чтобы при выборе договоров учитывалось заполнение этих объектов, что если они не заполнены выводились сообщения


&НаСервере
Функция ОригиналПодписан()

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


Запрос.УстановитьПараметр("ОригиналПолучен", Истина);

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

Для Каждого Стр Из ТЗ Цикл
Если Стр.Ссылка.Альфа_Абонентский Тогда

Возврат Истина;

КонецЕсли;
КонецЦикла;

//Возврат Истина;

КонецФункции


&НаСервере
Функция Подписан()

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

Запрос.Текст = "ВЫБРАТЬ
| АРБИС_ДоговорНаКомплексноеОбслуживание.Ссылка
|ИЗ
| Документ.АРБИС_ДоговорНаКомплексноеОбслуживание КАК АРБИС_ДоговорНаКомплексноеОбслуживание
|ГДЕ
| АРБИС_ДоговорНаКомплексноеОбслуживание.Подписан = &Подписан";


Запрос.УстановитьПараметр("Подписан",Истина);


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

Для Каждого Стр Из ТЗ Цикл

Если Стр.Ссылка.Альфа_Абонентский Тогда
Возврат Истина;

КонецЕсли;
КонецЦикла;

//Возврат Ложь;



КонецФункции



&НаКлиенте
Процедура ДоговорКонтрагентаПриИзменении(Элемент)

Если Подписан() = Ложь Тогда

ЭтаФорма.ТолькоПросмотр = Истина;

Сообщить("Договор не подписан!");

КонецЕсли;

Если ОригиналПодписан() = Ложь Тогда

ЭтаФорма.ТолькоПросмотр = Истина;

Сообщить("Оригинал договора не получен, когда будет???");

КонецЕсли;

КонецПроцедуры
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
6. Boneman 298 18.06.18 13:08 Сейчас в теме +0.03 $m
(5) так ссылка и передается и используется в функции в качестве параметра.
Я не знаю только как она там у тебя обзывается, предположил - что раз в процедуре "договорКонтрагентаПриИзменении", значит и реквизит называется "ДоговорКонтрагента"
и параметром передается
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. gradi 5 18.06.18 12:41 Сейчас в теме
Поместите код в соответствующие тэги. Так читать сложно.
3. user973528 18.06.18 12:45 Сейчас в теме
4. Boneman 298 18.06.18 12:55 Сейчас в теме
(3)
что-то перемудрил ты
в процедуре надо просто проверить соответствует ли выбранный договор условиям. Тут даже запрос никакой не нужен.


Делаем функцию
&НаСервереБезКонтекста
Функция ДоговорСоответствует(ДоговорКлиента)
Если ДоговорКлиента.ОригиналПодписан и ДоговорКлиента.ОригиналПолучен тогда
Возврат Истина;
Иначе
Возврат Ложь;
КонецЕсли;
КонецФункции
Показать

а в твою
Процедура ДоговорКонтрагентаПриИзменении(Элемент)

Если ДоговорСоответствует(Объект.ДоговорКонтрагента)  Тогда 
..делаем что надо
иначе
...информируем пользователя
КонецЕсли;
5. user973528 18.06.18 13:05 Сейчас в теме
(4) А ссылку на документ нужно передавать? Как программа поймет что я беру из другого документа объекты?
6. Boneman 298 18.06.18 13:08 Сейчас в теме +0.03 $m
(5) так ссылка и передается и используется в функции в качестве параметра.
Я не знаю только как она там у тебя обзывается, предположил - что раз в процедуре "договорКонтрагентаПриИзменении", значит и реквизит называется "ДоговорКонтрагента"
и параметром передается
7. user973528 18.06.18 13:21 Сейчас в теме
(6) Отлично, выручил. Спасибо большое
Оставьте свое сообщение

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