Имя: Пароль:
1C
 
Метод ПередЗаписью()
0 Vadimok
 
31.01.11
06:53
Обхожу доккументы в цикле как мне вызвать метод ПередЗаписью().

   Выборка = Документы.ЗаявкаНаПриобретениеТоваров.Выбрать();

   
   Пока Выборка.Следующий() Цикл
       
       Если Выборка.Проведен = Истина Тогда
           
           ДокОбъект = Выборка.ПолучитьОбъект();
           
                       
           //ДокОбъект.ПередЗаписью(,РежимЗаписиДокумента.Запись,); //Ошибка метод не обноружен
           
           ДокОбъект.Записать(РежимЗаписиДокумента.Проведение);
           
           Состояние(Выборка);
           
       КонецЕсли;
               
   КонецЦикла;
1 Rie
 
31.01.11
06:55
(31) Это событие, а не метод. Оно само вызовется.
2 Vadimok
 
31.01.11
06:57
Так он не вызывается, я даже точку останова ставил.
3 Rie
 
31.01.11
06:59
(2) Тогда поподробнее. Метод ПередЗаписью - чего? Документа или формы?
4 Rie
 
31.01.11
07:00
+(3) Судя по количеству параметров в (0) - ты пытаешься вызывать метод формы. А это совсем не правильно.
5 Wobland
 
31.01.11
07:00
вопрос: как мне вызвать метод ПередЗаписью()?
ответ: попытаться записать
6 Rie
 
31.01.11
07:02
(5) См. (0). Он обработчик события ПередЗаписью формы документа вызвать пытается.
7 Vadimok
 
31.01.11
07:02
Мне надо перебрвть документы.
И записать их с проверкой. А событие ПередЗаписью() не вызывается. Как мне правильно сделать?
8 Wobland
 
31.01.11
07:03
давайте тогда послушаем, зачем автору это надо
9 Rie
 
31.01.11
07:03
(0) Тут такие варианты.
Все нужные тебе действия/проверки выносишь в обработчик события ПередЗаписью в модуле _объекта_ (а не формы).
Или в модуле _объекта_ создаёшь новую экспортируемую процедуру, которая провернёт то, что тебе нужно - и вызываешь её. (Это если нужны действия только в твоей обработке, которые перед обычной записью не должны выполняться)
10 Denizzz
 
31.01.11
07:05
(2) в модуле объекта тоже пробовал ставить?
11 Denizzz
 
31.01.11
07:08
+ (9) можно также попробовать использовать подписку на событие
12 Rie
 
31.01.11
07:12
(11) Тоже очень хороший вариант.
Тут вопрос в том, что нужно топикстартеру. ПередЗаписью в форме и ПередЗаписью в объекте не зря ведь были разделены.
13 Wobland
 
31.01.11
07:12
не понял. а что, правда ДокОбъект.Записать(РежимЗаписиДокумента.Проведение) не приводит в ПередЗаписью() в модуле объекта ?
14 Irbis
 
31.01.11
07:14
Но все равно не гуд

Расширение формы документа (Document form extension)
ЗаписатьВФорме (WriteInForm)
Синтаксис:
ЗаписатьВФорме(<Режим записи>)
Параметры:
<Режим записи> (необязательный)
Тип: РежимЗаписиДокумента. Позволяет указать режим записи документа.
Возвращаемое значение:
Тип: Булево. Истина - документ успешно записан; Ложь - в противном случае.
Описание:
Записывает объект, редактируемый в данный момент в форме.
См. также:
Расширение формы документа, свойство ИспользоватьРежимПроведения
15 Denizzz
 
31.01.11
07:19
(13) приводит, но видимо Вадимок пытается вызвать событие формы
16 Vadimok
 
31.01.11
07:20
Перенес в ПередЗаписью() в модуль документа, Все заработало. Спасибо.
17 Wobland
 
31.01.11
07:21
(16) на здоровье. что перенёс? см (5)
18 Rie
 
31.01.11
07:29
(16) ПередЗаписью в форме может производить дополнительные проверки/действия, используя данные формы (а не только документа).
Так что убедись, что перенос из формы в модуль объекта ничему не повредил.
19 Denizzz
 
31.01.11
08:22
(16) если конфигурация на поддержке, то все же советую реализовать через подписку на событие.
20 Rie
 
31.01.11
08:24
(19) Это спорный вопрос.
Если он оставит ПередЗаписью в форме - то будет "удвоение эффекта" при интерактивной записи документа.