Вход | Регистрация
 

Проверка регистра сведений

Проверка регистра сведений
Я
   rapashocker
 
12.04.19 - 14:34
ПРивет всем, пишу проверку, нужно в Модуле объекта Заказ Покупателя , процедуре перед записью и в процедуре проведения сделать проверку на регистр сведений
Задача вот такая:и одновременно в регистре «Уведомления ORDRSP» нет ни одной записи со значением поля «Заказ покупателя» равным текущему заказу и значением поля «Отправлен вручную» равным «Истина»

Написал отдельную функцию где получаю этот регистр с соответсвующими условиями полей, но не понимаю как связать функцию с 2 мя этими процедурами, в конечном итоге при не выполнении этой проверки или других будет создаваться запись в регистр.

Моя функция:
Функция НетЗаписейУведомленияORDRSP()
    Запрос = новый Запрос();
    Запрос.УстановитьПараметр("ТекущийЗаказ",Ссылка);
    Запрос.Текст = "ВЫБРАТЬ
                   |    УведомленияORDRSP.ЗаказПокупателя
                   |ИЗ
                   |    РегистрСведений.УведомленияORDRSP КАК УведомленияORDRSP
                   |ГДЕ
                   |    УведомленияORDRSP.ЗаказПокупателя <> &ТекущийЗаказ
                   |    И УведомленияORDRSP.ОтправленВРучную <> ИСТИНА";
Выборка = Запрос.Выполнить().Пустой();
Возврат Выборка;
КонецФункции

Как связать ее с процедурой создания регистра? что бы проверка происходила при создании записи данного регистра?
Вот моя процедура создания регистра
Процедура РегистрУведомленияORDRSP()    
запись = РегистрыСведений.УведомленияORDRSP.СоздатьМенеджерЗаписи();
запись.ЗаказПокупателя = Ссылка;
запись.ЗаказEDI = ДокументОснование;
запись.УникальныйИдентификатор = СформироватьГУИД();
запись.ОтправленВРучную = Ложь;
запись.ВариантЗаполнения = Перечисления.ВариантыЗаполненияORDRSP.ПовкладкеМТСС;
запись.Состояние = Перечисления.СостоянияORDRSP.Ожидает;
запись.ДатаПостановки = ТекущаяДата();
запись.Записать();
КонецПроцедуры
 
 
   dezss
 
1 - 12.04.19 - 14:39
Если НетЗаписейУведомленияORDRSP(Ссылка) Тогда
<тут делаешь то, что делал бы, если записей нет>
Иначе
<тут делаешь то, что делал бы, если записи есть>
КонецЕсли;
   rapashocker
 
2 - 12.04.19 - 14:51
дело в том что в каждой процедуре, где бы не обходима данная проверка писать накладно и много кода, в каждоый из процедур, которая потом возвращает процедуру Процедура РегистрУведомленияORDRSP(), думаю лучше там как то написать эту проверку, только пока не понятно как
   dezss
 
3 - 12.04.19 - 14:53
(2) >>дело в том что в каждой процедуре, где бы не обходима данная проверка писать накладно и много кода
вынеси код в модуле, будешь писать один раз
>>думаю лучше там как то написать эту проверку, только пока не понятно как
Ты хотя бы связно объяснил что ты хочешь от этой процедуры/функции получить. Может и помог бы кто-нибудь.
   rapashocker
 
4 - 12.04.19 - 15:04
Есть 2 процедуры в модуле объекта Перед Записью и обработкаПроведения, в них необходимо проверить данный регистр, да бы не нагромождать и там кучу проверок там, я вынес это в отдельную функцию.
дело в том что мои проверки вот пример 
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)    
//Проверка--151321    

ВремТаблица = ТоварыSFA.Выгрузить();

Если (ТорговаяТочка.АвтоматическаяОтправкаORDRSP или Контрагент.АвтоматическаяОтправкаORDRSP = Истина 
и Контрагент.ВариантОтправкиORDRSP = Перечисления.ВариантыОтправкиORDRSP.ПриКаждомИзменении          
и Контрагент.ВариантЗаполненияORDRSP = Перечисления.ВариантыЗаполненияORDRSP.ПовкладкеМТСС 
и НЕ (ВремТаблица.Количество() = ссылка.ТоварыSFA.Количество())  
и типзнч(ДокументОснование)= тип("ДокументСсылка.ЗаказEDI")) Тогда
РегистрУведомленияORDRSP();
КонецЕсли;
   rapashocker
 
5 - 12.04.19 - 15:06
сделал отдельную процедуру по созданию записей, и что бы не писать все проверки по 500 раз 2 процедурах, хочется создать 1 проверку перед созданием записи вот здесь:
Процедура РегистрУведомленияORDRSP()     
запись = РегистрыСведений.УведомленияORDRSP.СоздатьМенеджерЗаписи(); 
запись.ЗаказПокупателя = Ссылка; 
запись.ЗаказEDI = ДокументОснование; 
запись.УникальныйИдентификатор = СформироватьГУИД(); 
запись.ОтправленВРучную = Ложь; 
запись.ВариантЗаполнения = Перечисления.ВариантыЗаполненияORDRSP.ПовкладкеМТСС; 
запись.Состояние = Перечисления.СостоянияORDRSP.Ожидает; 
запись.ДатаПостановки = ТекущаяДата(); 
запись.Записать(); 
КонецПроцедуры
   dezss
 
6 - 12.04.19 - 15:21
(5) И что вызывает сложности?
В чем проблема в этой процедуре эти проверки написать?
   rapashocker
 
7 - 12.04.19 - 15:27
в этой процедуре я буду вызывать эту же процедуру?
   dezss
 
8 - 12.04.19 - 15:30
(7) Зачем? О_О
Просто проверки в нее перенеси
   rapashocker
 
9 - 12.04.19 - 15:37
мне надо только регистр проверить,зачем мне все проверки туда переносить?причем они идентичны для каждой из процедур
   dezss
 
10 - 12.04.19 - 17:15
(9) ну проверки по регистру туда перенеси. Я ж не говорю, что все переносить.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.