8.х Подскажите плз.

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем SeregaIRK, 12 сен 2007.

  1. TopicStarter Overlay
    SeregaIRK
    Offline

    SeregaIRK

    Регистрация:
    12 сен 2007
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Какой самый простой способ определить заполнен реквезит документа или нет (в 1С 8.0) (аналог функции "ПустоеЗначение()" в 1С 7.7)?
  2. alex-79
    Offline

    alex-79 Опытный в 1С

    Регистрация:
    21 сен 2006
    Сообщения:
    643
    Симпатии:
    1
    Баллы:
    29
    Тип данных реквизита какой?
  3. TopicStarter Overlay
    SeregaIRK
    Offline

    SeregaIRK

    Регистрация:
    12 сен 2007
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Любой, справочник например или перечисление...
  4. alex-79
    Offline

    alex-79 Опытный в 1С

    Регистрация:
    21 сен 2006
    Сообщения:
    643
    Симпатии:
    1
    Баллы:
    29
    Функции пустое значение нет в 1С 8.0.

    Реквизит = Справочники.Контрагенты.ПустаяСсылка()
    Реквизит = Перечисления.ТипыКонтрагентов.ПустаяСсылка()
    Реквизит = Документы.СчетФактура.ПустаяСсылка()

    ТестСтрока = Неопределено
    ТестДата = Неопределено
  5. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Обычно в глобальном модуле есть функция ЗначениеНеЗаполнено()
    В любой типовой посмотри
  6. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Кстати в 8.1 не удалось ее найти (УТ 10.3) там как-то по-другому.
    А в 8.0 во всех типовых именно такая функция и делает она следующее:

    Код:
    Функция ЗначениеНеЗаполнено(Значение) Экспорт
    
    Результат = Ложь;
    ТипЗначения = ТипЗнч(Значение);
    
    // Сначала примитивные типы
    Если Значение = Неопределено Тогда
    Результат = Истина;
    ИначеЕсли Значение = NULL Тогда
    Результат = Истина;
    ИначеЕсли ТипЗначения = Тип("Строка") Тогда
    Если СокрЛП(Значение) = "" Тогда
    Результат = Истина;
    КонецЕсли; 
    ИначеЕсли ТипЗначения = Тип("Число") Тогда
    Если Значение = 0 Тогда
    Результат = Истина;
    КонецЕсли; 
    ИначеЕсли ТипЗначения = Тип("Дата") Тогда
    Если Значение = Дата('00010101') Тогда
    Результат = Истина;
    КонецЕсли; 
    ИначеЕсли ТипЗначения = Тип("Булево") Тогда
    Результат = Ложь; // Булево будем считать не пустым
    
    //Отдельное определение, так как конструкторов данного типа не существует    
    ИначеЕсли ТипЗначения = Тип("РежимПроведенияДокумента") Тогда
    Если Значение = РежимПроведенияДокумента.Неоперативный или Значение = РежимПроведенияДокумента.Оперативный тогда
    Результат = Ложь;
    КонецЕсли;
    
    // Для остальных будем считать значение пустым, если оно равно
    // дефолтному значению своего типа
    Иначе
    Попытка
    Если Значение = Новый(ТипЗначения) Тогда
    Результат = Истина;
    КонецЕсли; 
    Исключение
    Результат = Ложь;
    КонецПопытки;
    КонецЕсли; 
    
    Возврат Результат;
    
    КонецФункции // ЗначениеНеЗаполнено()
    
    
Похожие темы
  1. jhlk
    Ответов:
    1
    Просмотров:
    746
  2. Сергей5791
    Ответов:
    15
    Просмотров:
    972
  3. Вольный
    Ответов:
    1
    Просмотров:
    297
Загрузка...

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