|
v7: Подписка на события | ☑ | ||
---|---|---|---|---|
0
Fiasko
01.10.12
✎
19:35
|
Коллеги, прошу поделиться советом :)
Я, возможно, и обленился, но, надеюсь, многие поймут, что проще "допилить" что-то, чем сделать самому "с нуля"... Вообщем задача у меня такая: хочу сделать подпиську :) на некие события для своих коллег. Например, я изменяю какой-нибудь реквизит в 1С. При проведении этого реквизита пользователи, подписавшиейся на данный тип подписки получают сообщение... да желательно со 100% гарантией доставки, чтобы отвертеться уже не могли, типа: "а я не видел, а я не знал"... Может видел кто-нибудь чо-то подобное? :) Я бы поковырял.... |
|||
1
Mnemonic1C
01.10.12
✎
19:36
|
Ник как бэ намекает...
|
|||
2
Kreont
01.10.12
✎
19:36
|
Шли все на почту, а вот ее заставить читать это уже проблема будет :)
|
|||
3
Mnemonic1C
01.10.12
✎
19:37
|
А вообще можешь поиграться с формексом, если времени не жалко
|
|||
4
ДенисЧ
01.10.12
✎
19:37
|
1c++ и класс Перехватчик...
|
|||
5
Fiasko
01.10.12
✎
19:40
|
(4) уже читаю....
|
|||
6
Fiasko
01.10.12
✎
19:47
|
можно даже и платное чего-то... я, если основа нормальная, купил бы...
|
|||
7
Fiasko
01.10.12
✎
19:51
|
(2) это не желательно... но если ничего путного в голову не придет, значит так и буду делать..
|
|||
8
Злопчинский
01.10.12
✎
19:55
|
тут товарищ один, кстати, смайстрячил "перехват" программного изменения реквизита...
|
|||
9
Злопчинский
01.10.12
✎
19:56
|
(0) в клюшках событийная форма работы находится.. да она вообще не находится.. ее нет... вообще, в принципе...
|
|||
10
Злопчинский
01.10.12
✎
19:57
|
кстати, сакраментоальный вопрос - а зачем?
|
|||
11
Мимохожий Однако
01.10.12
✎
20:02
|
(0)Вставь Предупреждение при записи ))) Доступно и всерьез.
|
|||
12
Злопчинский
01.10.12
✎
20:07
|
(11) и КТО его увидит?
|
|||
13
Fiasko
01.10.12
✎
20:14
|
(10) да у меня некое подобие CRM в 7-ке, бизнес-циклы и прочая дребедень... если бизнес-цикл в документе изменился - менеджер должен узнать об этом. Вот, пожалуй, главная цель...
|
|||
14
Ахиллес
01.10.12
✎
20:18
|
(13) Установи восьмёрку, будь мужиком, блеать!
|
|||
15
Fiasko
01.10.12
✎
20:18
|
(8) а вот это интересно...
|
|||
16
Fiasko
01.10.12
✎
20:20
|
(14) я морально готовлю себя, что буду переходить... но не в ближайшее время...
|
|||
17
Злопчинский
01.10.12
✎
20:20
|
(15) да, но у меня есть сомнения в применимости.. ибо на массовых например Куйня.Записать() - тормозить будет не по децки... конечно если придумать что-то типа Куйня.ОтключитьРегистрацию()
|
|||
18
SWD
01.10.12
✎
20:22
|
(13) У меня сделано (наследство но работает)- "глобальный справочник" события с полем документ\справочник. В нужный в работе документ или элемент справочника в процедуру ПриЗаписи() добавляется глобФункция "ЗаписатьИзменения". Потом - кому надо - по обработке ожидания читает этот "глобальный справочник". Компактно, в "гс" - только ссылки на измененые элементы справ\док. Все штатно. 1С++ - сбивался, платформы OC разные, от XP до Serv2k8
|
|||
19
SWD
01.10.12
✎
20:24
|
Массовая обработка при обновлении типовой - программа Inserter, сама парсит MD и вставляет в процедуре ПриЗаписи
|
|||
20
Надсмотрщик
01.10.12
✎
20:24
|
(0) Под самую письку?
|
|||
21
Fiasko
01.10.12
✎
20:26
|
(20) иногда и так приходиться...
|
|||
22
Fiasko
01.10.12
✎
20:27
|
(21) пля.. или "приходится"... часто с русским проблемы были..
|
|||
23
Fiasko
01.10.12
✎
20:32
|
(18) еще интересней... вопрос нескромный - демка есть? :)
|
|||
24
ЗомбиТ1С
01.10.12
✎
20:34
|
У меня так:
(сообщить ревизору, что пора работать- появились документы с признаком "Подтвержден") Процедура ПриНачалеРаботыСистемы(); Если глПользователь=Константа.Ревизор Тогда ОбработкаОжидания("Ревизору",600); КонецЕсли; КонецПроцедуры Процедура Ревизору() Доки=СоздатьОбъект("Документ.Корректировка"); СпКорректировок=СоздатьОбъект("СписокЗначений"); Доки.ВыбратьДокументы(РабочаяДата()-10,РабочаяДата()); Пока Доки.ПолучитьДокумент()=1 Цикл Если Доки.ПометкаУдаления()=1 Тогда Продолжить; КонецЕсли; Если Доки.Подтвержден=0 Тогда Продолжить; КонецЕсли; Если Доки.Проведен()=1 Тогда Продолжить; КонецЕсли; СпКорректировок.ДобавитьЗначение(Доки.ТекущийДокумент(),СокрЛП(Доки.Автор.Наименование)+": №"+СокрЛП(Доки.НомерДок)+" от:"+Доки.ДатаДок); КонецЦикла; Если СпКорректировок.Размерсписка()=0 Тогда Возврат; КонецЕсли; ДокКорр=ПолучитьПустоеЗначение("Документ.Корректировка"); Если СпКорректировок.ВыбратьЗначение(ДокКорр,"Выбираем необработанную корректировку",,0,0)=1 Тогда ОткрытьФорму(ДокКорр); КонецЕсли; КонецПроцедуры |
|||
25
ADirks
01.10.12
✎
20:35
|
(9) Нормальные люди эти ваши клюшки без 1С++ вообще не рассматривают. А там всё достаточно прилично с событиями.
|
|||
26
SWD
01.10.12
✎
20:35
|
завтра, под рукой нет, все на работе. Идет круглосуточный обмен, с демкой сложнее, SQL база каждая 12гб весит. Могу смысл обяснить + обработку синхронизации.
|
|||
27
SWD
01.10.12
✎
20:37
|
Смысл с (24) совпатает - спецпользователь-робот дергает обработку ожидания
|
|||
28
Fiasko
01.10.12
✎
20:38
|
(26) да смысл вроде ясен. Спасибо.
|
|||
29
Fiasko
01.10.12
✎
20:39
|
(24) спасибо, попробуем... думаю пищи для ума достаточно...
|
|||
30
Kreont
01.10.12
✎
20:40
|
Еще вариант:
Есть ОбработкаОжидания на 15 сек. и в ф-ии такой код: ФС.УстТекКаталог(КаталогПользователя()); Результат = ФС.НайтиПервыйФайл("rep-*.mxl"); Если ПустоеЗначение(Результат) <> 1 Тогда Таб = СоздатьОбъект("Таблица"); Таб.Открыть(КаталогПользователя() + "\" + Результат); Таб.Показать(,,1); Таб = 0; ФС.УдалитьФайл(КаталогПользователя() + "\" + Результат); Возврат; КонецЕсли; А там где надо "что-то" показать конкретному пользователю, идет создание обычной табл.формы и она ложится в каталог нужного пользователя с именем rep-ГГГГММДД_ЧЧММСС.mxl |
|||
31
Злопчинский
01.10.12
✎
20:40
|
(25) дай подписку на события программного изменения/записи реквизита!
|
|||
32
Fiasko
01.10.12
✎
20:43
|
(30) да, можно где-то и так..
|
|||
33
ADirks
01.10.12
✎
20:45
|
(31) Если прям сильно надо, то делается управляющий класс для документа, и вся работа через него. А панацеи от идиотов нет конечно.
|
|||
34
Kreont
01.10.12
✎
20:45
|
(32) Я рисовал mxl с большой огромной красной рамкой :) но все равно мало что помогало, закрывают сволочи не читая :))
|
|||
35
SWD
01.10.12
✎
20:46
|
А, забыл сказать, реализован 2x(вернее 3x) обмен между 2 типовыми и самопиской, а вариант со справочником - чтобы "интелектуально" убивать коллизии, когда одновременно 1 элем справочника пытаются редактировать.
Накладные разходы - перезапись 1 строчки с вызовом глПроцедуры "ЗаписатьВ_Сист_Справочник_Изм" при обновлении типовых. |
|||
36
Злопчинский
01.10.12
✎
20:47
|
(33) исключительно в качестве инфо-обучаловик - что есть "управляющий класс"..?
|
|||
37
Злопчинский
01.10.12
✎
20:49
|
(34) для начала - раз не читают - не даем возможности закрыть форму предупреждения пок ане истечет 20 минут.
когда освоят чтение за 20 минут - переходим к освоению чтения за 10 минут.. и т.д. как вариант - кучу кнопочек на фоме типа "капчи" - каждый раз другая кнопочка... жмакнут не ту кнопочку - закрыааем как обычно но через 2 мин блокируем работу 1Ску... ;-) |
|||
38
SWD
01.10.12
✎
20:50
|
(34) "закрывают сволочи не читая :))" - таймаут 30 сек с выводом сообщения с потемнением всего экрана и блокировкой мыши\клавиатуры (вот тут и работает Формекс) и скриншот экрана с датой - временем. Хватило полгода приучить 30 посменных операторов
|
|||
39
ADirks
01.10.12
✎
20:51
|
(36) ну типа
оДок = СоздатьОбъект("ТДокумент.ххх"); оДок.НазначтьКонтекст(СоздатьОбъект("Документ.ххх")); оДок.НайтиДокумент(Док); оДок.РеквХХХ = ...; |
|||
40
Kreont
01.10.12
✎
20:52
|
Да уже прошли те времена, поставил 8-ку...
Да и сама бизнес логика процессов изменилась теперь не надобно такое :) |
|||
41
SWD
01.10.12
✎
20:52
|
(37) Опередил. У меня посылать "злобное" - незлобное - переключается галочкой в справочнике пользователи. От рецедива
|
|||
42
SWD
01.10.12
✎
20:53
|
(40) Да вот хера, "люди везде одинаковы" и в 8 не читают
|
|||
43
SWD
01.10.12
✎
20:55
|
(40) реально используете "бизнесс-процессы" восмерочные, или так, к слову философскому?
|
|||
44
ADirks
01.10.12
✎
20:58
|
+(39) ну и в упр. классе переопределяем метод Записать(), который будет сравнивать предыдущие значения с новыми, и чё-то там делать
|
|||
45
SWD
01.10.12
✎
21:01
|
(44) Перехват идет в памяти, в Win7, 2k8 как то раз из 5 срабатывало. Подскажете как стабилизировать - буду искренне признателен
|
|||
46
SWD
01.10.12
✎
21:02
|
даже с отключенным DEP
|
|||
47
Злопчинский
01.10.12
✎
21:03
|
(44) ага, спсб.
|
|||
48
Злопчинский
01.10.12
✎
21:04
|
(44) хотя для меня все это пока мутно.. ;-)
товарищ из (8) вот как-то так и переопределил класс для Записать() |
|||
49
ADirks
01.10.12
✎
21:04
|
(45) не очень понял, но возможно надо всё завернуть в одну транзакцию? Тогда или запишется всё, или ничего.
|
|||
50
SWD
01.10.12
✎
21:09
|
(49) Не, там же ипользуются хуки в памяти на метод, как я понял, а современные опереционки такого не любят, а антивирусы - и подавно. Сам перехват не всегда срабатывал. Правда тренировался 1,5 года назад и решил тупо влоб - т.е. штатными. Формекс !1С++ - только красивости и разукрашивание и просмотр ТЗ на лету
|
|||
51
ADirks
01.10.12
✎
21:09
|
(48) ну так понятно, что если не изучать - то будет мутно. я конечно могу тут зафигачить реализацию такого вот класса (точнее, системы классов), но боюсь, понятнее от этого не станет :)
|
|||
52
Salimbek
01.10.12
✎
22:01
|
(36) Это когда все операции с выбранной таблицей, например с регистром, идут через этот класс. Поэтому он и в курсе, есть что-то измененное или нет.
|
|||
53
Прохожий
01.10.12
✎
22:04
|
Если SQL, то надо триггеры писать..
|
|||
54
SWD
01.10.12
✎
22:08
|
(53) Надо, а потом кто нить загрузку-выгрузку средствами 1С сделает - и сново писать. Как мина перед увольнение - триггеры вешь отличная
|
|||
55
Злопчинский
01.10.12
✎
22:10
|
(51) потому что не жмет, поэтому и не юзается/не изучается... а если есть что-то рабочее - то его и юзаем. у меян вообще по-моему в работе всего два класса.. один из них РедакторТЗ для прямого ввода значений.. и все...
|
|||
56
Прохожий
01.10.12
✎
22:12
|
(54) Надо ПриНачалеРаботыСистемы патч в гл. модуле лелать...
|
|||
57
Прохожий
01.10.12
✎
22:13
|
В гибких блокировках так сделано...
|
|||
58
SWD
01.10.12
✎
22:14
|
(56) И в чем тогда будет от моего варианта отличатся, со штатными механизмами и глобальной процедурой?
|
|||
59
Прохожий
01.10.12
✎
22:14
|
Там ведь не сильно много таблиц и триггеров к ним надо и оне примитивные...
|
|||
60
Прохожий
01.10.12
✎
22:15
|
(58) ms sql - гарантия качества и престиж. Ноль потом в реэюме сможет писать "хорошо умею sql..."
|
|||
61
SWD
01.10.12
✎
22:16
|
Там ему вообще надо "Службу сообщений". На работе мд-шник лежит, там вообще - объединряешь с любой штатной - и готовая подсистема, в терминах восьмерки
|
|||
62
SWD
01.10.12
✎
22:17
|
кто то сделал давно, скачал, подпилил - пользуюсь - горя не знаю
|
|||
63
SWD
01.10.12
✎
22:18
|
только формекс просит, любой, а он у меня и так штатно стоит с младых лет
|
|||
64
Злопчинский
02.10.12
✎
01:00
|
(62) если невжабу, прошу замылить на [email protected]
спсб |
|||
65
Fiasko
08.10.12
✎
12:45
|
(63) а я могу попасть под раздачу ? [email protected] :)
|
|||
66
Злопчинский
08.10.12
✎
20:43
|
.. молчит Вселенная... да и где это видано, чтобы ихтиологи с рыбами разговариали?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |