Имя: Пароль:
1C
1С v8
УФ.. обновление формы списка и звуковой сигнал при создании нового документа
,
0 CepeLLlka
 
10.11.11
21:47
Вобщем сабж.. и вот что я сделал

В форме документа


&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
   Оповестить("ОбъектСоздан",Объект.Ссылка,ЭтаФорма);
КонецПроцедуры


ФормеСпискаДокумента





&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
   Если ИмяСобытия="ОбъектСоздан" Тогда
   Элементы.Список.Обновить();
   Сигнал();
   КонецЕсли;
КонецПроцедуры




Всё отрабатывает.. только у этого клиента.. то есть у которого я создаю этот документ.. а мне нужно чтобы журнал обновлялся у другого пользователя.. я думал так будет работать.. а оказалось нет что ли? Как мне правильно сделать, подскажите пожалуйста..
1 CepeLLlka
 
10.11.11
21:49
То есть мне нужно что если кто-то создал документ.. то у всех у кого открыта форма списка этого документа сработал сигнал и обновился список.. вот как..
2 MikleV
 
10.11.11
22:09
поставить у динамического списка автообновление и забить
3 CepeLLlka
 
10.11.11
22:12
(2)Нее.... Майкл.. ну постой.. мне же надо.. подскажи пожалуйста.. есть ведь решения наверное..
4 MikleV
 
10.11.11
22:14
есть. через задницу)
5 CepeLLlka
 
10.11.11
22:14
Скажии как.. я люблю задницы :)
6 acsent
 
10.11.11
22:16
(5) О май гад
7 CepeLLlka
 
10.11.11
22:17
Ацсент.. ну хоть ты подскажи если знаешь..
8 Armando
 
10.11.11
22:21
Ахтунг. Но через переднецу, действительно, нет нормального способа. Надо делать через какие-нибудь вспомогательные объекты. Тут уж на что фантазии хватит.
9 CepeLLlka
 
10.11.11
22:22
(8) У меня нету времени на фантазии... можно примерчик? Пожалуйста.. а то я гуглю, мистю.. и всё никак..
10 acsent
 
10.11.11
22:23
На эту задачу забей
11 CepeLLlka
 
10.11.11
22:24
Окей... тогда давайте такой способ..

Вот я ставлю автообновление к примеру раз в две минуты.. но мне нужно чтобы когда появился документ.. то выполнить - Сигнал()
12 CepeLLlka
 
10.11.11
22:24
Как реализовать (11) Ацсент.. подскажи.. строки считать? Или как?
13 acsent
 
10.11.11
22:24
ОбновлениеОтображения
14 MikleV
 
10.11.11
22:25
ну тогда автообновление не поможет
я думаю, не поможет даже установка динамика на 300 Вт во всей конторе)
потому что болезнь мозга неизлечима
15 CepeLLlka
 
10.11.11
22:26
(13) Ну и что это? У меня итак это будет выполнять раз в две минуты.. мне нужно понять появился ли новый документ или нет..
16 acsent
 
10.11.11
22:27
(15) ну это ты сам думай, как будешь определять
17 CepeLLlka
 
10.11.11
22:29
(16) Ясно... просто я рассчитываю на то, что у вас опыта больше в несколько раз.. и все можете понять.. а мне ещё методы искать надо.. вот..
18 MikleV
 
10.11.11
22:32
условно:
некая сущность, которая хранит данные об изменениях документов
сущность хранится в базе.
при создании документа - изменяем сущность.
у конечного пользователя - проверяем состояние сущности.
какая там будет сущность значения в принципе не имеет

это может быть таблица регистрации изменений, параметр сеанса, пятое, десятое, регистр сведений, что угодно
19 CepeLLlka
 
10.11.11
22:33
(18)Дык это ясно.. я выбрал константу.. с номером документа..

Буду писать туда номер.. а когда номер будет больше чем записаный.. буду оповещать..
20 CepeLLlka
 
10.11.11
22:33
Хотя не прокатит так.. у меня префиксов 40 штук.. лоло
21 CepeLLlka
 
10.11.11
22:34
Значит по кол-ву документов буду что ле..
22 H A D G E H O G s
 
10.11.11
23:00
Дятел штоле?
23 H A D G E H O G s
 
10.11.11
23:03
Константу "ПоследнийДокумент.Ссылка"

Глобальную переменную в модуле упр. приложения "ТекушийПоследнийДокумент".

Обработчик оповещения с частотой в 5 секунд, который сравнивает ТекушийПоследнийДокумент с константой, если разные - сигнал() и
Оповестить(), который ловит форма списка, которую надо обновить.

Константу читать запросом!.

Все, выполнять!
24 CepeLLlka
 
10.11.11
23:03
(22) Да.. лучше бы подсказал.. чем обзываться :(
25 CepeLLlka
 
10.11.11
23:06
(23) А как я получу последнийдокумент.ссылка?
26 H A D G E H O G s
 
10.11.11
23:06
В (23) Обработчик оповещения с частотой в 5 секунд
заменить на
Обработчик ОЖИДАНИЯ с частотой в 5 секунд


Я поюсь, что при народе в x человек все встанет раком, поэтому еще нужен флаг

ФормаСпискаОткрыта, если он Ложь - в обработчике ОЖИДАНИЯ ниче не делается.
27 H A D G E H O G s
 
10.11.11
23:07
(25) А ты его запишешь в константу при записи Нового документа
28 H A D G E H O G s
 
10.11.11
23:07
Но конечно жопное решение.
29 CepeLLlka
 
10.11.11
23:08
Да точно, не заметил процедуру такую.. спс.. я так и сделал.. только запросом кол-во документов считал..
30 CepeLLlka
 
10.11.11
23:09
Да вроде норм решение.. но твоё лучше.. тут не надо запрос по всем докам делать.. быстрее будет..
31 CepeLLlka
 
10.11.11
23:09
А форма у меня всегда будет эта открыта.. она на рабочем столе стоит.. и больше там ничего нет.. и она работает только у одного юзера.. и частоту я ставлю 120 сек.
32 acsent
 
10.11.11
23:37
(26) тогда лучше делать обработчикожидания прямо в форме списка
33 CepeLLlka
 
10.11.11
23:37
(32) Так тут и делаем.. где ещё то?
34 H A D G E H O G s
 
10.11.11
23:39
(32) Ну да.
35 CepeLLlka
 
10.11.11
23:43
Только что-то так и не найду (27) Нету такой процедуры у мя..
36 CepeLLlka
 
10.11.11
23:45
Есть ОбработкаЗаписиНового(), но это что-то не то.. Это видимо когда создаёшь объекты в формах которые открыл из полей текущей формы..
37 CepeLLlka
 
10.11.11
23:47
Точно.. ЭтоНовый() же..
38 H A D G E H O G s
 
10.11.11
23:52
Понавылуплялось племя молодое, незнакомое...
39 Armando
 
10.11.11
23:55
(37) ты ниче не курил? чета тебя не в ту степь понесло
40 CepeLLlka
 
11.11.11
00:15
В смысле? Ну я хз.. ЭтоНовый() не работает чёт :)

Юзал Пустая() в процедуре - ПриЗаписиНаСервере()

Вот.. вроде всё работает..
Закон Брукера: Даже маленькая практика стоит большой теории.