PDA

Просмотр полной версии : Вопрос по синтаксису



ОтецСергий
30.11.2016, 10:20
В Процедуре ПередЗаписью первое условие работает, а второе нет:


&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
Если Объект.ЗаявкаТ <> Истина И Не ЗначениеЗаполнено(Объект.Д атаО) Тогда
Сообщить ("Не заполнено поле Дата окончания тендера", СтатусСообщения.Важное);
Отказ = Истина;
Возврат;
КонецЕсли;
Сообщить (Объект.Результат, СтатусСообщения.Важное);
Если Объект.Результат = "Отменить" И Не ЗначениеЗаполнено(Объект.П ричинаО) Тогда
Сообщить ("Не заполнено поле Причина отказа", СтатусСообщения.Важное);
Отказ = Истина;
Возврат;
КонецЕсли;
КонецПроцедуры

При чем строка
Сообщить (Объект.Результат, СтатусСообщения.Важное);
работает и слово "Отменить" выводит.

Возможно дело в Объект.Результат = "Отменить" ?
реквизит Результат в форме выбирается из справочника Результат (Наименование).
Значение "Отменить" там есть, может синтаксис?

ОтецСергий
30.11.2016, 11:49
Всё заработало! Всем спасибо!
Дело было в синтаксисе. Необходимо было использовать Строка(Объект.Результат)

Анатолик
08.12.2016, 14:46
ЗначениеЗаполнено(Объект.П ричинаО) а если в строке будет пробел? Вроде строка не заполнена, а код не отработает. По поводу "Строка(Объект.Результат)", я всегда пишу СокрЛП (Объект.Результат), это отсекает пробелы и одновременно привозит значение к строковому типу. Это касается и 1-ого приведенного мной примера, если в Объект.ПричинаО, пробел.

Анатолик
08.12.2016, 14:48
Проверь как отработает "Не ЗначениеЗаполнено(Объект.Д атаО)" если будет пустая дата, думаю правильнее будет "Если Объект.ДатаО<>'00000000' "