8.х Вопрос по коду

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем Алексей1989, 18 дек 2011.

  1. TopicStarter Overlay
    Алексей1989
    Offline

    Алексей1989 Опытный в 1С

    Регистрация:
    15 июл 2011
    Сообщения:
    613
    Симпатии:
    0
    Баллы:
    26
    Добрый день. Помогите внести ясность в понимание следующего кода, а именно, мне не понятно, можно ли поле Вид сравнивать не с предопределенным элементом, а со строковым значением, т.е. 'частное лицо'?
    Код:
    ГДЕ Контрагенты. Вид = ЗНАЧЕНИЕ (Перечисление.ВидыКонтрагентоа.ЧастноеЛицо)
    
  2. godeval
    Offline

    godeval

    Регистрация:
    28 окт 2011
    Сообщения:
    37
    Симпатии:
    0
    Баллы:
    1
    Так будет именно со строкой сравнивать
    ГДЕ Контрагенты. Вид = ""Частное лицо""
  3. uza
    Offline

    uza 1С, VBA (EXCEL), VB (.NET + WEB)

    Регистрация:
    10 июл 2007
    Сообщения:
    1.845
    Симпатии:
    1
    Баллы:
    29
    В данном случае нельзя. Т.к. ВИД - у Вас значение ПЕРЕЧИСЛЕНИЯ.
    Был бы это справочник можно было бы так
    ГДЕ Контрагенты.Вид.Наименование = ""ЧАСТНОЕ ЛИЦО""

    Я бы подумал об обходных конструкциях.

    Пример:
    Код:
    Запрос1С = Новый Запрос;
    Запрос1С.Текст = 
    "ВЫБРАТЬ
    |    Контрагенты.Ссылка
    |ИЗ Справочник.Контрагенты КАК Контрагенты
    |ГДЕ
    |    ((Контрагент.Вид = ЗНАЧЕНИЕ(Перечисление.ВидыКонтр.Частник))И(&БратьФизиков))
    |ИЛИ
    |    ((Контрагент.Вид = ЗНАЧЕНИЕ(Перечисление.ВидыКонтр.Юрик))И(&БратьЮриков))
    ";
    
    Если ЧетаТамНадоБратьФизиков Тогда
    Запрос1С.УстановитьПараметр("БратьФизиков", Истина);
    Запрос1С.УстановитьПараметр("БратьЮриков", Ложь);
    Иначе
    Запрос1С.УстановитьПараметр("БратьФизиков", Ложь);
    Запрос1С.УстановитьПараметр("БратьЮриков", Истина);
    КонецЕсли;
    
    
    
    

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