8.х Вроде бы всё верно, но ничего не работает....

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

  1. TopicStarter Overlay
    Letos
    Offline

    Letos Опытный в 1С

    Регистрация:
    23 ноя 2009
    Сообщения:
    218
    Симпатии:
    0
    Баллы:
    26
    Имеется следующий код
    Код:
    	ЭФ=ЭлементыФормы;
    ЭФ.Индикатор.Видимость=Истина;
    Процент=ЭФ.Индикатор.Значение;
    
    Если ЭФ.ВедениеВзаиморасчета.Значение="" Тогда
    Предупреждение("Не выбран вид взаиморасчета",3);
    
    Иначе
    Процент=15;
    
    
    Где
    Код:
    ВедениеВзаиморасчета
    
    - это ПолеВвода тип данных Перечисления.ВедениеВзаиморасчета. Загружаю обработку, оставляю поле пустым, окно не выводится, если ставлю условие не равно, то тогда окно выдается при любых условиях.
    И второе, индикатору не присваивается значение 15, но если написать
    Код:
    ЭФ.Индикатор.Значение=15;
    
    тогда все присваивается, но хотелось бы узнать, почему через переменную это не происходит?
  2. duh
    Offline

    duh Опытный в 1С

    Регистрация:
    21 янв 2009
    Сообщения:
    74
    Симпатии:
    0
    Баллы:
    26
    используй ЗначениеЗаполнено или ПустаяСсылка
  3. Доктор Руфус Бейли
    Offline

    Доктор Руфус Бейли Опытный в 1С

    Регистрация:
    7 апр 2010
    Сообщения:
    277
    Симпатии:
    0
    Баллы:
    26
    Вам уже ответили, но я поясню подробнее.

    Вы сравниваете тип "перечисление" с типом "строка", потому у вас ни под каким соусом не получится значение "истина" при таком сравнении.
  4. Доктор Руфус Бейли
    Offline

    Доктор Руфус Бейли Опытный в 1С

    Регистрация:
    7 апр 2010
    Сообщения:
    277
    Симпатии:
    0
    Баллы:
    26
    По второму вопросу: вы присваиваете значение "15" не индикатору, а переменной, которая равна индикатору. То есть, на индикатор вы не влияете ни коим образом.

    Правильно этот код выглядит как-то так:

    Код:
    ЭФ=ЭлементыФормы;
    ЭФ.Индикатор.Видимость=Истина;
    Процент=ЭФ.Индикатор.Значение;
    Если ЭФ.ВедениеВзаиморасчета.Значение= Перечисления.ВедениеВзаиморасчета.ПустаяСсылка() Тогда
    Предупреждение("Не выбран вид взаиморасчета",3);
    Иначе       
    Процент=15;
    КонецЕсли;
    ЭФ.Индикатор.Значение = Процент;
    
    
    
    
  5. TopicStarter Overlay
    Letos
    Offline

    Letos Опытный в 1С

    Регистрация:
    23 ноя 2009
    Сообщения:
    218
    Симпатии:
    0
    Баллы:
    26
    Код:
    Процент=15;
    КонецЕсли;
    ЭФ.Индикатор.Значение = Процент;
    
    
    Это как-то бесмысленно, туда сюда вертеть одним и темже. лучше будет сделать
    Код:
    ЭФ.Индикатор.Значение = 15;
    КонецЕсли;
    
    
    Хотя для некоторых случаев ваше решение будет более верное.
  6. Доктор Руфус Бейли
    Offline

    Доктор Руфус Бейли Опытный в 1С

    Регистрация:
    7 апр 2010
    Сообщения:
    277
    Симпатии:
    0
    Баллы:
    26
    Я так сделал для наглядности.

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