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