Имя: Пароль:
1C
1С v8
После проведения документа из ФормыСписка запуск процедуры этого документа
0 web_profiler
 
29.05.14
19:15
Подскажите, пожалуйста, как можно после выполнения процедуры ОбработкаПроведения документа из ФормыСписка запустить процедуру из модуля этого же документа?
1 web_profiler
 
29.05.14
19:16
Ненавижу 1С и снова привет
2 Ненавижу 1С
 
гуру
29.05.14
19:16
а если не из формы списка?
3 Ненавижу 1С
 
гуру
29.05.14
19:16
web_profiler привет
4 web_profiler
 
29.05.14
19:17
ситуация такова: при открытии дока можна в в модуле формы ПослеЗаписи делать че угодно, а как вот без отрытия поступить?
5 butterbean
 
29.05.14
19:18
как вариант можно свою кнопку проведения сделать, но по-хорошему надо подход менять
6 web_profiler
 
29.05.14
19:19
(5) согласен, т.е. вариантов нет?
7 web_profiler
 
29.05.14
19:21
мож существует функционал принудительного завершения проведения в процедуре ОбработкаПроведения?
8 Ненавижу 1С
 
гуру
29.05.14
19:22
(4) а программное перепроведение? вообще туши свет
9 web_profiler
 
29.05.14
19:23
(8) не понял
10 web_profiler
 
29.05.14
19:25
документ делает движение по регистрам, мне надо потом эти данные обрабатывать в момент, когда пользователь проводит документ из ФормыСписка
11 web_profiler
 
29.05.14
19:30
мож ПодпискиНаСобытия?
12 Ненавижу 1С
 
гуру
29.05.14
19:30
(10) подробнее
13 Ненавижу 1С
 
гуру
29.05.14
19:31
а внутрь ОбработкаПроведения внедриться нельзя?
14 web_profiler
 
29.05.14
19:31
(13) так мне надо проверять уже проведенные данные
15 web_profiler
 
29.05.14
19:31
а пока процедура обработкаПроведения не отработает данных я не вижу
16 web_profiler
 
29.05.14
19:34
(12) Док: ПоступлениеОплаты
Если после проведения по региструНакопления задолженность = 0, то я программно получаю договор данного контрагента и меняю в нем статус Открыт на Закрыт
17 Ненавижу 1С
 
гуру
29.05.14
19:36
(16) какой-то одноразовый договор
это реализовать можно как в модуле документа, так и в модуле набора записей
18 web_profiler
 
29.05.14
19:44
(17) а как в модуле документа, если я еще не вышел из ОбработкиПроведения (т.е. данных у меня еще нет) мне проверить  задолженность по регистру накопления?
19 Ненавижу 1С
 
гуру
29.05.14
19:47
(18) ну ты данные можешь уже записать и проверить
20 web_profiler
 
29.05.14
19:53
(19) как? я нахожусь в ОбработкеПроведения - данные по регистрам не прошли еще, как проверять?
21 Ненавижу 1С
 
гуру
29.05.14
19:56
(20) запиши в регистр и считай итоги
22 web_profiler
 
29.05.14
19:58
(21) т.е. ты предлагаешь вручную писать по регистрам?
23 Ненавижу 1С
 
гуру
29.05.14
20:00
+(21) используй
НЗ = РегистрыНакопления.ТвойРегистр.СоздатьНаборЗаписей()
НЗ.Отбор.Регистратор.Установить(Ссылка);
//тут запись данных
НЗ.Записать();
//теперь проверка

вместо:
НЗ = Движения.ТвойРегистр;
//тут запись данных
24 web_profiler
 
29.05.14
20:02
так это я зная все, просто хотел движениями документа организовать, спс
25 Crush
 
29.05.14
20:02
После обработки проведения срабатывают события перед и после записи в модуле набора (17). Универсальнее сделать там что нужно
26 Crush
 
29.05.14
20:04
Тьфу после = при:)
Кстати тут уже можно обращаться к данным регистра
27 Ненавижу 1С
 
гуру
29.05.14
20:04
(24) еще вариант - прверка в модуле набора записей
но там нужно проверить, на удаляемость записей, чтоб не затерло
28 Ненавижу 1С
 
гуру
29.05.14
20:05
(26) кстати почему то 1С их не особо юзает, по крайней мере в в УТ 10
29 Crush
 
29.05.14
20:05
(28) они и на спецов не сдают:)
30 Crush
 
29.05.14
20:07
(27) НаборЗаписей.Количество()=0
31 web_profiler
 
29.05.14
20:09
помогите проблемку порешать
32 Ненавижу 1С
 
гуру
29.05.14
21:41
(30) в теории это не совсем так, но на практике почему и нет
(31) уже же много набросали
33 Crush
 
29.05.14
22:01
(32) В ПриЗаписи данные уже в регистре, а в отборе можно найти регистратора. Набор записей скорее всего еще содержит данные, записанные в регистр.
Я так понимаю, что автор хочет читать данные всего регистра с учетом движений документа. В ПриЗаписи - самое оно.
34 web_profiler
 
30.05.14
10:25
Спасибо всем, рассказываю как я выкрутился (написал гав...код):
в модуле документа в ОбработкеПроведения в самом начале определил глоб. переменную и открываю форму
    Форм = ЭтотОбъект.ПолучитьФорму("ФормаДокумента");
    БылМодифицирован = Истина;
    Форм.Открыть();

при открытии формы прописал следующее:
    Если БылМодифицирован Тогда
        ЭтотОбъект.Записать(РежимЗаписиДокумента.Проведение);
        ЗакрытиеДоговоров();
        ЭтаФорма.Закрыть();
    
    КонецЕсли;

И вуаля "гов...код" отрабатывает с формы списка: проводит документ, и выполняет нужные после проведения действия
35 web_profiler
 
30.05.14
10:28
Ну и в процедуре ПослеЗаписи Формы документа тоже:
Процедура ПослеЗаписи()  
    
    ЗакрытиеДоговоров();
КонецПроцедуры