Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Анализ ЖР: различные значения колонки после отбора по комментарию, содержащему двойные кавычки #461

Open
john-doe-1c opened this issue Jun 15, 2023 · 8 comments
Labels
ошибка ИР Несоответствие поведения программы задуманному ошибка платформы проблема Неожиданное или неудобное поведение программы

Comments

@john-doe-1c
Copy link

Программное окружение

Платформа: 8.3.21.1624
Режим БД: клиент-серверный
Конфигурация. Название: 1C: УТП (11.1.4)
Конфигурация. Основной режим запуска: Управляемое приложение
Конфигурация. Вариант встроенного языка: Русский
Конфигурация. Режим управления блокировкой данных: Управляемый
Конфигурация. Режим совместимости: Версия8_3_9
Конфигурация. Режим использования синхронных вызовов: Использовать
Конфигурация. Версия БСП: 203
Конфигурация. Использовать обычные формы в управляемом приложении: Да
Инструменты разработчика. Версия: Конфигурация 6.78.1
Инструменты разработчика. Инструмент: Анализ журнала регистрации
Инструменты разработчика. Перехват клавиатурного ввода: Да
Инструменты разработчика. Объекты на сервере: Да
Инструменты разработчика. Асинхронность запрещена: Нет
Инструменты разработчика. Разрешены имитаторы: Да
Клиент. Приложение: Управляемое приложение 64б
Клиент. Проверка модальных вызовов: Нет
Клиент. Язык интерфейса конфигурации: ru
Клиент. Язык интерфейса системы: ru
Клиент. Отладка разрешена: Да
Клиент. Постоянный кэш метаданных: Да
Клиент. ОС: Microsoft Windows Server 2019 Standard 64-bit Русский
Клиент. ОС от имени администратора: Нет
Клиент. ОС выполнение BAT: Да
Клиент. ОС Active code page: 866
Клиент-Сервер. Пинг: 0мс
Сервер. ОС: Майкрософт Windows Server 2019 Standard 64-разрядная Русский
Сервер. Процесс: 64б
Сервер. Отладка: нет

Воспроизведение проблемы

  1. Открыть инструмент "Анализ ЖР".
  2. Загрузить на форму последние сто ошибок (а лучше тысячу или даже 10 тысяч).
  3. Встать в колонку "Комментарий" (в любую ячейку этой колонки в таблице подгруженных событий ЖР) и вызвать команду различных значений.
  4. Выбрать в списке любое значение, содержащее двойные кавычки, нажать дважды по нему мышкой - в таблице произойдет отбор по этому комментарию.
  5. Переместить фокус в колонку "Пользователь" (или в любую другую колонку, но можно и не перемещать вообще). Я перемещал в пользователя чтоб на следующем шаге получить список пользователей.
  6. Снова вызвать команду из шага 3, возникнет ошибка:
Ошибка при вызове метода контекста (Инициализировать)
{ОбщийМодуль.ирОбщий.Модуль(19805)}:ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, , Истина);
{ОбщийМодуль.ирОбщий.Модуль(19552)}:Результат = СкомпоноватьВКоллекциюЗначенийПоМакетуЛкс(МакетКомпоновки, КоллекцияЗначений, ВнешниеНаборыДанных, ТолькоСоздатьКолонки, СхемаКолонок, МаксимальноеЧислоСтрокРезультата,
{Обработка.ирРазличныеЗначенияКолонки.Форма.Форма.Форма(348)}:ТаблицаРезультата = ирОбщий.СкомпоноватьВКоллекциюЗначенийПоСхемеЛкс(СхемаКомпоновки, НастройкаКомпоновки,, ВнешниеНаборыДанных,,,,, РежимОтладки);
{Обработка.ирРазличныеЗначенияКолонки.Форма.Форма.Форма(1045)}:Если Не ОбновитьДанные(, Истина) Тогда
{ОбщийМодуль.ирКлиент.Модуль(16784)}:РезультатФормы = Форма.ОткрытьМодально();
{ОбщийМодуль.ирКлиент.Модуль(17409)}:ОткрытьРазличныеЗначенияКолонкиЛкс(ИсточникДействий,,, ЭтаФорма);
{Обработка.ирАнализЖурналаРегистрации.Форма.Форма.Форма(330)}:ирКлиент.УниверсальнаяКомандаФормыЛкс(ЭтаФорма, Кнопка);

по причине:
Ошибка компоновки данных
по причине:
Ошибка инициализации
по причине:
Ошибка в выражении
по причине:
Синтаксическая ошибка
@john-doe-1c john-doe-1c added the проблема Неожиданное или неудобное поведение программы label Jun 15, 2023
@tormozit tormozit added the ошибка ИР Несоответствие поведения программы задуманному label Jun 15, 2023
@tormozit
Copy link
Owner

tormozit commented Jun 15, 2023

Ошибку воспроизвел https://www.hostedredmine.com/issues/965039
Она вызвана ошибкой платформы. Не уверен что смогу найти надежное решение до ее исправления в платформе.

@john-doe-1c
Copy link
Author

Посмотрел ссылку, там упоминается вариант сравнения "Содержит".
А заменить его на "Равно" можно?

@tormozit
Copy link
Owner

tormozit commented Jun 19, 2023

Нет. Такой вид сравнения недоступен для текста неограниченной длины.
Диагностика ошибки улучшена в 6.80

@john-doe-1c
Copy link
Author

для текста неограниченной длины

А зачем комментарий события ЖР в твоем отборе сделан неограниченной длиной?
Когда я в различных значениях колонки нажимаю на конкретную строку, меня интересует отбор по конкретной строке конечной длины. Да и длины всех остальных событий, попавших на вход этой команды, известны.
Почему бы не делать (после вызова команды различных) эти комментарии строками ограниченной длины, чтоб отбор на равенство сработал корректно?

@tormozit
Copy link
Owner

tormozit commented Jun 19, 2023

Отбор (вид сравнения) делается механизмом платформы не по конкретным строкам таблицы, а по колонке. У нее есть тип. Чтобы его сузить для всей колонки, нужно выполнять опять же затратную операцию сужения типов колонок. И даже если ее сделать, то если будет хотя бы одно значение длиннее 1024 символа, то все равно придется использовать неограниченную длину.

@john-doe-1c
Copy link
Author

john-doe-1c commented Jun 19, 2023

если ее сделать, то если будет хотя бы одно значение длиннее 1024 символа, то все равно придется использовать неограниченную длину

Или не использовать, а отобрать по равенству первых 1024 символов (на время отбора урезав комментарии всех событий попавших на форму). И то только если в отбираемом значении есть двойная кавычка.
Не вариант для обхода?

@tormozit
Copy link
Owner

Разработчики платформы сообщили, что исправлять ошибку не будут, т.к. в режиме совместимости 8.3.19+ ошибка исправлена. А те, кто использует более низкие режимы совместимости, должны жить с этой ошибкой. https://partners.v8.1c.ru/forum/topic/2135554

@john-doe-1c
Copy link
Author

исправлять ошибку не будут, т.к. в режиме совместимости 8.3.19+ ошибка исправлена
Как-то можно их спросить, в чем они видят пользу от неисправления ошибки для совместимости 8.3.18-? Ну т.е. почему это вообще привязано к режиму совместимости, а не к версии платформы?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ошибка ИР Несоответствие поведения программы задуманному ошибка платформы проблема Неожиданное или неудобное поведение программы
Projects
None yet
Development

No branches or pull requests

2 participants