|   |   | 
| 
 | Проблема с открытием формы списка документов. | ☑ | ||
|---|---|---|---|---|
| 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 - "не судите, да не судимы будете" (с) | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |