1с программирование вывести сообщение

Работа с сообщениями пользователю

Для вывода информации пользователю в 1С:Предприятии 8.2 существует специальный механизм сообщений. В этом механизме используется объект встроенного языка СообщениеПользователю . Предполагается, что сообщения выводятся для того, чтобы сообщить пользователю об ошибках. А для информирования о выполняемом действии рекомендуется использовать метод встроенного языка ПоказатьОповещениеПользователя() .

Чтобы понять, как работает новая система сообщений, рассмотрим ситуацию, когда нужно проверить, что некоторые, определенные реквизиты формы заполнены данными.

Платформа позволяет указать, какие реквизиты объектов конфигурации должны автоматически проверяться на заполненность. Если в процессе работы пользователь хочет записать объект, а какой-либо реквизит этого объекта не заполнен, платформа отобразит пользователю сообщение об ошибке. Такое сообщение будет «привязано» к элементу управления в форме. Если щелкнуть на сообщении в окне сообщений, фокус ввода перейдет на указанное поле, а рядом появится информационное окно с текстом сообщения.

Рассмотрим подробно, что при этом происходит и как можно добиться такого же поведения в своем коде. В качестве примера возьмем ситуацию проведения документа.

Когда форма объекта начинает выполнять команду записи, на сервере, куда передается управление, происходит преобразование данных объекта в полноценный объект. При этом, после того, как объект был преобразован, платформа запоминает в общедоступном месте соответствие, состоящее из объекта и имени реквизита формы, который хранит объект в форме. После этого процесс записи и проведения идет своим ходом, до тех пор, пока не появится необходимость отобразить сообщение.

Читайте также:  Чем можно отстирать пятна ржавчины

Когда объекту необходимо сформировать сообщение, он ничего не знает о том, где он «родился и живет». Объект знает лишь, что его реквизит не заполнен. Поэтому он создает новый объект СообщениеПользователю и заполняет его свойство Текст описанием ошибки, а свойство Поле заполняет именем своего реквизита, который не заполнен.

После этого наступает ответственный момент — форме надо предоставить информацию о том, чьё это сообщение и в каком реквизите формы хранится наш объект. Это делается для того, чтобы форма могла впоследствии привязать сообщение к нужному элементу управления. Для установки связи объект данных вызывает у объекта сообщения метод УстановитьДанные() , передавая себя в качестве параметра. При этом происходит поиск среди запомненных ранее соответствий «объект — имя реквизита формы». Если для объекта существует значение имени реквизита формы, метод УстановитьДанные() помещает имя реквизита формы в свойство ПутьКДанным объекта СообщениеПользователю , а ссылка объекта (или ключ записи регистра) помещается в свойство КлючДанных .

Теперь сообщение полностью заполнено и готово к тому, чтобы предстать перед пользователем. После выполнения всех действий на сервере пакет сообщений передается с сервера на клиента и показывается в окне сообщений.

ПРИМЕЧАНИЕ
Пока управление не передано обратно на клиента, можно получить массив сообщений методом глобального контекста ПолучитьСообщенияПользователю() .

При двойном щелчке на сообщении в окне сообщений, форма проверяет заполненность свойства КлючДанных и значение свойства ПутьКДанным . Если в форме присутствует реквизит формы с именем из свойства ПутьКДанным и его ссылка совпадает со значением свойства КлючДанных , делается попытка найти элемент формы связанный с данным реквизитом. Если такой элемент найден, тогда ему передается фокус ввода и рядом появляется информационное окно, которое содержит текст сообщения.

Если свойство КлючДанных заполнено, но в форме отсутствует реквизит с именем из свойства ПутьКДанным , то будет открыта новая форма объекта, в которую будут перенесены все сообщения с таким ключом данных (ссылкой или ключом записи регистра).

Программное создание сообщений

Теперь посмотрим, как можно добиться такого поведения полностью программно.

Первое, что необходимо сделать — зарегистрировать в системе соответствие объекта и имени реквизита формы. Для этого в глобальном контексте реализована функция УстановитьСоответствиеОбъектаИРеквизитаФормы(). Сделать это можно следующим образом:

В данном фрагменте выполняется преобразование объекта из данных формы в реальный объект и устанавливается его соответствие с реквизитом формы по имени «Объект».

Если в дальнейшем требуется создать сообщение, можно сделать это следующим образом:

В этом фрагменте создается новый объект СообщениеПользователю , в котором запоминается Текст сообщения и указывается Поле объекта, ошибка в данных которого вызвала необходимость вывода сообщения. Информация о том, как объект расположен в форме берется из предварительно запомненной пары «Объект/ИмяРеквизитаФормы». В дальнейшем сообщение будет выведено в окно сообщений формы и привязано к соответствующему элементу управления.

