|
Значение по умолчанию при первом открытии обработки | ☑ | ||
---|---|---|---|---|
0
Королевский Тигр
17.10.23
✎
15:47
|
Добрый день. Подскажите пожалуйста, как сделать вот так следующее.
Пользователь открывает ЕРП, открывает обработку "Мои продажи"по выводу данных. В этой обработке сразу же выводятся данные согласно фильтр, который был задан пользователем при прошлом открытии. В обработке ставит фильтр, что бы данные выводились за месяц. Данные выводятся за месяц-ОК. Пользователь закрывает обработку. Но ЕРП не закрыввает. Поработал в ЕРП. Потом снова Открывает обработку и данные выводятся за месяц -это ОК. А как сделать что бы при открытии ЕРП и при первом открытии обработки данные выводились за год? А дальше если он выберет за месяц или за день. То есть при работе в системе у него сохранялись те фильтры которые он выберет. А при первом запуске обработки после запуска ЕРП был один ТОЛЬКО фильтр за год? Это нужно сделать в модуле формы. Подскажите как в поставить такое условие? |
|||
1
lodger
17.10.23
✎
15:51
|
возможно самый упоротый метод:
сделать настройки модельному пользователю (например себе) написать внешнюю обработку с запуском по расписанию. в обработке копировать свою настройку обормотки нужным пользователям. обормотку запускать по расписанию 1 раз в сутки в 6 утра, по рабочим дням. |
|||
2
lodger
17.10.23
✎
15:52
|
просто к тому, что в хранилище настроек которое работает на полном автомате всего 1 слот под сохраненку. то есть нет разницы за день или за неделю юзер вернулся.
можно ещё покопаться что там происходит при сохранении и восстановлении настроек, может там стоит перехватывать событие "первого за день". |
|||
3
Donkey_hot
17.10.23
✎
16:01
|
(0) А что мешает при начале работы системы обратиться к хранилищу и откорректировать настройки текущего пользователя?
|
|||
4
Donkey_hot
17.10.23
✎
16:02
|
(3) А, в модуле формы... Прошу прощения.
|
|||
5
Donkey_hot
17.10.23
✎
16:09
|
(0) Как вариант - создать служебный реквизит для хранения номера сеанса, также сохранять его в настройках, далее проверять, если изменился - устанавливать дефолтный фильтр. Метод не очень надежный, т.к. после перезапуска сервера пользователю может в новом сеансе быть выдан такой же номер сеанса.
|
|||
6
RomanYS
17.10.23
✎
16:38
|
(0)
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Реквизит1 = "по умолчанию"//настройки по умолчанию КонецПроцедуры &НаКлиенте Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) ДатаСохранения = ТекущаяДата();//ДатаСохранения - сохраняемый реквизит формы КонецПроцедуры &НаСервере Процедура ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки) Номер = НомерСеансаИнформационнойБазы(); Для каждого Сеанс Из ПолучитьСеансыИнформационнойБазы() Цикл Если Сеанс.НачалоСеанса > ДатаСохранения Тогда Реквизит1 = "по умолчанию снова"//сбрасываем настройки КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
7
RomanYS
17.10.23
✎
16:39
|
(6) Если пользователь соединения не имеет права АктивныеПользователи (ActiveUsers), то вызывается исключение.
Наверное можно просто проверкой дня обойтись чтобы не перебирать сеансы |
|||
8
Королевский Тигр
17.10.23
✎
20:30
|
У меня настройки периода тянуться в модуле формы из этой функции
КлючОбъекта = "Обработка.CRM_АРМ_МоиПродажи.Форма.Форма/ТекущиеДанные"; Настройки = ОбщегоНазначения.ХранилищеСистемныхНастроекЗагрузить(КлючОбъекта, "", Новый Соответствие); Как работает хранилище настроек, это очень долго отладкой смотреть, почему оно тянет даже тот период который был установлен до закрытия программы долго выяснять. Можно ли вставить какое то условие проверяющее, что моя форма была запущена первый раз после запуска программы? Тогда если бы форма запущенна была в первый раз, я бы прикрутил Период который мне нужен, а не тот что был сохранен пользователем в последний раз |
|||
9
RomanYS
17.10.23
✎
20:54
|
(8) в (6) пример такого условия. Принципе можно просто номер сеанса сохранять и дату сохранять и проверять: если дата сохранения не совпадает с текущей или номер сеанса не совпадает - сбрасывать настройки
|
|||
10
Королевский Тигр
17.10.23
✎
21:23
|
(6) зачем здесь
Номер = НомерСеансаИнформационнойБазы() ? |
|||
11
Королевский Тигр
17.10.23
✎
21:27
|
(6) Я правильно понял, что вы предлагаете добавить реквизит формы?
|
|||
12
RomanYS
18.10.23
✎
00:15
|
(11) да
(10) там был поиск текущего сеанса среди всех чтобы узнать начало сеанса и сравнить его с датой сохранения. Более простая идея и не требующая прав на чтение сеансов: запоминать номер сеанса в котором произошло сохранение настроек |
|||
13
Donkey_hot
18.10.23
✎
03:22
|
Если бы мы не ограничивались модулем формы, можно было бы завести глобальную переменную ОбработкаУжеЗапускалась в модуле управляемого приложения
|
|||
14
Королевский Тигр
18.10.23
✎
09:32
|
(6) Почему то
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) ДатаСохранения = ТекущаяДата();//ДатаСохранения - сохраняемый реквизит формы КонецПроцедуры Дата сохранения не сохраняет после закрытия системы. Если Систему не закрывать, а закрывать только обработку, то сохраняет |
|||
15
RomanYS
18.10.23
✎
10:19
|
(14) я тестировал на пустой конфигурации - работало. "Система" закрывалось штатно, без вылетов?
|
|||
16
Королевский Тигр
18.10.23
✎
10:20
|
Да, штатно без вылетов
|
|||
17
RomanYS
18.10.23
✎
10:21
|
(16) Странно. Т.е. остальные реквизиты/настройки сохранились/восстановились, а добавленный реквизит нет?
|
|||
18
Королевский Тигр
18.10.23
✎
10:27
|
(17) ДА, я вот и не знаю, может я его добавил как то криво..
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |