|
Проблема с открытием формы списка документов. | ☑ | ||
---|---|---|---|---|
0
Byasha
10.08.17
✎
15:21
|
В комплексной, той которая второй редакции, есть документ "Пересчет товаров". У документа есть форма списка, в которой устанавливается отбор по складу.
Замечательно. До недавнего времени не было необходимости ограничений доступа по складам. Соответственно у пользователя при открытии формы восстанавливалось значение отбора по складу, который у него был указан при закрытии формы. Но потом включили ограничение доступа по складам, и доступ к этому складу был ограничен. Теперь при попытке открытия формы списка документов выдается ошибка. Ошибка возникает при попытке получения значения реквизита склада, к которому у пользователя ограничен доступ. Если смотреть в отладчике - это видно. Но возникает вопрос. Через отладчик можно очистить значение, например, установить пустую ссылку. Тогда проверка проходит без ошибок и форма открывается. Но это если "под рукой" есть тот у кого есть доступ к конфигуратору и отладчику и есть соответствующие права. А что делать есть "под рукой" такого человека нет? Т.е. как выполнить очистку значений которые фиксируются при закрытии формы, и потом восстанавливаются при ее открытии из режима предприятия? Например пользователем с полными правами. Вопрос насущный, потому что сейчас настраиваются ограничения доступа к данным и в дальнейшем таких ситуаций предвидится не мало. Кто-сталкивался с подобным? Обработки из пакета инструмента разработчика БСП не помогают. Конфигурация типовая, запрет на изменение стоит. |
|||
1
Галахад
гуру
11.08.17
✎
05:21
|
Грохать кэш?
|
|||
2
Byasha
12.08.17
✎
00:50
|
(1) Не очень желательно. Слетят все остальные настройки. Но если других вариантов не найдется, то придется.
|
|||
3
Otark
12.08.17
✎
09:39
|
Открывать, через обработку, которая будет открывать эту форму, очищая заранее нужную ссылку. После этого открывать как обычно.
|
|||
4
Фрэнки
12.08.17
✎
14:45
|
А разве не из хранилища значений считываются предустановленные с прошлого сеанса настройки пользователя?
|
|||
5
rudnitskij
12.08.17
✎
22:05
|
(2) настройки в кэше не хранятся
|
|||
6
wertyu
12.08.17
✎
22:15
|
(5) а где они хранятся?
|
|||
7
rudnitskij
12.08.17
✎
22:19
|
(6) смотря какие. Часть в регистре сведений "Настройки пользователей", часть в "Дополнительные настройки пользователей", настройки форм - в хранилище значений
|
|||
8
wertyu
12.08.17
✎
22:23
|
Настройки форм?
|
|||
9
rudnitskij
12.08.17
✎
22:24
|
(8) отборы, сортировки, настройки отчетов, вот это вот всё
|
|||
10
wertyu
12.08.17
✎
22:29
|
(9) может не хранилище значений?
|
|||
11
rudnitskij
12.08.17
✎
22:31
|
(10) а что по вашему?
|
|||
12
rudnitskij
12.08.17
✎
22:31
|
(10) мне как-то надо было получать настройки отчета определенного пользователя - я их программным путем получал из хранилища значений. Из кэша вы программно ничего не получите, при всем желании
|
|||
13
wertyu
12.08.17
✎
23:50
|
скорее всего, что тут более не то
|
|||
14
wertyu
12.08.17
✎
23:50
|
да, правильный ответ в (1)
|
|||
15
Фрэнки
13.08.17
✎
10:12
|
в понедельник гляну. что там в этой форме выполняется при открытии. Мне самому недавно этот документ на глаза попался и я уже собирался его смотреть, но в выходные - лень открывать конфигуратор :)
|
|||
16
DexterMorgan
13.08.17
✎
11:14
|
(11) ХранилищеНастроек, ХранилищеНастроекДанныхФорм
|
|||
17
rudnitskij
13.08.17
✎
11:20
|
(16) возможно, но точно не кэш
|
|||
18
Byasha
14.08.17
✎
19:37
|
(3) Конфигурация "на замке", встроить туда свой список документов - не получиться. Через дополнительные обработки... ну это как вырезать гланды через ж..
(7) Это вторая редакция, там такого нет. (17) Точно кэш. Придется все-таки чистить. Хотя для особо важных пользователей :-), решили на два дня программиста рядом посадить, что бы все основные формы проверить и сразу "подшаманить в отладчике". |
|||
19
Фрэнки
14.08.17
✎
21:54
|
(18) точно не кэш.
прошел отладчиком, проверил. --- &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) . . . Склад = Справочники.Склады.СкладПоУмолчанию(); затем в экспортной функции видим Запрос = Новый Запрос(" |ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 2 | Таблица.Ссылка КАК Склад |ИЗ | Справочник.Склады КАК Таблица |ГДЕ | НЕ Таблица.ПометкаУдаления | И Таблица.ВыборГруппы В (&ВыборГруппыСкладов) |"); ну и так далее - кэш в таком случае не работает |
|||
20
aleks_default
15.08.17
✎
09:50
|
галку "АвтоматическоеСохранениеПользовательскихНастроек" снять.
|
|||
21
Byasha
15.08.17
✎
10:58
|
(19) Все верно. Но если в выборке более одной записи, то в качестве склада устанавливается пустая ссылка. Этот код отрабатывает верно. И при создании формы в отладчике есть пустая ссылка. А вот уже при открытии формы, появляется значение, которое фиксируется в кэше при закрытии формы. Оно и восстанавливается.
(20) Конфигурация "на замке". |
|||
22
aleks_default
15.08.17
✎
12:35
|
Есть событие ПередЗагрузкойДанныхИзНастроекНаСервере оно отрабатывает после ПриСозданииНаСервере но перед ПриОткрытии. Его в принципе можно наверное запихнуть в расширение
|
|||
23
rudnitskij
15.08.17
✎
12:47
|
(18) "Точно кэш. Придется все-таки чистить. " - вам несколько более опытных разработчиков говорят, что настройки в кэше не хранятся, а вы всё упорствуете...У вас религиозные причины какие-то? Батюшка сказал, что в кэше хранятся?
"решили на два дня программиста рядом посадить..." - с этого надо было начать) смотрите, чтоб программиста вместо вас не оставили)) |
|||
24
Byasha
15.08.17
✎
14:01
|
(23) Ну я бы не сказал что упорствую. Однако очистка кэша пользователя помогла. Хотя я не сильно на это надеялся.
Если следовать документации то "Платформа использует следующие хранилища: ? Системное хранилище – в данное хранилище система сохраняет все возможные настройки, которые нужны для работы платформы. К данным настройкам относятся настройки размеров форм, настройки печати табличного документа и т. п. Полный перечень настроек, сохраняемых в системном хранилище, см. здесь. В качестве системного хранилища настроек всегда используется стандартное хранилище настроек. То есть данные системного хранилища всегда сохраняются в системной таблице информационной базы." В перечне настроек, сохраняемых в системном хранилище присутствует "Настройка: значения полей формы при закрытии ? Ключ объекта – является строковым значением, состоящим из полного имени формы и текста /ТекущиеДанные (/CurrentData)." Конкретно для проблемной формы, в конфигурации не определено хранилище ее настроек, значит используется системное хранилище. Работать с хранилищем из встроенного языка возможно. НО, поскольку в процессе работы у заказчика присутствуют программисты, и пользователей, которым критично сохранение текущих настроек 3-4 человека, то проще в процессе настройки и тестирования очистить значение через отладчик. За два дня такой способ использовали несколько раз. Писать внешние обработки для работы с системным хранилищем - зря тратить время. В ДАННОМ СЛУЧАЕ. Вопрос, изначально был задан с целью узнать сталкивался кто с аналогичной ситуацией и как избежать ее используя уже возможно существующие инструменты. Бросаться по каждой проблеме сразу в разработку чего-либо - не всегда оправдано. В ДАННОМ СЛУЧАЕ, проблема решилась двумя путями. Для тех пользователей, кому не критично сохранение настроек форм - просто очистили их кэш. Для тех кому критично - использовали отладчик. Разбираться почему помогла очистка кэша, при условии что настройки должны храниться в системном хранилище - сейчас нет времени. Всем спасибо. PS. Персонально для rudnitskij - "не судите, да не судимы будете" (с) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |