1. user973528 12.09.18 16:28 Сейчас в теме

Можно ли как то выполнять проверку при изменении номера автомобиля?

Есть справочник "Номера автомобилей", есть проверка при записи , то есть если номер существует то программа не даёт записать, но проблема в том что если пользователь записал номер но забыл записать в него "Марку автомобиля" то при повторной записи программа не даёт сохранить, ссылаясь что такой номер уже существует.

&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	
	Запрос =  Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |	НомерАвтомобиля.Наименование
                   |ИЗ
                   |	Справочник.НомерАвтомобиля КАК НомерАвтомобиля
                   |ГДЕ
                   |	НомерАвтомобиля.Наименование = &Наименование";
	
	Запрос.УстановитьПараметр("Наименование", Объект.Наименование);	
	
	Результат = Запрос.Выполнить();
	
	Если Не Результат.Пустой() Тогда
		
		Сообщить("Заполненый номер автомобиля уже существует");
		Отказ = Истина;
		
	КонецЕсли;
		
КонецПроцедуры
Показать
Найденные решения
4. harmer 2 12.09.18 16:36 Сейчас в теме
(1) Добавьте в запрос условие отбора "НомерАвтомобиля.Ссылка <> &Ссылка", чтобы исключить из проверки данные текущего элемента справочника.
Остальные ответы
Избранное Подписка Сортировка: Древо
2. Boneman 183 12.09.18 16:30 Сейчас в теме
(1) значит запрос не должен возвращать номера с пустой маркой автомобиля.
Добавь условие в запрос
user973528; +1 Ответить
3. Boneman 183 12.09.18 16:32 Сейчас в теме
(1) а вообще такие вещи надо с исключениями делать,
чтобы оно либо подтверждение спрашивало, и давало все таки редактировать.
Либо хотябы администратор мог это делать...мало ли, что там потребуется, или какая ситуация нарисуется
user973528; +1 Ответить
4. harmer 2 12.09.18 16:36 Сейчас в теме
(1) Добавьте в запрос условие отбора "НомерАвтомобиля.Ссылка <> &Ссылка", чтобы исключить из проверки данные текущего элемента справочника.
5. user973528 12.09.18 16:40 Сейчас в теме
(4)
(1) Добавьте в запрос условие отбора "НомерАвтомобиля.Ссылка <> &Ссылка", чтобы исключить из проверки данные текущего элемента справочника.


Спасибо, можете пожалуйста подсказать, а что нам даёт это условие НомерАвтомобиля.Ссылка <> &Ссылка" ?
6. user973528 12.09.18 16:41 Сейчас в теме
(4)
НомерАвтомобиля.Ссылка <> &Ссылка"


Точнее что передаётся в "Ссылка"
8. harmer 2 12.09.18 16:44 Сейчас в теме
7. Boneman 183 12.09.18 16:42 Сейчас в теме
(4) так а если в текущем номере номер поменять захотят...проверка должна все равно отработать
9. harmer 2 12.09.18 16:48 Сейчас в теме
(7) Да, и введенный номер будет проверяться по всем элементам справочника, кроме текущего.
По идее если номер меняется, то условие "НомерАвтомобиля.Ссылка <> &Ссылка" и не нужно, так как первое условие ("НомерАвтомобиля.Наименование = &Наименование") уже вернет ложь.
Условие "НомерАвтомобиля.Ссылка <> &Ссылка" как раз необходимо тогда, когда при записи номер не меняется, чтобы не было ситуации, что программа не дает сохранить объект из-за этого же объекта.
10. user973528 12.09.18 16:51 Сейчас в теме
(9) Проверяется в справочнике на наличие одинаковых номеров машин и во время редактирования номера из документа тоже

Теперь даёт записать марку если была не записана
11. bmk74 81 12.09.18 17:30 Сейчас в теме
(10)Все клево конечно, но проверку на ЭтоНовый() Не мешало бы добавить, так как у нового элемента ссылки попросту нет еще
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Санкт-Петербург
зарплата от 100 000 руб.
Полный день

Руководитель группы сервисов ЭДО, ЭЦП и криптографии
Москва
зарплата от 150 000 руб.
Полный день

Руководитель группы интеграций (1С)
Москва
зарплата от 150 000 руб.
Полный день

Руководитель группы сервисов FRM на 1С
Москва
зарплата от 150 000 руб.
Полный день

Консультант-аналитик 1С (ЗУП)
Санкт-Петербург
Полный день