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

Выдать ошибку на заполнение одинаковых данных "двойников"

Автор Panacea531, 10 ноя 2022, 23:27

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

Panacea531

Ребят приветствую , не могли пожалуйста подсказать как правильно реализовать одну функцию. У меня имеется регистр сведений "Расписание" , вот я к примеру его заполнил (1 скрин) нажал "записать и закрыть" , и начинаю заполнять второй и допустип ввел туже самую группу ,пару и дату можно ли как-нибудь сделать чтобы три этих реквизита проверялись на так скажем "двойников" и выдавалась ошибка что такие данные уже имеются?(как втрой скрин) 

LexaK

Panacea531, добавьте процедуру ПроверкаЗаписи(...) вызывайте ее в событии (Записать() или как там)
в ней запрос к регистру, по указанным параметрам, если результат запроса пустой, то все хорошо, такой записи нет, можно добавлять,
иначе выдать Сообщение о дублировании!
если помогло нажмите: Спасибо!

Panacea531

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

&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
   
     Передаваемоезначение=Элементы.Группа;
     Передаваемоезначение1=Элементы.ДатаЗанятия; 
     Передаваемоезначение2=Элементы.Пара;
     
     Запрос = Новый Запрос;
    Запрос.Текст =
   
       "ВЫБРАТЬ
       |    Расписание.Пара КАК Пара,
       |    Расписание.Группа КАК Группа,
       |    Расписание.ДатаЗанятия КАК ДатаЗанятия
       |ИЗ
       |    РегистрСведений.Расписание КАК Расписание
       |ГДЕ
       |    Расписание.Пара = &НоваяПара
       |    И Расписание.Группа <> &Группа
       |    И Расписание.ДатаЗанятия <> &ДатаЗанятия";
     
      Запрос.УстановитьПараметр("НоваяПара", Передаваемоезначение2);
      Запрос.УстановитьПараметр("Группа", Передаваемоезначение);
      Запрос.УстановитьПараметр("ДатаЗанятия", Передаваемоезначение1);
     
     
     
       Результат = Запрос.Выполнить();
   
    Если НЕ Результат.Пустой() Тогда
        Сообщить("Внимание,дублирование!");
        Отказ = Истина;
       
    КонецЕсли;
   
КонецПроцедуры


и выдает такую ошибку когда нажимаю "записать и закрыть"



Ошибка при вызове метода контекста (Выполнить)
{РегистрСведений.Расписание.Форма.ФормаЗаписи.Форма(61)}:       Результат = Запрос.Выполнить();
по причине:
{(8, 18)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
 неограниченной длины и поля несовместимых типов.
Расписание.Пара <<?>>= &НоваяПара

по причине:
{(8, 18)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
 неограниченной длины и поля несовместимых типов.
Расписание.Пара <<?>>= &НоваяПара
 

LexaK

Panacea531, у вас ясная и однозначная ошибка
Расписание.Пара <<?>>= &НоваяПара
проверяйте типы данных, что-то одно из них имеет тип Неограниченная строка,

 
если помогло нажмите: Спасибо!

Теги:

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

Рейтинг@Mail.ru

Поиск