Форум программистов, компьютерный форум, киберфорум
Наши страницы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.61/61: Рейтинг темы: голосов - 61, средняя оценка - 4.61
Дийнеки
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 947
1

Подвела Попытка

19.10.2010, 10:12. Просмотров 11080. Ответов 5
Метки нет (Все метки)

Есть общая процедура работающая с несколькими док-ми. И она работает с реквизитом, который может отсутствовать у некоторых:


Код ( (Unknown Language)):
Признак = Ложь;
Попытка
Признак = Док.Признак;
Исключение
КонецПопытки;
Так вот выдает ошибку времени выполнения. Не помогла и конструкция:

Код ( (Unknown Language)):
Попытка
Признак = Док[П_Поле];
Я в семерке всегда так делал. Что теперь? Как шустренько и универсально читать рекивзиты. Понимаю, что можно через метаданные проверить наличие реквизита, но громоздко это.
А еще хуже, когда надо записать в документ.
С попыткой легко:

Код ( (Unknown Language)):
Попытка
Док.СуммаНДС = П_СуммаНДС;
Исключение КонецПопытки;
Док.Сумма = П_Сумма;
Я надеюсь, что просто где-то настраивается поведение Попытки. А иначе зачем она нужна?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2010, 10:12
Ответы с готовыми решениями:

Попытка - не пытка
На старости лет решил переметнуться в стан врагов. Перешел в русло написания бизнес-приложений для...

Неудачная попытка создания объекта Word.application
1C v 7.7 Подскажите, пожалуйста, в чем ошибка? Пытаюсь создать объект World, выдается ошибка:...

Попытка создания нового поля в Справочнике и сохранение его
В справочнике Контрагенты есть поля Фактический адрес и Юридический адрес Как они отрабатывают: на...

Транзакция+ попытка
ситуация: в форме созддаем кучу документов ипр. по коду это примерно выглядит так процедура...

Попытка реализации конфигурации учета аренды
Всем доброго времени суток! Я только начал изучать 1С, поэтому не обессудьте за, возможно, глупые...

5
Dortosk
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 553
19.10.2010, 12:55 2
Цитата Сообщение от Дайнеко
через метаданные проверить наличие реквизита, но громоздко это.
Согласен, попробуйте использовать метод "Найти()" для реквизитов объекта.
0
Дийнеки
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 947
19.10.2010, 23:06 3
Спасибо. Сотворил:

Код ( (Unknown Language)):
Если П_Объект.Метаданные().Реквизиты.Найти(П_ИмяРеквизита) = Неопределено Тогда
А что с "Попытка". Выходит, для обращения к реквизитам не годится?
0
Dortosk
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 553
20.10.2010, 17:17 4
С метаданными, к сожалению не работает
0
Myroky
0 / 0 / 0
Регистрация: 15.10.2007
Сообщений: 47
31.10.2010, 23:01 5
Код ( (Unknown Language)):
Признак = Ложь;
ИмяРеквизита = "Признак";
СтруктураЗаполнения = Новый Структура(ИмяРеквизита,Неопределено);
ЗаполнитьЗначениеСвойств(СтруктураЗаполнения,Док);


Признак = ?(СтруктураЗаполнения[ИмяРеквизита] = Неопределено,Признак,СтруктураЗаполнения[ИмяРеквизита] );

Наверное можно как то так, В конфигураторе не проверял но должно отработать.
0
Дийнеки
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 947
02.11.2010, 11:49 6
Цитата Сообщение от Mirage
СтруктураЗаполнения = Новый Структура(ИмяРеквизита,Неопределено);
Спасибо. Хотя пример и не красит 8-ку лаконичностью, но интересно узнать о таком приеме по извлечению данных.
0
02.11.2010, 11:49
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2010, 11:49

Попытка получения неинициализированного значения параметра
Взял конфигурацию, у знакомого, решил переделать под себя Переделал роли в тч и имена и с тех пор...

Попытка получения неинициализированного значения параметра сеанса
Использую модули БСП 2.3.1.76 для написания своей конфигурации. Добавляю по частям. При...

Подвела видюха
Всем привет! Решил сюда обратится по поводу очень неприятной проблемы.Вобщем недавно купил с рук...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.