ВАЖНО
Привязка объекта к имени реквизита формы действует только для конкретного экземпляр объекта, а не для его ссылки, и живет до тех пор, пока этот экземпляр существует.

Также система позволяет вручную привязать сообщение к форме. Такое может понадобиться, например, при выводе сообщения на стороне клиента, где отсутствуют объекты данных.

ПРИМЕЧАНИЕ
Отметим, что в обоих примерах сообщение, устанавливаемое свойству Текст, указывает строку как 11-ю, а значение, устанавливаемое свойству Поле, указывает на 10-ю. Так сделано потому, что в интерфейсе строки табличных частей начинают нумерацию с 1, а в программном коде — с 0.

Источник

1С 8.3 : Как показать сообщение пользователю? методы: СообщениеПользователю и ПоказатьОповещениеПользователя

В 1С предполагается, что СообщениеПользователю выводятся для того, чтобы сообщить пользователю об ошибках.

А для информирования о выполняемом действии рекомендуется использовать метод встроенного языка ПоказатьОповещениеПользователя().

СообщениеПользователю выводит сообщение пользователю (после окончания обработки) или сохраняет его в очередь, если сообщение невозможно вывести прямо сейчас.

Пример вывода сообщения на клиенте:

При обработке на сервере:

Необходимо зарегистрировать в системе соответствие объекта и имени реквизита формы. Для этого в глобальном контексте реализована функция УстановитьСоответствиеОбъектаИРеквизитаФормы(). Сделать это можно следующим образом:

В данном фрагменте выполняется преобразование объекта из данных формы в реальный объект и устанавливается его соответствие с реквизитом формы по имени «Объект».

Если в дальнейшем требуется создать сообщение, можно сделать это следующим образом:

В этом фрагменте создается новый объект СообщениеПользователю, в котором запоминается Текст сообщения и указывается Поле объекта, ошибка в данных которого вызвала необходимость вывода сообщения. Информация о том, как объект расположен в форме берется из предварительно запомненной пары «Объект/ИмяРеквизитаФормы». В дальнейшем сообщение будет выведено в окно сообщений формы и привязано к соответствующему элементу управления.

Примеры заполнения свойства Поле объекта СообщениеПользователю

ТипШаблонПример
Реквизит ИмяРеквизита Контрагент
Табличная часть ИмяТабличнойЧасти Скидки
Реквизит табличной части ИмяТабличнойЧасти[ИндексСтроки].ИмяРеквизита Номенклатура[10].Количество
Реквизит набора записей [ИндексСтроки].ИмяРеквизита [10].Курс

ПоказатьОповещениеПользователя — оповещение возникает в правом нижнем углу приложения и сообщает о совершенном действии. В течение нескольких секунд оно постепенно гаснет и пропадает. При этом, если навести на оповещение курсор мышки, оно не гаснет, и есть возможность внимательно его прочитать:

Источник

1с программирование вывести сообщение

В течении урока мы: создали базу, создали обработку, создали форму.

Теперь мы расскажем Вам 5 способов сообщений из 1С «Привет, мир!»

Как минимум о двух способах знают не все 🙂

Как и куда писать текст программы?

Переключитесь на закладку окна с формой «Модуль». Вы убедитесь, что у вас там уже есть какой-то текст («Процедура …»).

Если текста нет, то:

  • В толстом клиенте Вы неверно добавили форму к обработке, повторите с начала
  • В тонком клиенте Вы забыли добавить кнопку, повторите с начала.

Внутри текста есть строка:

// Вставить содержимое обработчика

Ваша задача стереть эту строку и вместо нее вписать текст программы. После этого сохранить обработку и открыть ее в режиме предприятия.

При нажатии Выполнить теперь будут выполняться вписанные Вами действия.

А теперь перейдем непосредственно к самим способам!

Сообщение в 1С, способ 1 — самый простой

Итак Вы должны вместо текста «// Вставить содержимое обработчика.» написать текст программы.

Собственно это все 🙂

Сообщение в режиме Предприятие в толстом клиенте будет снизу в окне 1С, в тонком клиенте – справа в окне обработки.

Это самый простой способ, очень широко используемый программистами.

Сообщение в 1С, способ 2 — тоже простой

Собственно это все 🙂

Сообщение в режиме Предприятие в обоих вариантах клиента будет во всплывающем окне.

Сообщение в 1С, способ 3 — появился только в 1С версии 8.2

