Хочу попросить помощи, в общем есть справочник "ДоговорыКонтрагентов" и надо провести проверку на заполнение "Номера"(Номер договора). Просто если два менеджера зайдут в документ "ЗаказКлиента" и поставят одинаковые номера, то будет не хорошо и хочется проверку поставить, что бы при ПриЗаписи проверяла объект.номер и поиск по справочнику по реквизиту и выдавало ошибку. Вот код, вроде выдает ошибку, но выдает даже на любой номер ,какой бы я не ставил, даже если этого номера совсем нет, все равно не дает провести
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
РезултатПоиска = Справочники.ДоговорыКонтрагентов.НайтиПоРеквизиту("Номер",Объект.Номер).ПолучитьОбъект();
Если Строка(РезултатПоиска.Номер) = Строка.(Объект.Номер) Тогда
ТекстОшибки = НСтр("ru='ОТКАЗ.'");
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
ТекстОшибки,
Объект.Ссылка,
"Объект.Номер",
,
Отказ);
КонецЕсли;
КонецПроцедуры
1. ПриЗаписи ссылка на текущий объект уже существует, т. е. такой поиск всегда найдет как минимум себя.
2. Для разных организаций / контрагентов / дат может быть одинаковый номер в договоре.
а куда тогда лучше закинуть текущее исключение, что бы он до записи проверил?
ПРосто на каждый заказ, один номер, номера не дублируются
Andrian @ Today, 14:53 необходимо зарегистрироваться для просмотра ссылки
,
Куда закинуть - зависит от многих факторов. Если проверки тяжелые, то следует избегать их в момент транзакции. Иначе - дело вкуса.
Тут речь о том, что необходимо построить нормальный запрос, внести туда все необходимые условия (в т. ч. и исключить из выборки ссылку на себя).
Petre @ 15.06.18, 15:59 необходимо зарегистрироваться для просмотра ссылки
,
Разве обязательно делать запрос, если можно проверкой обойтись?
Дело в том, что тут и без запроса можно, просто не знаю, как обратиться ко всем элемента реквизита "Номер" справочника ЗаказыКонтрагентов и сравинть в Если
Цитата(Andrian @ 19.06.18, 8:46) необходимо зарегистрироваться для просмотра ссылки
Разве обязательно делать запрос, если можно проверкой обойтись?
Запрос будет в любом случае, хочется вам этого или нет. Но в одном случае просто он будет как бы неявный (для вас), а в другом явный и более гибкий в своих настройках.
Vofka @ Сегодня, 8:04 необходимо зарегистрироваться для просмотра ссылки
,
Хорошо, а на какое действие делать запрос?
Я бы сделал это в ОбработкаПроверкиЗаполнения()
Vofka @ Сегодня, 9:29 необходимо зарегистрироваться для просмотра ссылки
,
А как вообще сообразить этот отчет, я просто как исключение сделать, вроде представляю, а как отчет, я даже не могу представить(
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.