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

Тема в разделе "1C и всё что с ней связано", создана пользователем Дайнеко, 20 окт 2010.

  1. Дайнеко

    Дайнеко Well-Known Member
    1C Team

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

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

    Darlock Well-Known Member
    1C Team

    Регистрация:
    4 янв 2008
    Сообщения:
    558
    Симпатии:
    0
    Согласен, попробуйте использовать метод "Найти()" для реквизитов объекта.
     
  3. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Спасибо. Сотворил:
    Код ( (Unknown Language)):
    Если П_Объект.Метаданные().Реквизиты.Найти(П_ИмяРеквизита) = Неопределено Тогда
    А что с "Попытка". Выходит, для обращения к реквизитам не годится?
     
  4. Darlock

    Darlock Well-Known Member
    1C Team

    Регистрация:
    4 янв 2008
    Сообщения:
    558
    Симпатии:
    0
    С метаданными, к сожалению не работает
     
  5. Mirage

    Mirage Гость

    Код ( (Unknown Language)):
    Признак = Ложь;
    ИмяРеквизита = "Признак";
    СтруктураЗаполнения = Новый Структура(ИмяРеквизита,Неопределено);
    ЗаполнитьЗначениеСвойств(СтруктураЗаполнения,Док);


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

    Наверное можно как то так, В конфигураторе не проверял но должно отработать.
     
  6. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Спасибо. Хотя пример и не красит 8-ку лаконичностью, но интересно узнать о таком приеме по извлечению данных.
     
Загрузка...
Похожие Темы - Подвела Попытка
  1. vitfil
    Ответов:
    4
    Просмотров:
    2.210
  2. promka
    Ответов:
    0
    Просмотров:
    4.935

Поделиться этой страницей