Имя: Пароль:
1C
1С v8
Просмотр справочника на дубликаты
0 wambo
 
19.05.13
22:56
Собственно нельзя создавать две записи в справочнике с одинаковым номенклатурным номером, я пытаюсь сделать так:

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

но получается, что если я открою для редактирования форму справочника, мне не даст сохранится, т.к. он якобы считает что такое уже есть...
1 HEKPOH
 
19.05.13
23:02
условие в запрос добавь на неравенству записываемого элемента
2 wambo
 
19.05.13
23:03
(1)
не понял, т.е.?
3 HEKPOH
 
19.05.13
23:05
ВЫБРАТЬ
     Номенклатура.Ссылка
  ИЗ
     Справочник.Номенклатура КАК Номенклатура
  ГДЕ
     Номенклатура.Артикул = &Артикул
     И Номенклатура.Ссылка <> &Ссылка
4 wambo
 
19.05.13
23:08
(3)
ну и получается ещё Если Результат.Количество() = 1 заменить на 0, вроде ок всё, спс
5 HEKPOH
 
19.05.13
23:13
и на равенство сравнивать неправильно.

Результат = Запрос.Выполнить();
Если НЕ Результат.Пустой() Тогда
сообщить("карамба!");
КонецЕсли;
6 wambo
 
19.05.13
23:14
(5)
ок, приму ко вниманию