|
Проверка уникальности наименования в справочнике |
☑ |
0
Масянька
23.04.12
✎
12:45
|
День добрый!
Вопрос: справочник (самописный). Нужно проверять уникальность наименования. Засунула запрос в ПередЗаписью(). Столкнулась с тем, что при редактировании - не дает записать. Получается, что нужно обязательно делать проверку на новый.
Или может есть какой-то более простой путь?
Спасибо.
|
|
1
Ненавижу 1С
гуру
23.04.12
✎
12:46
|
(0) проверить на уникальность среди записей не равных данной ссылки
|
|
2
ILM
гуру
23.04.12
✎
12:51
|
(0) Если только наименование, то после ввода поле наименование.
А при записи сделай попытку в транзакции. Тогда точно запишет только после проверки или наоборот.
|
|
3
Масянька
23.04.12
✎
12:54
|
ЗапросПоДублям.Текст =
"ВЫБРАТЬ
| Теплоходы.Наименование,
| Теплоходы.Примечание
|ИЗ
| Справочник.элТеплоходы КАК Теплоходы
|ГДЕ
| Теплоходы.Наименование <> &Наименование;
ЗапросПоДублям.УстановитьПараметр("Наименование", Наименование);
РезультатЗапросаПоДублям = ЗапросПоДублям.Выполнить();
ВыборкаЗапроса = РезультатЗапросаПоДублям.Выбрать();
КолВоЗаписей = ВыборкаЗапроса.Количество();
Если КолВоЗаписей > 1 Тогда
Предупреждение("Теплоход с таким наименованием (" + Наименование + ") уже есть в справочнике.");
Отказ = Истина;
КонецЕсли;
Заменила "=" на "<>". Теперь пишет все подряд....
|
|
4
Wobland
23.04.12
✎
12:55
|
Если Запрос.Выполнить().Пустой() - ну как-то элегантней что-ли ;)
|
|
5
Ненавижу 1С
гуру
23.04.12
✎
12:55
|
ЗапросПоДублям.Текст =
"ВЫБРАТЬ
| Теплоходы.Наименование,
| Теплоходы.Примечание
|ИЗ
| Справочник.элТеплоходы КАК Теплоходы
|ГДЕ
| Теплоходы.Наименование = &Наименование
|И Теплоходы.Ссылка<>&Ссылка;
ЗапросПоДублям.УстановитьПараметр("Наименование", Наименование);
ЗапросПоДублям.УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапросаПоДублям = ЗапросПоДублям.Выполнить();
|
|
6
Масянька
23.04.12
✎
13:02
|
(4) Спасибо!
(5) При редактировании не дает записать....
|
|
7
Масянька
23.04.12
✎
13:09
|
(5) Извини :) Чуть не доглядела :))) Работает!!!!!!
PS Мужчины! Всем спасибо!!!!!!!!!!!!!
|
|