Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Обработчик проверки заполнения          
Vofka Подменю пользователя
сообщение 28.02.11, 10:06
Сообщение #1

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

1С Предприятие 8.2. Обработчик проверки заполнения

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

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) 
КонецПроцедуры


Здесь параметр Отказ (тип Булево) отвечает за возможность дальнейшей работы программы после проверки заполнения, а в параметре ПроверяемыеРеквизиты(тип Массив) содержатся реквизиты объекта, которые система будет проверять на заполненность. Напомним, что в версии 1С Предприятие 8.2 появилось возможность на уровне свойств реквизитов объекта устанавливать свойство Проверка заполнения. Так вот в массив ПроверяемыеРеквизиты по умолчанию система помещает реквизиты с установленным свойством «Выдавать ошибку». Однако разработчик может сам некоторые реквизиты добавить в массив или удалить из него в зависимости от каких-либо условий:

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)

  Клиент = ПроверяемыеРеквизиты.Найти("Контрагент");

  Если Клиент<>Неопределено тогда

   ПроверяемыеРеквизиты.Удалить(Клиент);

  конецесли;

  ПроверяемыеРеквизиты.Добавить("Склад");

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


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

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)

ПроверяемыеРеквизиты.Очистить();

Если Контрагент.ПометкаУдаления Тогда

  Отказ = Истина;

  Сообщение = Новый СообщениеПользователю;

  Сообщение.Текст = "Нельзя указывать контрагента, помеченного на удаление!";

  Сообщение.Поле = "Контрагент";

  Сообщение.УстановитьДанные(ЭтотОбъект);

  Сообщение.Сообщить();


КонецЕсли;

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


Далее рассмотрим, когда вызывается данный обработчик. Это зависит от типа объекта и его свойств. Так для, например, для справочника обработчик вызывается перед записью объекта; для документа: если разрешено проведение - при проведении, иначе при записи; для обработки : при вызове стандартных команд "OK", Да". Подробно это описано во встроенной справке. Но также есть возможность вызвать данный обработчик в произвольный момент, используя метод объекта ПроверитьЗаполнение(). Например, определить команду Проверить в форме документа:

&НаКлиенте

Процедура Проверить(Команда)

  ПроверитьНаСервере();

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



&НаСервере

Процедура ПроверитьНаСервере()

  Документ = РеквизитФормыВЗначение("Объект");

  Документ.ПроверитьЗаполнение();

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


Автор: Борис Захаров

Спасибо сказали: mister-x,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 20:55
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!