Имя: Пароль:
1C
1С v8
Как из события ОбработкаЗаполнения запустить процедуры в модуле формы
0 serg999
 
06.12.20
15:35
Добрый день.
Выполняю заполнение документа РеализацияТоваровУслуг через ввод на основании. После заполнения надо обновить строку в табличной части "Товары".
Обновление номенклатуры в ТЧ.Товары, выполняется через событие с дальнейшем запуском через оповещение ТоварыНоменклатураПриИзмененииВопросПользователюЗавершение.

Вопрос, как можно выполнить из ОбрабокиЗаполнения процедуру ТоварыНоменклатураПриИзмененииВопросПользователюЗавершение ?

ЗЫ: Как вариант отработать через событие ПриОткрытии, но может как то более правильно решается вопрос ...
1 Ненавижу 1С
 
гуру
06.12.20
16:03
Зачем обновлять после заполнения? Почему сразу не обновить и ничего не спрашивать у пользователя
2 serg999
 
06.12.20
16:06
Так есть уже написанные методы, зачем придумывать ...
3 Ненавижу 1С
 
гуру
06.12.20
16:07
(2) напоминает анекдот про вирус который надо специально запустить чтобы он заработал
4 serg999
 
06.12.20
16:09
:) нефига, в моем случае типа ООП
5 acht
 
06.12.20
16:17
И ООП ты тоже не знаешь
6 acht
 
06.12.20
16:19
Делай клиент-серверную процедуру с нужными параметрами, вызывай ее из обработки заполнения и из ответа на вопрос.
7 serg999
 
06.12.20
16:46
Можно пояснить, каким образом со стороны серверы можно вызвать процедуру на клиенте ?
8 ДенисЧ
 
06.12.20
16:59
(7) Лучше не образом. А подсвечником.
Засунуть оный подсвечник в нужное место тому, кому пришла в межушный ганглий такая идея.
9 serg999
 
06.12.20
17:04
(8) Ну и я о том же ...
10 hhhh
 
06.12.20
17:35
(9) в (0) же вы собирались вызвать? А здесь уже боитесь?
11 serg999
 
06.12.20
17:45
(10) Ладно, считается :)  Как задачу решить, есть мыли ?
12 ДенисЧ
 
06.12.20
17:52
(11) А представь... Ты создаёшь документы пачкой. На сервере. В фоновом задании. Ночью. На сервере монитора нет. Форма без монитора не создаётся....
Что делать будешь? Лучше бы ты подсвечник взял...
13 hhhh
 
06.12.20
18:02
(11) ну например, на сервере создаешь файлик и кидаешь его  в какую-нибудь общую папку. На клиенте постоянно мониторишь эту папку, и если появился файлик, запускаешь процедуру ТоварыНоменклатураПриИзмененииВопросПользователюЗавершение.
14 hhhh
 
06.12.20
18:16
(11) еще там есть регистр сведений НапоминанияПользователя. Можешь вместо файлика в него писать. У нас была похожая задача: когда бухгалтер создавал документ Реализация, через 10 секунд на складе на компе у кладовщика ревела сирена.
15 serg999
 
06.12.20
18:22
Мда .. (12) подсвечники,  (13) файл с шару положить (14) с сиреной, у меня уже глаз начал дергаться.
Может есть, что по делу.
16 ДедМорроз
 
06.12.20
18:41
Во первых,если мы что то хотим обновить на форме,то,когда формы нет,то и обновлять не нужно.
Во вторых,если в обработке заполнения было решено что-то заполнить,то это что-то должно правильно разместиться по полям,а потом сообщить форме через параметр,что ее как бы прочитали.
Потому как,если мы сохранили документ,а потом его открыли,то все эти процедуры обновления тоже должны работать - причем,на сервере,а не на клиенте.
17 serg999
 
06.12.20
19:03
(16) мне надо рассчитать и заполнить цену, я могу это сделать и при обработке заполнения, но на модуле форме есть процедура обновления ТЧ, вообще если быть точнее процедура расчета вынесена в общий модуль, но структура формируется в модуле формы.
Собственно вопрос, как сообщить форме из обработки заполнения, что при открытии НАДО обновить ТЧ, из доступных переменных только "Источник" (ДокументОбъект.РеализацияТоваровУслуг)?
18 Ненавижу 1С
 
гуру
06.12.20
19:06
(17) вот ты замучил, добавь ДополнительнойСвойство объекту.
прочти его куда-нибудь в событии ПриЧтенииНаСервере у формы.
Анализируй его наличие и обновляй на здоровье.
19 Cthulhu
 
06.12.20
19:08
что в (6) неясно? разжевать надо еще?
1) выносишь выполняемый функционал в экспорт-процедуру (с нужными параметрами) модуля объекта, выполняемую в серверном контексте
2) заменяешь в модуле формы перенесенный в п.1. код на вызов процедуры п.1 (с нужным образом установленными параметрами), "из ответа на вопрос"
3) вызывай процедуру модуля объекта п.1 из любго нужного места модуля объекта.
20 hhhh
 
06.12.20
19:13
(17) давайте рассуждать логически. Рассчитать цену на клиенте невозможно. Значит там у вас в общем модуле в итоге вызывается какая-то серверная процедура. Найдите там эту процедуру и используйте в обработке заполнения.
21 Ненавижу 1С
 
гуру
06.12.20
19:17
(0) а кстати чем типовое не устраивает, посмотрите как там делается
22 serg999
 
06.12.20
19:20
По порядку:
(18) так и сделал, но мне не нравиться ..
(20) да, но структуру муторно готовить, так же при очередного обновления со старой структурой пойдешь на сервер, а там ошибка ..
(19) (6) Не пинайте ногами, но тут не могу понять :(
(21) Типовое не смотрел, сейчас попробую глянуть ..