Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 08:07

Вывод сообщения в отчете

Автор rom-x, 06 дек 2010, 15:49

0 Пользователей и 1 гость просматривают эту тему.

rom-x

Здравствуйте!
Пример взят из книги 1С Предприятие - эффективное программирование.(Усиков)(2004), реализую его в 1С: Предприятие 8.2
Итак нужно чтобы при выборе какого либо переключателя и нажатию кнопки вывести(кнопка это команда) выводилось сообщение согласно листингу.

Процедура Вывести ()
    Если способ = 1 Тогда
        Предупреждение ("Hello World!");
    ИначеЕсли способ = 2 Тогда
        Сообщить ("Hello World!", "!!!");
    Иначе
        Предупреждение ("Выберите, пожалуйста, способ "+
        "выдачи приветствия.");
    КонецЕсли;
КонецПроцедуры

почему то всегда выдает один и тот же текст не зависимо от варианта выбора?
&НаКлиенте
Процедура Вывести(Команда)
Если 1 Тогда
Предупреждение ("Hello World!!!");
ИначеЕсли 2 Тогда
Сообщить ("Hello World!", "!!!");
Иначе
Предупреждение ("Выберите, пожалуйста, способ "+
"выдачи приветствия.");
КонецЕсли;
КонецПроцедуры

либо что-то с листингом не так, либо в свойствах реквизита не то поставил, либо надо другое что-то сделать.


В общем понял, что надо как-то сослаться на значение реквизита, подскажите пожалуйста как сделать это в коде?
пробовал так:
Если Отчет.Реквизит1.СписокВыбора = 1 Тогда

и так Если Отчет.Реквизит1.СписокВыбора.Значение = 1 Тогда

выдает следующее:
{Отчет.Отчет1.Форма.ФормаОтчета.Форма(3)}: Значение не является значением объектного типа (СписокВыбора)
   Если Отчет.Реквизит1.СписокВыбора.Значение = 1 Тогда

markantonio

&НаКлиенте
Процедура Сформировать(Команда)
   Если Реквизит1 = 1 Тогда
      Предупреждение ("Hello World!!!");
    ИначеЕсли Реквизит1 = 2 Тогда
        Сообщить ("Hello World!");
    Иначе
        Предупреждение ("Выберите, пожалуйста, способ "+
        "выдачи приветствия.");
    КонецЕсли;

КонецПроцедуры


это сама процедура.
и обрати внимание на скрин - где находится реквизит1

rom-x

Цитата: markantonio от 07 дек 2010, 15:08
&НаКлиенте
Процедура Сформировать(Команда)
   Если Реквизит1 = 1 Тогда
      Предупреждение ("Hello World!!!");
    ИначеЕсли Реквизит1 = 2 Тогда
        Сообщить ("Hello World!");
    Иначе
        Предупреждение ("Выберите, пожалуйста, способ "+
        "выдачи приветствия.");
    КонецЕсли;

КонецПроцедуры


это сама процедура.
и обрати внимание на скрин - где находится реквизит1
большое спасибо! все заработало!
в общем надо было поставить тип числовой, а вот почему длинна 1 ? и есть ли разница находиться ли он в отчете или же в не него, как на скрине?

markantonio

Цитата: rom-x от 07 дек 2010, 20:18
...а вот почему длинна 1 ? и есть ли разница находиться ли он в отчете или же в не него, как на скрине?

длина 1 не принципиально, можно хоть 10

на скрине это реквизит формы - поэтому можно им управлять как реквизитом, а если это элемент формы (когда справа его нету) - такие действия не возможны.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск