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

Проверка реквизита справочника

Автор AlexKag, 04 окт 2012, 17:32

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

AlexKag

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

mixqn

вставьте в процедуру перед записью в модуле объекта проверку. проверка должна запросом искать элементы с таким же значением реквизита, если результат запроса не пустой - выдавать сообщение об ошибке, устанавливать Отказ в Истину (так примерно: Отказ=Истина;) и запись будет отменена.

AlexKag

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

Процедура ПередЗаписью(Отказ)
   Кол=0;
   Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   Студенты.НомерЗачетнойКнижки
      |ИЗ
      |   Справочник.Студенты КАК Студенты
      |ГДЕ
      |   Студенты.НомерЗачетнойКнижки = &НомерЗачетнойКнижки";

   Запрос.УстановитьПараметр("НомерЗачетнойКнижки", НомерЗачетнойКнижки);

   Результат = Запрос.Выполнить();

   ВыборкаДетальныеЗаписи = Результат.Выбрать();

   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
      Если ВыборкаДетальныеЗаписи = НомерЗачетнойКнижки Тогда
      Кол=Кол+1;
      КонецЕсли;
   КонецЦикла;
   Если Кол>=1 Тогда
      Отказ=Истина;
      Сообщить("Данный номер зачетной книжки уже существует!");
   КонецЕсли;
   
КонецПроцедуры

СветланаCC

Вот это лишнее

ВыборкаДетальныеЗаписи = Результат.Выбрать();

   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
      Если ВыборкаДетальныеЗаписи = НомерЗачетнойКнижки Тогда
      Кол=Кол+1;
      КонецЕсли;
   КонецЦикла;
   Если Кол>=1 Тогда
      Отказ=Истина;
      Сообщить("Данный номер зачетной книжки уже существует!");
   КонецЕсли;


Просто пишите и все....

Если Результат.Пустой() = Ложь Тогда
    Отказ = Истина;
КонецЕсли;
Тазовод)

Теги:

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

Рейтинг@Mail.ru

Поиск