Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ошибка при проверке группы в регистре
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
alexk
Добрый вечер. Такая ситуация. В регистре сведений есть запись о курсанте и его группе. Делаю документ с 2-я реквизитами -Курсант и Группа. Так вот, как сделать так, чтобы если в реквизите группа была выбрана группа, которая не подходит данному выбранному курсанту (то если в регистре у него одна группа, а в документе ставим ему совсем другую группу), то проведение документа запрещалось бы. Сделал запрос на проверку группы в регистре, но почему то даже при правильно выбранной группе, все равно документ не проводит? Скажите пожалуйста в чем ошибка?

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

Функция Проверка()
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    РегистрЗаявленийСрезПоследних.Группа
        |ИЗ
        |    РегистрСведений.РегистрЗаявлений.СрезПоследних КАК РегистрЗаявленийСрезПоследних
        |ГДЕ
        |    РегистрЗаявленийСрезПоследних.Курсант = &Курсант";

    Запрос.УстановитьПараметр("Курсант", Объект.Курсант);
    Результат = Запрос.Выполнить();
    
   Если  Результат <> Объект.Группа Тогда
       Возврат Истина
            Иначе
         Возврат Ложь;
    КонецЕсли;    
КонецФункции
Vofka
Функция Проверка()

    Запрос = Новый Запрос;
    Запрос.Текст = "
    |ВЫБРАТЬ
    |    РегистрЗаявленийСрезПоследних.Группа
    |ИЗ
    |    РегистрСведений.РегистрЗаявлений.СрезПоследних КАК РегистрЗаявленийСрезПоследних
    |ГДЕ
    |    РегистрЗаявленийСрезПоследних.Курсант = &Курсант";

    Запрос.УстановитьПараметр("Курсант", Объект.Курсант);
    Результат = Запрос.Выполнить().Выбрать();
    Результат.Следующий();

    Если Результат.Группа <> Объект.Группа Тогда
        Возврат Истина;
    Иначе
        Возврат Ложь;
    КонецЕсли;    
КонецФункции
alexk
Спасибо, все работает!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.