ПоказатьОповещениеПользователя(«Привет, мир!»,,»В самом деле привет!»);

Этот способ появился только в 1С версии 8.2. Это всплывающее окно в правом нижнем углу экрана, которое гаснет со временем.

Сообщение в 1С, способ 4 — программистский

ВызватьИсключение «Привет, мир!»;

При выполнении любой программы может быть ошибка. Иногда эта ошибка может быть вычислена заранее (например нужно посчитать a = b/c и в момент выполнения программы стало известно, что c равно 0).

В этом случае есть способ сообщить об ошибке таким методом.

Сообщение в 1С, способ 5 — технологичный, только для типовой конфигурации

Программист 1С должен знать не только те способы программирования, которые есть в платформе 1С, но и те, которые есть в типовых конфигурациях.

Новички при попытке дописать любую типовую конфигурацию начинает изобретать велосипед.

Вот прекрасный пример. Эта функция присутствует во многих типовых конфигурациях (только для толстого клиента!). Казалось бы она по результату равна действию способа 1.
Однако нет – в некоторых конфигурациях (например УПП) сообщение об ошибках дублируются в журнал регистрации. Также при дополнительной настройке сообщение выглядит совсем по-другому.

Итак, теперь можете себя почувствовать настоящим программистом!

Именно это и является программированием 1С. Конечно реальное программирование гораздо сложнее и требует массы знаний, но общее представление Вы теперь получили.

Удачи!

P.S. В pdf версии урока даны скриншоты, чтобы было легче сделать собственный опыт.

P.P.S. К уроку даны 5 видео с примерами создания базы для программирования, создания обработки, программирования в толстом и тонком клиенте.

Проголосовать за этот пост:

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Источник

Программирование в 1С для всех

В этой статье рассмотрим один из способов вывода сообщения пользователю 1С – использование объекта СообщениеПользователю. С этим объектом можно работать на тонком, толстом, мобильном и веб-клиенте, а также в серверном контексте 1С 8.3.

Сообщение пользователю на управляемой форме 1С

Разберем, как при помощи этого метода вывести сообщение пользователю на управляемой форме в 1С. Самый простой вариант использования будет следующий:

В этом случае, просто внизу формы выйдет сообщение.

Это самый простой вариант использования этого объекта, и он ни чем не отличается от метода Сообщить. Но, этот объект можно использовать гораздо эффективнее. Например, можно привязать нужное нам сообщение к конкретному реквизиту формы, который выведен на форму в качестве элемента.

Например, у меня на форме документа имеется поле ввода Контрагент, которое связано с одноименным реквизитом документа. Этот реквизит формы Контрагент является подчиненным реквизитом основного реквизита формы Объект.

Сделаем вывод сообщения, которое будет привязано к элементу формы, связанному с реквизитом Контрагент. Для этого следует использовать свойство ПутьКДанным объекта СообщениеПользователю, в котором необходимо указать путь на управляемой форме к этому реквизиту.

В результате, плюсом к обычному сообщению внизу формы выйдет сообщение, которое будет привязано к элементу, связанному с этим реквизитом.

В свойстве Поле объекта СообщениеПользователю можно указать путь к любому реквизиту формы. Например, добавим на форму реквизит Комментарий, который ни как не будет связан с основным реквизитом формы.

Мы можем вывести сообщение, которое будет привязано к элементу, связанному с этим реквизитом.

В результате, сообщение будет привязано к элементу формы, связанного с реквизитом формы Комментарий.

Также, сообщение можно привязать к нужной колонке нужной строки табличной части на форме. В моем примере есть табличная часть Товары с колонкой Количество.

Сделаем проверку на то, что значение в этой колонке пустое.

В результате выйдет сообщение, привязанное к определенной строке нужной колонки.

Вывести сообщение пользователю 1С

Пойдем дальше! Иногда требуется выполнить проверку заполнения того или иного реквизита при проведении документа. В последних платформах 1С следует это делать в обработчике ОбработкаПроверкиЗаполнения, этот обработчик создается в модуле объекта, и срабатывает перед проведением документа.

В нем необходимо делать проверки на заполнение реквизитов документа.

Если мы попробуем провести документ «Продажа товара» с пустым полем «Контрагент», то выйдет сообщение.

Можно сделать проще:

Результат будет тот же самый. Что делает метод УстановитьДанные? Этот метод автоматически устанавливает свойства ПутьКДанным и КлючДанных на основании переданного в него объекта.

Более подробно и основательно разработка в 1С дается в моей книге: «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму
.

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Источник

Оцените статью