Вс, 26.07.2026, 16:36:42
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
ЗаполнитьКоличестваСтрокВТаблицеВсехТаблицЛкс роняет форму
zharДата: Вт, 14.07.2026, 15:17:02 | Сообщение # 1
Сержант
Группа: Пользователи
Сообщений: 26
Репутация: 36
Статус: Оффлайн
Версия подсистемы: Инструменты разработчика 8.19.1e, вариант — расширение конфигурации (CFE).
Версия платформы: 8.5.1.1343 (дефект от платформы не зависит).
Клиентское приложение: толстый клиент, обычное приложение.
Конфигурация: <название/версия>, вариант встроенного языка — Английский (как условие проявления).
СУБД: файловая ИБ.

В общем модуле **ирОбщий**, процедура **ЗаполнитьКоличестваСтрокВТаблицеВсехТаблицЛкс**
(строки 24714–24715), результат поиска таблицы в кэше используется без проверки:

Код
ОписаниеТаблицы = СписокТаблиц.Найти(НРег(СтрокаРезультата.ИмяТаблицы), "НПолноеИмя"); // ирОбщий.ОписаниеТаблицыБДЛкс()
ОписаниеТаблицы.КоличествоСтрок = СтрокаРезультата[ИмяКолонкиКоличества];

Если имя из результата статистики не находится в кэше таблиц — у нас это происходило на
конфигурации с английским вариантом встроенного языка (дерево интерфейсной панели формирует
полные имена с русскими префиксами видов, а кэш таблиц содержит английские имена) — форма
падает при обработке завершения фонового задания:


Значение не является значением объектного типа (КоличествоСтрок)
{ИнструментыРазработчикаTormozit CommonModule.ирОбщий.Module(24715)}: ОписаниеТаблицы.КоличествоСтрок = СтрокаРезультата[ИмяКолонкиКоличества];
{ИнструментыРазработчикаTormozit DataProcessor.ирИнтерфейснаяПанель.Form.Форма.Form(2426)}: ирОбщий.ЗаполнитьКоличестваСтрокВТаблицеВсехТаблицЛкс(РезультатЗадания);
{(1)}: ЭтаФорма.ОбновитьСтатистикуЗавершение(Состояние, Результат)
{ИнструментыРазработчикаTormozit CommonModule.ирКлиент.Module(17611)}: Выполнить("ЭтаФорма." + ОписаниеЗадания.ОбработчикЗавершения + "(Состояние, Результат)");


Ниже в этой же процедуре аналогичная проверка уже есть (строки 24719–24722, для «Константы»):

Код
ОписаниеТаблицы = ОписаниеТаблицыБДЛкс("Константы");
Если ОписаниеТаблицы <> Неопределено Тогда
    ОписаниеТаблицы.КоличествоСтрок = 1;
КонецЕсли;


Порядок воспроизведения:
1. Конфигурация с вариантом встроенного языка «Английский», ИР 8.19.1e.
2. Толстый клиент (обычное приложение) → Интерфейсная панель (ИР) → включить количество строк.

Фактический результат: ошибка «Значение не является значением объектного типа (КоличествоСтрок)».
Ожидаемый: несопоставленные таблицы пропускаются, форма работает (количество у них не показывается).

Предлагаемая правка:

Код
ОписаниеТаблицы = СписокТаблиц.Найти(НРег(СтрокаРезультата.ИмяТаблицы), "НПолноеИмя");
Если ОписаниеТаблицы <> Неопределено Тогда
    ОписаниеТаблицы.КоличествоСтрок = СтрокаРезультата[ИмяКолонкиКоличества];
КонецЕсли;
 
tormozitДата: Ср, 15.07.2026, 23:08:25 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 7404
Репутация: 196
Статус: Оффлайн
Ошибку воспроизвел https://www.hostedredmine.com/issues/1008595
 
tormozitДата: Вс, 19.07.2026, 17:41:27 | Сообщение # 3
Генералиссимус
Группа: Администраторы
Сообщений: 7404
Репутация: 196
Статус: Оффлайн
Исправлено в 8.20
 
  • Страница 1 из 1
  • 1
Поиск: