Отловить момент записи документа.

1. Alexponenta 07.02.22 10:57 Сейчас в теме
Задача: имеем документ событие, нужно перед записью проверить что если поля Содержание и Контрагент пустые, то идем по стандартной дороге. Если у нас имеется событие с ТЧ контакты где указан "неизвестный контрагент" и содержание пустое - выдавать предупреждение, что мол у вас тут содержание не заполнено.
Вся проблема в проверке заполненности, и отслеживании события ПередЗаписью.

Как бы логика такая: Нажимаем на Записать/Записать+закрыть. Попадаем в метод документа ПередЗаписью. Перед выполнением стандартной последовательности впихиваем наш проверочный код. Есть проблема - если объект ранее не был записан - значит его нет и записей по нему соответственно тоже? или я не прав
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. N0t_F0und 10 07.02.22 10:59 Сейчас в теме
3. Alexponenta 07.02.22 11:00 Сейчас в теме
(2) Не совсем понимаю о чем речь.
4. N0t_F0und 10 07.02.22 11:03 Сейчас в теме
Объект конфигурации «Подписки на события»
5. Alexponenta 07.02.22 11:06 Сейчас в теме
(4) Речь про Документ.Событие (в частности телефонный звонок)
6. N0t_F0und 10 07.02.22 11:08 Сейчас в теме
и? почему не может быть подписки на событие, к примеру, ПередЗаписьюДокументаСобытие?..
7. nomad_irk 81 07.02.22 11:13 Сейчас в теме
(6)потому что ТС, судя по описанию проблемы, не знает о существовании подписок на события, ровно как и о предопределенных обработчиках событий в модуле объекта.
Если бы знал, то самого вопроса не появилось бы :)
9. Alexponenta 07.02.22 11:22 Сейчас в теме
(7) Про ПередЗаписью() я в курсе. Мне не ясно как это отслеживать в непроведенном документе (записей нет)
10. N0t_F0und 10 07.02.22 11:26 Сейчас в теме
(9) Поискать что-то похожее на «ПроверитьЗаполнение...», обычно она отрабатывает перед записью
11. Alexponenta 07.02.22 11:29 Сейчас в теме
(10) Просто для меня запись объекта = это Объект.Записать(). Но в конфигурации 1С - пока до этого дойдешь - с ума можно сойти.
8. N0t_F0und 10 07.02.22 11:14 Сейчас в теме
Уважительная причина)
12. coollerinc 196 07.02.22 11:35 Сейчас в теме
Все проверки делаются в модуле объекта в событии "ОбработкаПроверкиЗаполнения", пишите туда, что хотите. Или на форме "ОбработкаПроверкиЗаполненияНаСервере"

Вам нужно проверять заполненность реквизитов Объекта, а не записей в базе данных.
13. NatalyaVP 07.02.22 11:38 Сейчас в теме
Непонятно в чем проблема. Проверку на заполненность можно сделать в "ПриЗаписи" или в "ОбработкаПроведения".
14. Alexponenta 07.02.22 11:43 Сейчас в теме
(13) В том что я тугодум малость. Мне надо а) проверку в незаписанном документе б)в случае нессответствия посылать отменять операцию записи
15. Alexponenta 07.02.22 11:51 Сейчас в теме
Если документ не записан - то и данных по нему никаких нет. Соответственно как проверку проводить?
16. NatalyaVP 07.02.22 11:56 Сейчас в теме
//Процедура ПередЗаписью
//  Если НЕ ЭтоНовый() 
//        Если этотобъект.Проведен=Истина Тогда
// ... какие-то действия
//отказ=истина;
//конецесли;
//    КонецЕсли;

//конецпроцедуры

Процедура ОбработкаПроведения
    Для каждого стр Из этотобъект.продукция Цикл
        Если не значениезаполнено(стр.НоменклатурнаяГруппа) Тогда 
            ОбщегоНазначения.СообщитьОбОшибке(("Не заполнена номенклатурная группа у "+сокрлп(стр.номенклатура)+", код "
            +сокрлп(стр.номенклатура.код)+""),отказ,Заголовок );
        КонецЕсли; 
        //Если не значениезаполнено(стр.заказ) Тогда 
        //    ОбщегоНазначения.СообщитьОбОшибке("Не заполнен заказ покупателя! ",отказ,Заголовок );
        //КонецЕсли;
    КонецЦикла; 

конецпроцедуры
Показать
17. Alexponenta 07.02.22 12:01 Сейчас в теме
(16) Оооокей. В принципе я понял, однако вопрос остается относительно не проведенного документа.
18. nomad_irk 81 07.02.22 12:08 Сейчас в теме
(17)в чем сложность с непроведенным документом? не проведен документ и что с ним не так как, скажем, с проведенным?
20. Alexponenta 07.02.22 13:56 Сейчас в теме
(18) Ну вот как мне например прочитать запросом содержимое ТЧ контакты, если у меня нет ссылки на само событие?
21. nomad_irk 81 07.02.22 14:03 Сейчас в теме
(20)зачем вам читать именно запросом? данные в ТЧ документа и так либо есть, либо нет. Более того, они уже в ОЗУ.
22. Alexponenta 07.02.22 14:54 Сейчас в теме
(21)
Ладно нашел как из ТЧ непроведенного документа вытащить данные. Через элементы формы.
23. nomad_irk 81 07.02.22 15:00 Сейчас в теме
(22)зачем вам элементы формы? обращайтесь напрямую к ТЧ объекта Объект.ИмяТабличнойЧасти
24. Alexponenta 07.02.22 15:14 Сейчас в теме
(23) Оговорился. Да, да. Через Объект.ИмяТЧ.
19. NatalyaVP 07.02.22 12:08 Сейчас в теме
(17) так надо, наверно, делать. У меня не возникало с этим проблем, записанный или новый документ
Оставьте свое сообщение

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