Четверг, 14.11.2024, 14:02
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Динамический список
nclockworkerДата: Воскресенье, 04.04.2021, 17:49 | Сообщение # 1
Генерал-майор
Группа: Пользователи
Сообщений: 437
Репутация: 342
Статус: Оффлайн
Код
{ВнешняяОбработка.ирОбщий.МодульОбъекта(21941)}: Поле объекта не обнаружено (Наименование)
   ЗначениеЯчейки = ТабличноеПоле.ТекущиеДанные[ИмяКолонки];

Как воспроизвести. Открываем инструмент Динамический Список, выбираем РегистрСведений.КлючиАналитикиУчетаНоменклатуры, затем команда "Изменить" (через независимый редактор объекта БД строки), в открывшейся форме выбираем реквизит "КлючАналитики", щелкаем по значению 2 раза, чтобы изменить, затем жмем три точки, чтобы выбрать другую ссылку. Открывается форма выбора динамического списка. Становимся мышкой на ячейку любой строки поля Наименование, жмем Ctrl+Q.

 
tormozitДата: Воскресенье, 04.04.2021, 19:02 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 6451
Репутация: 168
Статус: Оффлайн
Непонятно, из какой таблицы БД выполняется выбор строки через инструмент "Динамический список". Желательно показать картинку. Не смог воспроизвести.
 
nclockworkerДата: Воскресенье, 04.04.2021, 20:06 | Сообщение # 3
Генерал-майор
Группа: Пользователи
Сообщений: 437
Репутация: 342
Статус: Оффлайн
Записал видео
Прикрепления: obs-06-.mp4 (2.56 Mb)
 
tormozitДата: Воскресенье, 04.04.2021, 20:54 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 6451
Репутация: 168
Статус: Оффлайн
У меня такого справочника нет. На других мне не удалось воспроизвести ошибку. Покажи через отладчик или исследователь (ИР) значения свойств объектов
1. ТабличноеПоле.ТекущиеДанные
2. Коллекция - Форма.ЭлементыФормы.ДинамическийСписок.Значение.Колонки

Прикрепления: 5630555.png (23.6 Kb)
 
nclockworkerДата: Воскресенье, 04.04.2021, 21:04 | Сообщение # 5
Генерал-майор
Группа: Пользователи
Сообщений: 437
Репутация: 342
Статус: Оффлайн
Прикрепления: 5306605.png (25.2 Kb)
 
tormozitДата: Воскресенье, 04.04.2021, 21:22 | Сообщение # 6
Генералиссимус
Группа: Администраторы
Сообщений: 6451
Репутация: 168
Статус: Оффлайн
Не могу понять что выводится в колонку "Наименование". Похоже что колонка списка "Ссылка" туда выводится.
1. Если нажать "Сбросить" в командной панели списка, то проблема воспроизводится?
2. Покажи колонки таблицы значений полученной запросом из этой таблицы БД.
3. Покажи в отладчике значения свойств ЭлементыФормы.ДинамическийСписок.ТекущиеДанные
 
nclockworkerДата: Воскресенье, 04.04.2021, 21:45 | Сообщение # 7
Генерал-майор
Группа: Пользователи
Сообщений: 437
Репутация: 342
Статус: Оффлайн
1. Воспроизводится
2.

Прикрепления: 1606621.png (26.2 Kb) · 7765405.png (65.7 Kb)
 
tormozitДата: Воскресенье, 04.04.2021, 23:26 | Сообщение # 8
Генералиссимус
Группа: Администраторы
Сообщений: 6451
Репутация: 168
Статус: Оффлайн
Найди в модуле ирОбщий строку
Код
// Сюда попадает например элемент отбора от критерия отбора
вставь после нее строку
Код
ОписаниеОшибки = ОписаниеОшибки(); // Для отладки
поставь точку останова на следующей за ней строке и перевыбери эту таблицу БД в форме "Динамический список". При остановке в переменной ОписаниеОшибки смотри описание ошибки.

Еще желательно показать коллекцию ЭлементыФормы.ДинамическийСписок.Значение.Отбор
 
tormozitДата: Воскресенье, 04.04.2021, 23:40 | Сообщение # 9
Генералиссимус
Группа: Администраторы
Сообщений: 6451
Репутация: 168
Статус: Оффлайн
Вообще наверное там ошибки не возникает. Судя по твоим картинкам колонка списка, отображающая наименование, корректно выполняет основную функцию. Но почему то в коллекции колонок списка у нее пустое имя и как следствие в объекте ТекущиеДанные нет соответствующего ей свойства. Я такого еще не встречал. Вероятно работает какая то ошибка платформы

Прикрепления: 8605203.png (113.6 Kb)
 
nclockworkerДата: Понедельник, 05.04.2021, 06:00 | Сообщение # 10
Генерал-майор
Группа: Пользователи
Сообщений: 437
Репутация: 342
Статус: Оффлайн
Я отладчиком прошелся по коду, где колонки добавляются. Вначале функции ДинамическийСписок имеет всего 3 колонки, уже к концу функции "подтягиваются" остальные, но за исключением колонки "Наименование". В результате в самой таблице колонка была добавлена, а в динамическом списке её нет...
 
tormozitДата: Понедельник, 05.04.2021, 22:27 | Сообщение # 11
Генералиссимус
Группа: Администраторы
Сообщений: 6451
Репутация: 168
Статус: Оффлайн
Во всех известных мне ситуациях ЭлементыФормы.ДинамическийСписок.Значение.Отбор содержит элемент с именем "Наименование" для справочника с наименованием. В твоем случае он присутствует?
Если да, то при выполнении строки
Код
КолонкиСписка.Добавить(ЭлементОтбора.Имя, ЭлементОтбора.Имя <> ПеревестиСтроку("Ссылка") И ЭлементОтбора.Имя <> ПеревестиСтроку("ЭтоГруппа"));
Должна возникать ошибка. Хотелось узнать ее полный текст.
 
nclockworkerДата: Вторник, 06.04.2021, 06:08 | Сообщение # 12
Генерал-майор
Группа: Пользователи
Сообщений: 437
Репутация: 342
Статус: Оффлайн
До той строки кода даже не доходит, т.к. код
Колонка = КолонкиТП.Найти(ЭлементОтбора.Имя);
возвращает найденную колонку и уже в следующей строке переменная Колонка не равна Неопределено.



Прикрепления: 4651482.png (31.0 Kb) · 2458972.png (26.3 Kb) · 5871956.png (86.3 Kb)
 
tormozitДата: Вторник, 06.04.2021, 07:47 | Сообщение # 13
Генералиссимус
Группа: Администраторы
Сообщений: 6451
Репутация: 168
Статус: Оффлайн
Попробуй заменить код
   
Код
Для Каждого ЭлементОтбора Из ОсновнойЭУ.Значение.Отбор Цикл
        Колонка = КолонкиТП.Найти(ЭлементОтбора.Имя);
        Если Колонка = Неопределено Тогда
            // Антибаг 8.2.15 http://partners.v8.1c.ru/forum/thread.jsp?id=1002521#1002521
            Если Ложь
                Или Найти(ЭлементОтбора.Имя, "ВидСубконтоДт") = 1
                Или Найти(ЭлементОтбора.Имя, "ВидСубконтоКт") = 1
            Тогда
                Продолжить;
            КонецЕсли;
            Если КолонкиСписка <> Неопределено Тогда
                Попытка
                    КолонкиСписка.Добавить(ЭлементОтбора.Имя, ЭлементОтбора.Имя <> ПеревестиСтроку("Ссылка") И ЭлементОтбора.Имя <> ПеревестиСтроку("ЭтоГруппа"));
                Исключение
                    // Сюда попадает например элемент отбора от критерия отбора
                    ОписаниеОшибки = ОписаниеОшибки(); // Для отладки
                    Продолжить;
                КонецПопытки;
            КонецЕсли;
            Колонка = КолонкиТП.Добавить();
        КонецЕсли;

на

Код

  Для Каждого ЭлементОтбора Из ОсновнойЭУ.Значение.Отбор Цикл
        // Антибаг 8.2.15 http://partners.v8.1c.ru/forum/thread.jsp?id=1002521#1002521
        Если Ложь
            Или Найти(ЭлементОтбора.Имя, "ВидСубконтоДт") = 1
            Или Найти(ЭлементОтбора.Имя, "ВидСубконтоКт") = 1
        Тогда
            Продолжить;
        КонецЕсли;
        Если КолонкиСписка <> Неопределено Тогда
            АвтоудалениеКолонки = ЭлементОтбора.Имя <> ПеревестиСтроку("Ссылка") И ЭлементОтбора.Имя <> ПеревестиСтроку("ЭтоГруппа");
            Попытка
                КолонкиСписка.Добавить(ЭлементОтбора.Имя, АвтоудалениеКолонки);
            Исключение
                // Сюда попадает например элемент отбора от критерия отбора
                ОписаниеОшибки = ОписаниеОшибки(); // Для отладки
                Продолжить;
            КонецПопытки;
        КонецЕсли;
        КолонкаТП = КолонкиТП.Найти(ЭлементОтбора.Имя);
        Если КолонкаТП = Неопределено Тогда
            КолонкаТП = КолонкиТП.Добавить();
        КонецЕсли;
 
nclockworkerДата: Вторник, 06.04.2021, 19:12 | Сообщение # 14
Генерал-майор
Группа: Пользователи
Сообщений: 437
Репутация: 342
Статус: Оффлайн
Заменил, пришлось перезапускать целиком клиентское приложение, видимо кэширует обработку. Начало происходить что-то непонятное, причем не в форме выбора ДС, а в самом ДС:


Код
{ВнешняяОбработка.ирОбщий.МодульОбъекта(21075)}: Поле объекта не обнаружено (СтатьяКалькуляции)
            Если ДанныеСтроки[КлючИЗначение.Ключ] <> Элемент.ТекущиеДанные[КлючИЗначение.Ключ] Тогда

Причем любопытно то, что в редакторе строки регистра сведений пропали поля и осталось только одно поле "Склад", я изменил его тип на справочник "СправочникСсылка.КлючиАналитикиУчетаНоменклатуры" и открыл точно также как и раньше через форму выбора ДС, и там ошибка с "Наименованием" - ушла.
Прикрепления: 0961252.png (11.1 Kb)


Сообщение отредактировал nclockworker - Вторник, 06.04.2021, 19:32
 
tormozitДата: Вторник, 06.04.2021, 19:49 | Сообщение # 15
Генералиссимус
Группа: Администраторы
Сообщений: 6451
Репутация: 168
Статус: Оффлайн
Ну в целом значит ошибка исправилась. https://www.hostedredmine.com/issues/924969
Для обхода новой ошибки присвой переменной "АвтоудалениеКолонки" постоянно Ложь
Код
АвтоудалениеКолонки = Ложь;
 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: