В общем списке ЭПД не отображаются новые документы у отдельных пользователей
После обновления конфигурации может возникнуть ситуация, когда у отдельных пользователей в рабочем месте «Электронные перевозочные документы» не отображаются новые виды ЭПД, например «Электронное поручение экспедитору».
При этом пользователь может:
- создавать и записывать документ;
- отправлять его через ЭДО;
- открывать документ по прямой ссылке;
- видеть его в отдельном списке «Электронные поручения экспедитору»;
- видеть запись в регистре сведений «Реестр ЭПД».
Под пользователем с полными правами те же документы в общем списке отображаются.
Таким образом, проблема может выглядеть как ограничение прав или RLS, хотя фактически доступ к документам у пользователя есть.
Причина
Рабочее место ЭПД использует внутренний отбор по типам документов:
ОтборТипыДокументов
При открытии формы ранее сохраненный список типов восстанавливается из пользовательских настроек.
Если пользователь работал с ЭПД до появления новых экспедиторских документов, в настройках мог сохраниться старый набор, например из 6 типов документов.
После обновления в конфигурации уже присутствуют новые виды ЭПД:
- Электронное поручение экспедитору;
- Электронная экспедиторская расписка;
- Электронная складская расписка.
Но типовой код добавляет полный перечень документов только в том случае, если ОтборТипыДокументов полностью пуст:
Если ОтборТипыДокументов.Количество() = 0 Тогда
Для Каждого Стр Из ХозяйственныеОперацииИДокументы Цикл
ОтборТипыДокументов.Добавить(Стр.ТипДокумента, , Истина);
КонецЦикла;
КонецЕсли;
Если старый список уже восстановлен, новые виды туда автоматически не добавляются.
Далее этот список используется как фиксированный отбор динамического списка по полю ТипСсылки.
В результате новые документы исключаются из общего журнала, хотя сами документы доступны пользователю.
Где хранится проблемная настройка
В рассматриваемом случае использовались:
Объект:
Обработка.ЭлектронныеПеревозочныеДокументы.Форма.ФормаСпискаЭПД
Ключ назначения:
ФормаСпискаЭПД
Настройка:
ОтборТипыДокументов
Именно в ОтборТипыДокументов находился старый перечень видов ЭПД.
Варианты решения
1. Типовой обход без разработки
Открыть:
Функции для технического специалиста → Обработки → Электронные перевозочные документы
В этом случае форма может открываться с другим ключом назначения настроек, и актуальные виды документов формируются заново.
В нашем случае после такого открытия все новые ЭПД появились.
Это также удобный способ быстро проверить причину: если через обычное рабочее место документы отсутствуют, а при прямом открытии обработки присутствуют, проблема с высокой вероятностью связана именно с пользовательскими настройками формы.
Это обход, а не исправление исходной настройки.
2. Полная очистка пользовательских настроек
После полной очистки настроек проблемного пользователя список ЭПД также начал формироваться корректно.
Минус очевиден: удаляются не только настройки ЭПД, но и другие персональные настройки пользователя.
В рассматриваемом случае выборочная очистка настроек ЭПД результата не дала, а полная очистка решила проблему.
Поэтому данный способ рабочий, но не самый аккуратный.
3. Точечная очистка ОтборТипыДокументов
Более правильный вариант заключается в удалении только устаревшего свойства:
ОтборТипыДокументов
из структуры пользовательских настроек формы.
После повторного открытия типовой механизм видит пустой список и самостоятельно заполняет его всеми актуальными видами ЭПД.
При этом остальные настройки пользователя сохраняются.
4. Исправление расширением
Для автоматического исправления можно использовать небольшое расширение.
Логика следующая:
Восстановились старые 6 типов
U95;
Определяем устаревшую настройку
U95;
Удаляем только ОтборТипыДокументов
U95;
Сохраняем остальные настройки пользователя
U95;
Очищаем старые 6 типов в текущей форме
U95;
Типовой код самостоятельно заполняет актуальный список
В модуле формы используется следующий код:
&НаСервере
&После("ВосстановитьНастройки")
Процедура РПП_ВосстановитьНастройкиПосле()
Если КлючНазначенияИспользования <> "ФормаСпискаЭПД" Тогда
Возврат;
КонецЕсли;
// Обрабатываем только старый набор из 6 типов.
Если ОтборТипыДокументов.Количество() <> 6 Тогда
Возврат;
КонецЕсли;
Если ОтборТипыДокументов.НайтиПоЗначению(
Тип("ДокументСсылка.ЭлектронноеПоручениеЭкспедитору")) <> Неопределено Тогда
Возврат;
КонецЕсли;
КлючОбъекта =
"Обработка.ЭлектронныеПеревозочныеДокументы.Форма.ФормаСпискаЭПД";
Настройки = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
КлючОбъекта,
КлючНазначенияИспользования);
Если ТипЗнч(Настройки) = Тип("Структура")
И Настройки.Свойство("ОтборТипыДокументов") Тогда
// Удаляем ТОЛЬКО старый отбор по видам документов.
Настройки.Удалить("ОтборТипыДокументов");
ОбщегоНазначения.ХранилищеОбщихНастроекСохранить(
КлючОбъекта,
КлючНазначенияИспользования,
Настройки);
// Убираем уже восстановленные 6 типов из текущей формы.
ОтборТипыДокументов.Очистить();
КонецЕсли;
КонецПроцедуры
Важный момент: расширение не подменяет типовой список документов и не добавляет новые типы вручную.
Оно только удаляет устаревший ОтборТипыДокументов из пользовательских настроек.
После выполнения процедуры типовой код продолжает работу. Так как список уже очищен:
ОтборТипыДокументов.Количество() = 0
типовой механизм самостоятельно формирует актуальный перечень видов ЭПД.
При этом из сохраненной структуры удаляется только:
ОтборТипыДокументов
Остальные пользовательские настройки формы остаются без изменений.
В нашем случае данный вариант был проверен: после установки расширения и открытия рабочего места все новые документы появились в общем списке.
После первого успешного открытия расширение можно удалить. Проблемная настройка уже очищена, поэтому при последующих открытиях типовая форма самостоятельно заполняет актуальный список видов документов.
Если нет желания самостоятельно создавать расширение, готовый файл приложен к публикации.
Расширение исправляет персональную настройку текущего пользователя при первом открытии рабочего места. Если проблема может присутствовать у нескольких пользователей, рекомендуется оставить расширение подключенным до тех пор, пока все пользователи, работающие с ЭПД, хотя бы один раз не откроют рабочее место. После этого расширение можно удалить.
Итог
Если пользователь имеет права на ЭПД, может создавать и отправлять документы, видит их в отдельном журнале и в «Реестре ЭПД», но не видит в общем рабочем месте «Электронные перевозочные документы», проблема может быть не в правах и не в RLS.
Причиной может оказаться сохраненный:
ОтборТипыДокументов
После обновления конфигурации в нем остается старый перечень видов документов, а новые типы автоматически в ранее сохраненную настройку не добавляются.
В результате общий список продолжает отбираться только по старым видам ЭПД.
Наиболее аккуратное решение: удалить из персональных настроек только устаревший ОтборТипыДокументов, после чего позволить типовому механизму сформировать актуальный перечень заново.
Полностью очищать все пользовательские настройки для этого не требуется.
Проверено на следующих конфигурациях и релизах:
- Управление нашей фирмой, редакция 3.0, релизы 3.0.14.140
Вступайте в нашу телеграмм-группу Инфостарт