|
"Поле объекта не обнаружено" в табличном документе | ☑ | ||
---|---|---|---|---|
0
istenly
24.12.16
✎
14:05
|
Заранее извиняюсь, если вопрос слишком глупый, но не могу понять как с этим справиться. Есть внешняя печатная форма трудового договора, выводящая табличный документ. Хочу использовать данную форму не только для трудового договора, но и для других документов. Формат дат, цифры окладов прописью, и т.п. задаю через Макет.Параметры. Например:
Макет.Параметры.ДатаРожденияРаботника = Формат(Выборка.ДатаРожденияРаботника,"ДЛФ=DD")), Макет.Параметры.ТарифнаяСтавкаТекущаяПрописью = ЧислоПрописью(Выборка.ТарифнаяСтавкаТекущая, , "рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2"). Но эти поля есть не во всех документах. И тут возникает ошибка - "Поле объекта не обнаружено". То есть либо формат дат и т.п. надо устанавливать где то в другом месте (где? как?), либо для каждой печатной формы удалять отсутствующие параметры, что лениво. Если можно было бы игнорировать отсутствие параметра в макете, или задавать формат где то еще, то в обработке достаточно было бы только поменять макет, и всё у тебя новый кадровый документ. Подскажите пожалуйста. |
|||
1
Lolipop
24.12.16
✎
14:13
|
(0) не заработает, пока все руками не исправишь. Если поля нет, а ты к нему обращаешься - вылетит ошибка. Так что удаляй(так все делают). Либо смотри в синтаксис-помощнике "Попытка"
|
|||
2
Lolipop
24.12.16
✎
14:15
|
Можешь написать
Попытка Макет.Параметры.ДатаРожденияРаботника = Формат(Выборка.ДатаРожденияРаботника,"ДЛФ=DD")); Макет.Параметры.ТарифнаяСтавкаТекущаяПрописью = ЧислоПрописью(Выборка.ТарифнаяСтавкаТекущая, ,); Исключение КонецПопытки НО ЭТО НЕПРАВИЛЬНО, при каждой ошибке заключать в конструкцию. |
|||
3
Lolipop
24.12.16
✎
14:17
|
По-моему проще удалить руками код, который не нужен. Чем макеты менять.
|
|||
4
istenly
24.12.16
✎
23:50
|
Ну может как то можно выборку обработать? Процедуру какую-то сделать? Другие то поля нормально в макет попадают - хочу указываю их в макет, хочу не указываю - никаких ошибок.
|
|||
5
istenly
25.12.16
✎
01:04
|
Lolipop, спасибо, вариант с попыткой сработал. А почему это неправильно?
|
|||
6
breezee
25.12.16
✎
02:06
|
(5) Попытка - турдоемкая для системы операция + если кроме вас будет работать еще кто с кодом - офигеет от того, зачем этот код остался
|
|||
7
h-sp
25.12.16
✎
05:33
|
(4) выборку же вы сами делаете. Какие проблеиы сразу назвать поля в выборке правильно?
|
|||
8
Лодырь
25.12.16
✎
06:16
|
(7) Вы не оценили юмора вопроса: топикстартер имеет две различные печатные формы. И ему влом заполнять для каждой формы параметры. Поэтому он делает чтонибудь аля
ЗаполнитьЗначенияСвойств(Макет.Параметры, Выборка) и очень печалится, что параметр ТарифнаяСтавкаТекущаяПрописью не может заполнится, тк приходится вызывать функцию не работающую в запросе. А вызывать надо не всегда, тк параметр есть не у всех печ.форм. А проверять какой макет формируется - ему тоже влом, вот такой вот парадокс. Как в анекдоте про кота наступившего на яйца. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |