Пятница, 11.10.2024, 14:59
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Ошибка при анализе отключаемых полей в СКД
ElgregoДата: Среда, 01.02.2023, 13:53 | Сообщение # 1
Лейтенант
Группа: Проверенные
Сообщений: 57
Репутация: 59
Статус: Оффлайн
Платформа: 8.3.21.1393
Режим БД: клиент-серверный
Конфигурация. Название: Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.123.26)
Конфигурация. Основной режим запуска: Управляемое приложение
Конфигурация. Вариант встроенного языка: Русский
Конфигурация. Режим управления блокировкой данных: Управляемый
Конфигурация. Режим совместимости: Версия8_3_18
Конфигурация. Режим использования синхронных вызовов: Использовать
Конфигурация. Версия БСП: 301
Конфигурация. Использовать обычные формы в управляемом приложении: Да
Инструменты разработчика. Версия: Конфигурация 6.62.1
Инструменты разработчика. Инструмент: Прочее
Инструменты разработчика. Перехват клавиатурного ввода: Да
Инструменты разработчика. Объекты на сервере: Да
Инструменты разработчика. Асинхронность запрещена: Нет
Инструменты разработчика. Разрешены имитаторы: Да
Клиент. Приложение: Управляемое приложение 64б
Клиент. Проверка модальных вызовов: Да
Клиент. Язык интерфейса конфигурации: ru
Клиент. Язык интерфейса системы: ru
Клиент. Отладка разрешена: Да
Клиент. Постоянный кэш метаданных: Да
Клиент. ОС: Microsoft Windows Server 2016 Standard 64-bit Русский
Клиент. ОС от имени администратора: Нет
Клиент. ОС Active code page: 866
Клиент. ОС выполнение BAT: Да
Клиент. ОС пинг сервера: 0мс
Сервер. ОС: Microsoft Windows Server 2012 R2 Standard 64-bit Русский
Сервер. Процесс: 64б
Сервер. Отладка: нет

При попытке выяснить причину недоступности поля в СКД вылетает ошибка:
Значение не является значением объектного типа (Поле)
{Обработка.ирКлсПолеТекстаПрограммы.Форма.КонструкторЗапроса.Форма(12255)}:ИмяДочернегоПоля = ирОбщий.ПоследнийФрагментЛкс("" + ДоступноеПоле.Поле);
{Обработка.ирКонсольКомпоновокДанных.Форма.Форма.Форма(3441)}:НаборПолей = КонструкторЗапроса.ВлияющиеНаВыбранноеПолеПоляМетаданных("" + ПолеНабора.Поле, БылиОшибки);
{Обработка.ирКонсольКомпоновокДанных.Форма.Форма.Форма(3406)}:ОткрытьАнализПравДоступа(РезультатВыбора.Значение);

Подозреваю, что ошибка возникает из-за того, что при разделении на фрагменты происходит преобразование имен полей к нижнему регистру, а сравнение идёт без преобразования. (см. скрин "ВероятнаяПричинаОшибки")
В моём случае ошибка возникает из-за передачи в функцию НайтиДоступноеПоле вторым параметром вот такой строки: "ХозрасчетныйОстаткиИОбороты.Субконто2"
Прикрепления: 0421451.png (59.5 Kb) · 2411335.png (128.3 Kb)
 
tormozitДата: Среда, 01.02.2023, 19:29 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 6388
Репутация: 165
Статус: Оффлайн
Ошибку подтверждаю https://www.hostedredmine.com/issues/957642
 
tormozitДата: Среда, 01.02.2023, 19:58 | Сообщение # 3
Генералиссимус
Группа: Администраторы
Сообщений: 6388
Репутация: 165
Статус: Оффлайн
Исправлено в 6.62.2
 
ElgregoДата: Четверг, 02.02.2023, 15:45 | Сообщение # 4
Лейтенант
Группа: Проверенные
Сообщений: 57
Репутация: 59
Статус: Оффлайн
К сожалению, это еще не конец эпопеи...
Как говорится, чем дальше в лес, тем толще партизаны.

После исправления этой ошибки в момент открытия отчета "Анализ прав доступа" возникает новая:

{Обработка.ирКлсПолеТекстаПрограммы.Форма.КонструкторЗапроса.Форма(1630)}: Таблица поля "ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Документ.СчетФактураВыданный).ДоговорКонтрагента" не найдена в списке выбранных
Кстати, если работать в обычном интерфейсе (не такси), в режиме "формы в закладках", то это сообщение пропадает сразу же после его появления. Увидеть его возможно только в интерфейсе ТАКСИ.

Тем не менее, сам отчёт открывается.
Вот как выглядят поля, которые были переданы из СКД:
 

Если нажать сформировать, то получаю еще одну ошибку:

Значение не является значением объектного типа (Заголовок)
{Отчет.ирАнализПравДоступа.МодульОбъекта(429)}:СтрокаМД.Представление = ПолеТаблицыБД.Заголовок;
{(1)}:Обработка.ВычислитьПрава(ПараметрыЗадания)
{ОбщийМодуль.ирОбщий.Модуль(21112)}:Результат = Вычислить("Обработка." + ИмяМетодаОбработки + "(ПараметрыЗадания)");
{Отчет.ирАнализПравДоступа.Форма.ФормаОтчета.Форма(337)}:ирОбщий.ВыполнитьЗаданиеФормыЛкс("ВычислитьПрава", ПараметрыЗадания, ЭтаФорма, "Сформировать",, ЭлементыФормы.ДействияФормы.Кнопки.Сформировать, "СформироватьЗавершение",,, Истина);

Т.е. пока проанализировать причину с помощью ИР не удалось sad

Пытался анализировать алгоритм... Думаю, что пока не перейти на анализ полей через объект "СхемаЗапроса", а не пытаться их получить из строк, ошибок будет избежать крайне сложно. Но это чисто моя обывательская точка зрения. Сам относительно недавно стал дорабатывть типовые запросы через схему запроса. Оказалось сильно проще и надёжнее. Но, судя по всему, для изменения алгоритма труда придётся приложить немало sad
Прикрепления: 1423767.png (62.0 Kb)
 
tormozitДата: Четверг, 02.02.2023, 16:00 | Сообщение # 5
Генералиссимус
Группа: Администраторы
Сообщений: 6388
Репутация: 165
Статус: Оффлайн
Нужен полный текст запроса и файл DCF с отчетом
 
ElgregoДата: Четверг, 02.02.2023, 16:06 | Сообщение # 6
Лейтенант
Группа: Проверенные
Сообщений: 57
Репутация: 59
Статус: Оффлайн
Файл DCF приложил.
Текст запроса не поместился. Прикрепил файл sel.
Прикрепления: 2019_.dcf (200.6 Kb) · 7833138.sel (70.7 Kb)
 
tormozitДата: Четверг, 02.02.2023, 20:45 | Сообщение # 7
Генералиссимус
Группа: Администраторы
Сообщений: 6388
Репутация: 165
Статус: Оффлайн
Ошибки воспроизвел
https://www.hostedredmine.com/issues/957694
https://www.hostedredmine.com/issues/957700
 
tormozitДата: Воскресенье, 05.02.2023, 22:03 | Сообщение # 8
Генералиссимус
Группа: Администраторы
Сообщений: 6388
Репутация: 165
Статус: Оффлайн
Исправлено в 6.63
 
  • Страница 1 из 1
  • 1
Поиск: