"Поле объекта не обнаружено" в табличном документе #787970


#0 by istenly
Заранее извиняюсь, если вопрос слишком глупый, но не могу понять как с этим справиться. Есть внешняя печатная форма трудового договора, выводящая табличный документ. Хочу использовать данную форму не только для трудового договора, но и для других документов. Формат дат, цифры окладов прописью, и т.п. задаю через Макет.Параметры. Например: Макет.Параметры.ДатаРожденияРаботника = Формат(Выборка.ДатаРожденияРаботника,"ДЛФ=DD")), Макет.Параметры.ТарифнаяСтавкаТекущаяПрописью = ЧислоПрописью(Выборка.ТарифнаяСтавкаТекущая, , "рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2"). Но эти поля есть не во всех документах. И тут возникает ошибка - "Поле объекта не обнаружено". То есть либо формат дат и т.п. надо устанавливать где то в другом месте (где? как?), либо для каждой печатной формы удалять отсутствующие параметры, что лениво. Если можно было бы игнорировать отсутствие параметра в макете, или задавать формат где то еще, то в обработке достаточно было бы только поменять макет, и всё у тебя новый кадровый документ. Подскажите пожалуйста.
#1 by Lolipop
не заработает, пока все руками не исправишь. Если поля нет, а ты к нему обращаешься - вылетит ошибка. Так что удаляй(так все делают). Либо смотри в синтаксис-помощнике "Попытка"
#2 by Lolipop
НО ЭТО НЕПРАВИЛЬНО, при каждой ошибке заключать в конструкцию.
#3 by Lolipop
По-моему проще удалить руками код, который не нужен. Чем макеты менять.
#4 by istenly
Ну может как то можно выборку обработать? Процедуру какую-то сделать? Другие то поля нормально в макет попадают - хочу указываю их в макет, хочу не указываю - никаких ошибок.
#5 by istenly
Lolipop, спасибо, вариант с попыткой сработал. А почему это неправильно?
#6 by breezee
Попытка - турдоемкая для системы операция + если кроме вас будет работать еще кто с кодом - офигеет от того, зачем этот код остался
#7 by h-sp
выборку же вы сами делаете. Какие проблеиы сразу назвать поля в выборке правильно?
#8 by Лодырь
Вы не оценили юмора вопроса: топикстартер имеет две различные печатные формы. И ему влом заполнять для каждой формы параметры. Поэтому он делает чтонибудь аля ЗаполнитьЗначенияСвойств(Макет.Параметры, Выборка) и очень печалится, что параметр ТарифнаяСтавкаТекущаяПрописью не может заполнится, тк приходится вызывать функцию не работающую в запросе. А вызывать надо не всегда, тк параметр есть не у всех печ.форм. А проверять какой макет формируется - ему тоже влом, вот такой вот парадокс. Как в анекдоте про кота наступившего на яйца.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С