Проверка регистра

1. LOTR 12.04.19 13:48 Сейчас в теме
ПРивет всем, пишу проверку, нужно в Модуле объекта Заказ Покупателя , процедуре перед записью и в процедуре проведения сделать проверку на регистр сведений
Задача вот такая:и одновременно в регистре «Уведомления ORDRSP» нет ни одной записи со значением поля «Заказ покупателя» равным текущему заказу и значением поля «Отправлен вручную» равным «Истина»

Написал отдельную функцию где получаю этот регистр с соответсвующими условиями полей, но не понимаю как связать функцию с 2 мя этими процедурами, в конечном итоге при не выполнении этой проверки или других будет создаваться запись в регистр.
Функция НетЗаписейУведомленияORDRSP()
	Запрос = новый Запрос();
	Запрос.УстановитьПараметр("ТекущийЗаказ",Ссылка);
	Запрос.Текст = "ВЫБРАТЬ
	               |	УведомленияORDRSP.ЗаказПокупателя
	               |ИЗ
	               |	РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP
	               |ГДЕ
	               |	УведомленияORDRSP.ЗаказПокупателя <> &ТекущийЗаказ
	               |	И УведомленияORDRSP.ОтправленВРучную <> ИСТИНА";
Выборка = Запрос.Выполнить().Выбрать();
КонецФункции
Показать
По теме из базы знаний
Найденные решения
8. tvm 12.04.19 15:45 Сейчас в теме
(7) надо в модуле набора записей,если не ошибаюсь, прописать тогда
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. YannikAlx 43 12.04.19 13:56 Сейчас в теме
Во-первых ФУНКЦИЯ обычно делается тогда , когда нужно вернуть одно значение.
Если значение не возвращается, почему функция, а не процедура?

Во-вторых либо сделайте возвращаемое значение в своей функции и вызывайте ее из ваших 2 процедур и в зависимости от возвращенного значения либо пишите в свой регистр либо нет. Второй вариант - все сделать внутри своей процедуры , которая будет вызываться из тех 2 и сама либо создавать либо нет запись в требуемый регистр.
Второй вариант целесообразнее - ибо уменьшает степень измененности конфигурации , если она стандартная
3. tvm 12.04.19 14:01 Сейчас в теме
вместо
Выборка = Запрос.Выполнить().Выбрать(); 

написать
Выборка = Запрос.Выполнить().Пустой();
 Возврат Выборка;
КонецЕсли; 


а в месте вызова проверять истина или ложь возвращается
4. tvm 12.04.19 14:01 Сейчас в теме
если Выборка = Истина то нет, если Ложь- то записи есть
5. LOTR 12.04.19 14:10 Сейчас в теме
(4)А можно это сделать в процедуре создания записи моего регистра?
6. LOTR 12.04.19 14:11 Сейчас в теме
и тогда перед тем как все те 2 процедуры будут ссылаться на эту процедуру при прохождении остальных проверок, буду проверять мою выборку?
7. LOTR 12.04.19 14:13 Сейчас в теме
те 2 процедуры ПередЗаписью и ОбработкаПроведения, после всех проверок выполняют запись Регистра, если не прошли проверки вот так:

Если (ТорговаяТочка.АвтоматическаяОтправкаORDRSP или Контрагент.АвтоматическаяОтправкаORDRSP = Истина
и Контрагент.ВариантОтправкиORDRSP = Перечисления.ВариантыОтправкиORDRSP.ПриКаждомИзменении
и Контрагент.ВариантЗаполненияORDRSP = Перечисления.ВариантыЗаполненияORDRSP.ПовкладкеМТСС
и НЕ (ВремТаблица.Количество() = ссылка.ТоварыSFA.Количество())
и типзнч(ДокументОснование)= тип("ДокументСсылка.ЗаказEDI")) Тогда
РегистрУведомленияORDRSP();
КонецЕсли;
8. tvm 12.04.19 15:45 Сейчас в теме
(7) надо в модуле набора записей,если не ошибаюсь, прописать тогда
9. LOTR 12.04.19 17:13 Сейчас в теме
(8)спасибо ваши советы помогли
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот