Вход | Регистрация

  1  2   
1С:Предприятие :: 1С:Предприятие 8 общая

Вывести разовое сообщение на экран

Вывести разовое сообщение на экран
Я
   ildary
 
23.10.18 - 16:29
Уважаемые специалисты, подскажите правильный путь, как лучше в самописке на УФ вывести разовое предупреждение для всех открытых сеансов? Само сообщение предупреждения будет храниться в регистре сведений, но как сделать так, чтобы после появления записи в регистре, клиентская программа разово вывела окно предупреждения и повторно его не выводила?

Самое простое, что приходит в голову - хранить в регистре кроме строки предупреждения - тех пользователей, кому уже вывели. Но боязно напороться на блокировку (записи в регистр), если у людей окно выведется одновременно.
 
 
   Cool_Profi
 
1 - 23.10.18 - 16:35
При чтении из РС можно наложить управляемую блокировку... По измерению пользователя
   ildary
 
2 - 23.10.18 - 16:40
(1) Получается мне нужно как-то хранить данные в двух разных местах - первое - что сообщение нужно выводить, а второе место - запись, что у пользователя сообщение вышло? Проблема в том, что я не знаю какие пользователи работают в этой базе, тем более что на момент появления записи пользователь мог в базе не сидеть и зайти в нее через минуту.
   lEvGl
 
3 - 23.10.18 - 16:43
(2)а если зайдет через неделю?
   Cool_Profi
 
4 - 23.10.18 - 16:43
У пользователя обработку ожидания поднимаешь и смотришь раз в период...
   Симпатяга
 
5 - 23.10.18 - 16:45
Регистр сведений
Пользователь, Сообщение, Ознакомлен(булево)

Обработчик ожидания. Смотрим регистр. Показываем текущему пользователю. Ставим галку ознакомлен. Можно еще дату ознакомления писать.
   lEvGl
 
6 - 23.10.18 - 16:45
(5) та ну ппц
   Cyberhawk
 
7 - 23.10.18 - 16:46
При входе в базу смотришь в регистре, надо ли выводить, и выводишь. Какие проблемы?
   Симпатяга
 
8 - 23.10.18 - 16:46
(6) ?
   ildary
 
9 - 23.10.18 - 16:47
(3) вопрос верный, но я после того как сообщение вывелось (в моём случае это "закройте базу") и пользователи базу закрыли - я обязательно сообщение почищу.

(4) именно так и я планирую сделать. Мне осталось понять как правильно и безбблокировочно отделить пользователей, у кого сообщение вывелось, от тех, кто еще не видел.

(5) это простой и рабочий способ, но хочется сделать по уму.

(7) то есть метод в (5) - вполне достоин реализации?
   lEvGl
 
10 - 23.10.18 - 16:49
добавить в регистр(измерение пользователь, ресурс сообщение) записи для всех нужных пользователей. У клиентов обработкаожидания, которая смотрит на регистр по своему пользователю и после вывода сообщения чистит набор записей по своему же пользователю
(6) ознакомлен то там зачем, собирать историю этих сообщений только если, но вряд ли оно надо
 
 Рекламное место пустует
   Cyberhawk
 
11 - 23.10.18 - 16:51
(9) Конечно. Я бы еще добавил в регистр поле "Максимальная дата актуальности", после которой уже выводить сообщение не нужно.
   Симпатяга
 
12 - 23.10.18 - 16:52
(11) тогда накрутить еще возможность закрытия задач подчиненных...... а еще ....а еще)))))
и получить Документооборот в итоге)
   Симпатяга
 
13 - 23.10.18 - 16:53
(10) из моей практики - пусть лучше будет)
   Cyberhawk
 
14 - 23.10.18 - 16:53
(12) Хз о чем ты
   lEvGl
 
15 - 23.10.18 - 16:57
(13) хз, что за тяга добавлять дополнительные колонки
   Симпатяга
 
16 - 23.10.18 - 17:00
(15) послали сообщение всем. "Выключить компы. Электричество выключат на час ". один увидел. ознакомился.забыл. комп сгорел. И говорит начальнику - меня не предупредили. Программиста на кол. а тут раз - ознакомился)
   lEvGl
 
17 - 23.10.18 - 17:05
все серьезно)))))
если он увидел и нажал ОК, то записи в регистре потрутся, если нет, то нет. Ну а так то можно галку, что ознакомился в истину ставить при добавлении записи в регистр с сообщениями
   Cyberhawk
 
18 - 23.10.18 - 17:13
(17) "если он увидел и нажал ОК, то записи в регистре потрутся" // Это только в предлагаемом тобою - замечу, говняном - варианте они потрутся
   Вафель
 
19 - 23.10.18 - 17:13
может проще какай внешний месенджер заюзать?
   lEvGl
 
20 - 23.10.18 - 17:14
(18) и чем же он говняный, а твой такой хороший
   Cyberhawk
 
21 - 23.10.18 - 17:15
(20) Ну, не мой, а другого товарища. Он хорош тем, что мы не добавляем записи в регистр с целью их последующего удаления.
   lEvGl
 
22 - 23.10.18 - 17:17
(21) Я так понимаю ты его поддержал.
Вы добавляете записи что бы их хранить?
   Cool_Profi
 
23 - 23.10.18 - 17:22
(22) Есть некоторые виды сообщений, которые имеет смысл хранить
   Cyberhawk
 
24 - 23.10.18 - 17:24
(22) Конечно. Какой иначе смысл в таком базо-данно-онанизме?
   lEvGl
 
25 - 23.10.18 - 17:30
(21) Вы решаете задачи по хранению данных о том, что кто то когда то нажал какую то кнопку? хер знает, чем люди занимаются, не буду спорить.
   lEvGl
 
26 - 23.10.18 - 17:31
22
   lEvGl
 
27 - 23.10.18 - 17:31
та епт, 25 к 24
   Cyberhawk
 
28 - 23.10.18 - 17:34
(25) Неважно, что именно достигается через запись в регистр.
Важно то, что нельзя такую запись потом удалять, чтобы зафиксировать какое-то событие (в нашем случае совершение действия пользователем), т.к. по отсутствующей в регистре записи эту информацию никак не извлечешь (записи там ведь могло и не быть никогда).
Посмотри, например, в типовых - эти всякие всплывающие новости-напоминания с флажком "Прочитано" так и реализованы.
   Симпатяга
 
29 - 23.10.18 - 17:45
воу. отошел на полчаса называется. вы еще подеритесь)
   Симпатяга
 
30 - 23.10.18 - 17:47
(17) почему потрутся то. ставь галку и дату ознакомления пиши. в принципе и галка не нужна. достаточно даты
   lEvGl
 
31 - 23.10.18 - 18:03
(28) да уж, ты просто гений автоматизации учета
   Tonik992
 
32 - 23.10.18 - 18:13
(10) + мне тоже такой вариант больше нравится.
Случай с автором - отправка сообщений - это разовая акция. Автор не указывал необходимости фиксации.

Додумка по поводу поломки, горения компа со стороны Cyberhawk - это лишь для отстаивания своей позиции, не более. Кроме автора никто не знает, для чего это всё делается, какого рода сообщения будут, что будет если пользователь не прочтет или наоборот - если прочтет.
   Tonik992
 
33 - 23.10.18 - 18:15
(32) Симпотяги т.е. -)
 
 
   Cyberhawk
 
34 - 23.10.18 - 18:17
(32) "Автор не указывал необходимости фиксации" // С таким подходом программист может вообще ничего не делать (не писать в регистр и не читать), а на любой вопрос отвечать, что все сообщения были отправлены, пользователи ознакомлены, вот видите - в регистре записей нет ))
   Tonik992
 
35 - 23.10.18 - 18:18
Хотя вот раз такое "Но боязно напороться на блокировку (записи в регистр), если у людей окно выведется одновременно" значит нечто серьезное -)
(34) С таким подходом программист покажет журнал регистрации до первого инцидента -)
   Cyberhawk
 
36 - 23.10.18 - 18:20
(35) Я ж говорю - онанизм какой-то, чтоб о наступлении события лезть в ЖР
   Cyberhawk
 
37 - 23.10.18 - 18:21
Если что-то можно залогировать, то это нужно логировать. Без всяких там ЖР.
В ситуации с собщением в регистре все для этого уже имеется - остается только поле для соотв. пометки замутить и вуаля - дело в шляпе )
   Tonik992
 
38 - 23.10.18 - 18:32
(37) Я не люблю избыточность информации
   lEvGl
 
39 - 23.10.18 - 18:32
(37) ох ё, что ты за товарищ
Внизу страницы на этом форуме выводятся цитаты форумчан, я бы добавил с пометкой "как делать не надо" вот это
"Если что-то можно залогировать, то это нужно логировать"
я что то все больше от тебя в ужосе ;)
   lEvGl
 
40 - 23.10.18 - 18:34
не, это все таки тянет на МУУУУ-ХА-ХА-ХА-ХА бгггг ппц какой то
   Cyberhawk
 
41 - 23.10.18 - 18:39
(38) Так нет избыточности. По событию удаления в ЖР ты не узнаешь, какая именно запись (с каком ключом) была удалена.
Подумай над сценарием, в котором нужно массово разослать сообщения, но без возможности быть уверенным, что они не то что прочитаны, но даже и отправлены? Удаление записи лишает такой возможности.
   Cyberhawk
 
42 - 23.10.18 - 18:40
(39) Тебе почти тот же самый вопрос: подумай над сценарием, в котором нужно массово разослать сообщения, но без возможности быть уверенным, что они получены (прочитаны)?
   lEvGl
 
43 - 23.10.18 - 18:51
товарищ, я даже думать над такой лажей не хочу, это задачи, которые делают студенты и то только для того чтобы технический навык обращения с платформой набить. городить из этого кучу таблиц с данными - удел увлеченных чудесами, которые в наш век можно сделать в программе 1С: рассылки, посылки, сообщения на почту и остальная херня. За такую реализацию сначала придет админ и даст п**дюлей, за то что у него начало место на винте кончатся, скл постоянно тухнет и остальные прелести, а потом старшие товарищи добавят. Товарищи были бы первыми, если бы следили за каждым шагом такого "разработчика", ну и тогда админ не пришел бы. Но совсем избежать не получится.
   Cyberhawk
 
44 - 23.10.18 - 18:55
(43) Я вроде задал довольно простой вопрос - замечу - вызванный предложенным тобою вариантом реализации. Т.е. ты предлагаешь сделать рассылку без возможности быть уверенным, что сообщение получено (прочитано). Я спрашиваю, зачем оно надо?
В ответ ты что-то про размер БД говоришь, что вряд ли может являться вообще каким-то аргументом (стоимость диска - копейки).
Пока выглядит так, что ты сливаешься.
   palsergeich
 
45 - 23.10.18 - 19:02
Модно стильно молодежно: сервер взаимодействия. Реламентное которое будет в него слать.
А вот всякие экономисты байт - это зло.
Тут на прошлой ИС конференции ребята добавили 2 таблицы весом в 5+гб только для того что бы снизить нагрузку на сервер и это нормально.
Размер одной ссылки 16 байт в ИБ и много вы потеряете при гипотетических 2х сотнях записей в регистре с 3мя полями?
   palsergeich
 
46 - 23.10.18 - 19:07
(43) Если у Вас админ лезет в разработку - он профан.
Если он не умеет следить за свободным местом и заранее делать апгрейд - он профан.
Если админ не в состоянии обосновать покупку копеечного по сравнению со стоимостью времени разработчика HDD - он профан, и ИТ директор тоже.
Ситуации когда место на диске ВНЕЗАПНО кончается при текущей разработке говорит о низком качестве ответственных лиц, которым лень настроить мониторинг с оповещениями хотя бы.
Сколько работал ни на одном месте работы ни разу ВНЕЗАПНО место не кончалось, а базы их количество на одном месте работы с 3х в итоге выросло до 150+
   lEvGl
 
47 - 23.10.18 - 19:12
ну давай сценарий
вот я, как заботливый отец бедных и обиженных пользователей, положил в регистр запись с информацией, без знания которой пользователи умрут.
вот я, как тот самый пользователь, по обработкеожидания иду в этот регистр и достаю сообщение из этой записи, срабатывает(грубо говоря!) Предупреждение(Информация) (может модальная форма или другие варианты реализации), после нажатия кнопки ОК которой запись удаляется. Если нет записи - была нажата кнопка ОК, в добавок он ничего не сможет делать, пока ок не нажмет.
   palsergeich
 
48 - 23.10.18 - 19:15
(47) А вы не пробовали покурить типовой функционал и воспользоватся тем, что есть в БСП, а именно информация об обновлении.
   lEvGl
 
49 - 23.10.18 - 19:17
(48) да пох мне на типовой функционал, т к 90% его непригодны, если это не регламетированный учет
 
 Рекламное место пустует
   palsergeich
 
50 - 23.10.18 - 19:17
Но лично я для конкретно этой задачи, если для клиентов и сервера есть выход в интернет воспользовался бы сервером взаимодействия от 1с, который доступен бесплатно в рамках подписки ИТС.
Обработчики ожидания - зло
   Остап Сулейманович
 
51 - 23.10.18 - 19:17
(47) "Если нет записи - была нажата кнопка ОК"
Вы неправы дорогой товарисчЪ. Если нет записи - то ее там и не было. И Ok никто не нажимал. Именно эту мысль вам пытался донести Cyberhawk
   palsergeich
 
52 - 23.10.18 - 19:18
(49) С вами все понятно.
   lEvGl
 
53 - 23.10.18 - 19:19
(51)да ну, вы не уверены, что ваш код работает?
   lEvGl
 
54 - 23.10.18 - 19:20
(51) или вы скажете, что Предупреждение() может не отработать и пользователь не увидит окна?
   Остап Сулейманович
 
55 - 23.10.18 - 19:20
(53) Йес. Не всегда уверен. На сложных системах оттестировать все невозможно.
   Остап Сулейманович
 
56 - 23.10.18 - 19:22
(54) Всегда ставлю тайм-аут. Тем более для предупреждения. Так чта.... может и не увидеть.
   lEvGl
 
57 - 23.10.18 - 19:24
(55) вот кстати говоря, такой вариант тоже не люблю. многие ставят проверки при чтении из базы там, где твой же код пишет в эту базу, хз
   lEvGl
 
58 - 23.10.18 - 19:26
(56) ну по необходимости, а вы ВСЕГДА ставите, да?
   lEvGl
 
59 - 23.10.18 - 19:27
(45) "Размер одной ссылки 16 байт в ИБ и много вы потеряете при гипотетических 2х сотнях записей в регистре с 3мя полями?"
через полгода будет две сотни тысяч
   lEvGl
 
60 - 23.10.18 - 19:30
(46) надо думать вы не профан и все всегда чЁтко
   palsergeich
 
61 - 23.10.18 - 19:30
(59) 1) Использовать регламентированное время хранения прочитанных сообщений и раз в какой то период прочитанное чистить.
2) Так же чистить сообщения которые никогда не найдут адресата (уволен и тд)
И безмерного разрастания базы не будет
   Cyberhawk
 
62 - 23.10.18 - 19:31
(47) Это не сценарий. Ты просто более обширно повторил свой способ реализации (с удалением). Я же спрашивал, зачем такой онанизм с отправкой сообщения, если через какое-то время по состоянию данных в базе нельзя определить, было ли это сообщение получено или вообще никогда и не было отправлено?
   palsergeich
 
63 - 23.10.18 - 19:32
(60) Я могу на вскидку сразу накидать как минимум 3 варианта реализации данной задачи, выбор конкретной - будет зависеть от конкретного ТЗ.
И да я этим занимаюсь профессионально с соответствующей записью в трудовой и наличием портфолио
   lEvGl
 
64 - 23.10.18 - 19:32
(61) 1. здорово, только кибехавку не говорите, а то он их собирает
2. хрена се, вести у себя в блокнотике небольшой учетик персонала?
   lEvGl
 
65 - 23.10.18 - 19:33
(61) во во в (62)
   palsergeich
 
66 - 23.10.18 - 19:33
(64) Условия на конфигурацию не оговаривались, ведется учет или нет не оговорено. Время хранения тоже не оговорено. Это одна из реализаций
   lEvGl
 
67 - 23.10.18 - 19:34
(63) админите?
   lEvGl
 
68 - 23.10.18 - 19:34
+(67) и пишите одновременно?
   palsergeich
 
69 - 23.10.18 - 19:35
Нигеде не говорится что отметка прочтения должна храниться вечно
   palsergeich
 
70 - 23.10.18 - 19:35
(67) ни то ни то
   lEvGl
 
71 - 23.10.18 - 19:36
(66) эххх.. как же ты будешь понимать уволился он или нет
   palsergeich
 
72 - 23.10.18 - 19:39
По этому была предложена наиболее распространенная схема, обычно эти важные сообщения имеют срок жизни, где то месяц, где то пол года.
Можно и "вечное" хранение реализовать.
(71) На конфигурациях с БСП если учет ведут не лунатики, то люди которые больше никогда не войдут помечаются галкой - недействителен. Если нетленка - другой вопрос
   Cyberhawk
 
73 - 23.10.18 - 19:39
(65) А чего в (62)? :) Ты-то предлагаешь _сразу_ после прочтения удалять. Однако эта информация (понимать, прочитано или нет) скорее всего понадобится еще спустя какое-то время (допустим, неделю). Понятно, что спустя несколько месяцев и лет скорее всего оно уже нигде не нужно.
Я тебя и спрашиваю - приведи пример такой рассылки, где регистр под содержание сообщения и список получателей уже сделан, но и при этом не важно уже потом, получено оно или нет.
   palsergeich
 
74 - 23.10.18 - 19:40
(73) ну как бы ты не автор задачи, тут уже начинается GIGO
   pavig
 
75 - 23.10.18 - 19:41
(0)
Всё не читал.
Систему взаимодействия уже предлагали?

В новых версиях платформы реализовано оповещение клиента с сервера.
   palsergeich
 
76 - 23.10.18 - 19:41
(75) Предлагал, но тут староверы
   palsergeich
 
77 - 23.10.18 - 19:42
(73) Например уведомлении об акции в рознице, срок жизни которой 3 дня
   palsergeich
 
78 - 23.10.18 - 19:42
Через 4 дня она уже мертва и сообщение не актуально
   lEvGl
 
79 - 23.10.18 - 19:43
(62) тоже есть сомнения, что твой код пишет в базу? ((
   pavig
 
80 - 23.10.18 - 19:43
(76)
ясно
перекрестился тремя перстнями и иду дальше
   lEvGl
 
81 - 23.10.18 - 19:44
(73) да я задолбался тебе писать, ты какой то стремный, тебе говоришь говоришь, а ты одно заладил, это ж не первый раз уже "Опиши да напиши"
   Остап Сулейманович
 
82 - 23.10.18 - 19:45
(59) "через полгода будет две сотни тысяч"
Вот не поленился. Посчитал. 
Рабочее время в месяц = 168 часов
Количество часов за 6 месяцев = 1008
Сообщений в час = 198
При количестве пользователей = 50, каждый пользователь получает примерно 4-е сообщения в час.
Вы там что - чат в 1С замутили?

При этом объем занимаемый отметками будет грубо = 3,2 гигабайта. Вам жалко 6 гиг в год?
   lEvGl
 
83 - 23.10.18 - 19:45
+ 81 тебе что готовое решение надо дать? могу продать
   Cyberhawk
 
84 - 23.10.18 - 19:47
(77) (78) Так это со сроком актуальности. Я это в (11) предлагал, но это не особо относится к заданному ранее вопросу.
Про "уведомление об акции в рознице" - неужели тебе может понравиться такое решение, при котором записанные в регистр сообщения через несколько минут удаляются и в регистре по итогу остается пара еще не вошедших в базу пользователей?
   lEvGl
 
85 - 23.10.18 - 19:47
(82) не далее как сегодня отключал полнотекстовый поиск на серверных копиях рабочих баз, т к один пришел развернул копию, другой и так далее
   Cyberhawk
 
86 - 23.10.18 - 19:48
(79) Конечно. И не только что он "пишет в базу", но и для кого пишет (как список получателей сформирован)
   lEvGl
 
87 - 23.10.18 - 19:49
(52) ну вот тебе типовой функционал в (84)
   Остап Сулейманович
 
88 - 23.10.18 - 19:49
Мну интересно. А задллянафига писать в регистр, что бы тут же удалить? Просто регистр использован как хранилище на время доставки? Так может транспорт поменять? Например слать на мыло? Ну или с помощью сервера взаимодействия?
Ну раз пофиг прочитали или нет?
   Cyberhawk
 
89 - 23.10.18 - 19:50
(81) Так ты по сути говори и тогда все будет тип-топ. Пока ты так и не описал ситуацию, запрошенную мною как минимум дважды. Не сливайся, поделись кейсом-то.
   palsergeich
 
90 - 23.10.18 - 19:50
(84) Да и это было ТЗ.
Я этих систем оповещений штук 10 в свое время абсолютно разных реализовал.
и с "вечным" хранением, и после прочтения сжечь. Везде это были реально обоснованные требования.
   lEvGl
 
91 - 23.10.18 - 19:50
+ (85) винт - это же не все далеко
   palsergeich
 
92 - 23.10.18 - 19:50
(88) ННе было в тот момент сервера взаимодействий в природе.
   lEvGl
 
93 - 23.10.18 - 19:51
(88) да почему же его должны не прочитать, мне интересно
   Остап Сулейманович
 
94 - 23.10.18 - 19:51
(85) "один пришел развернул копию, другой и так далее"
Ну так наколхозить и мы умеем. Но это же не должно быть образцом?
   lEvGl
 
95 - 23.10.18 - 19:52
(89) да хрен тебе
   Cyberhawk
 
96 - 23.10.18 - 19:53
(95) Слив засчитан (с) :)
   Cyberhawk
 
97 - 23.10.18 - 19:54
(90) После слива товарища lEvGl может ты поделишься кейсом "после прочтения сжечь"? :)
   lEvGl
 
98 - 23.10.18 - 19:54
(94) ну а где он "образец"
так гиги незаметно и сливаются, а потом на выходных Оп и сервер болт прописал, все встало, никого из обслуживающих нет
   palsergeich
 
99 - 23.10.18 - 19:55
(91) Скажи это базе в 25+ ТБ с которой я работал и которая вполне себе шустро шуршала, да серваки там были неплохие, но база вся целликом в памяти СКЛ не болталась.
Все зависит от задачи. Ставьте корректно задачу вам подберут приемлимое решение.
А абстрактные задачи я и на совещаниях наслушаюсь.
   lEvGl
 
100 - 23.10.18 - 19:56
(97) а что я тебе должен рассказать как я это делаю? повториться с хреном? либо продать могу, говорил уже
  1  2   

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует