|
Динамический список
|
|
| nclockworker | Дата: Вс, 04.04.2021, 17:49:10 | Сообщение # 1 |
|
Генерал-майор
Группа: Пользователи
Сообщений: 437
Репутация: 342
Статус: Оффлайн
| Код {ВнешняяОбработка.ирОбщий.МодульОбъекта(21941)}: Поле объекта не обнаружено (Наименование) ЗначениеЯчейки = ТабличноеПоле.ТекущиеДанные[ИмяКолонки];
Как воспроизвести. Открываем инструмент Динамический Список, выбираем РегистрСведений.КлючиАналитикиУчетаНоменклатуры, затем команда "Изменить" (через независимый редактор объекта БД строки), в открывшейся форме выбираем реквизит "КлючАналитики", щелкаем по значению 2 раза, чтобы изменить, затем жмем три точки, чтобы выбрать другую ссылку. Открывается форма выбора динамического списка. Становимся мышкой на ячейку любой строки поля Наименование, жмем Ctrl+Q.
|
| |
| |
| tormozit | Дата: Вс, 04.04.2021, 19:02:50 | Сообщение # 2 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7276
Репутация: 193
Статус: Оффлайн
| Непонятно, из какой таблицы БД выполняется выбор строки через инструмент "Динамический список". Желательно показать картинку. Не смог воспроизвести.
|
| |
| |
| nclockworker | Дата: Вс, 04.04.2021, 20:06:42 | Сообщение # 3 |
|
Генерал-майор
Группа: Пользователи
Сообщений: 437
Репутация: 342
Статус: Оффлайн
| Записал видео
|
| |
| |
| tormozit | Дата: Вс, 04.04.2021, 20:54:01 | Сообщение # 4 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7276
Репутация: 193
Статус: Оффлайн
| У меня такого справочника нет. На других мне не удалось воспроизвести ошибку. Покажи через отладчик или исследователь (ИР) значения свойств объектов 1. ТабличноеПоле.ТекущиеДанные 2. Коллекция - Форма.ЭлементыФормы.ДинамическийСписок.Значение.Колонки
|
| |
| |
| nclockworker | Дата: Вс, 04.04.2021, 21:04:32 | Сообщение # 5 |
|
Генерал-майор
Группа: Пользователи
Сообщений: 437
Репутация: 342
Статус: Оффлайн
|
|
| |
| |
| tormozit | Дата: Вс, 04.04.2021, 21:22:36 | Сообщение # 6 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7276
Репутация: 193
Статус: Оффлайн
| Не могу понять что выводится в колонку "Наименование". Похоже что колонка списка "Ссылка" туда выводится. 1. Если нажать "Сбросить" в командной панели списка, то проблема воспроизводится? 2. Покажи колонки таблицы значений полученной запросом из этой таблицы БД. 3. Покажи в отладчике значения свойств ЭлементыФормы.ДинамическийСписок.ТекущиеДанные
|
| |
| |
| nclockworker | Дата: Вс, 04.04.2021, 21:45:42 | Сообщение # 7 |
|
Генерал-майор
Группа: Пользователи
Сообщений: 437
Репутация: 342
Статус: Оффлайн
| 1. Воспроизводится 2.

|
| |
| |
| tormozit | Дата: Вс, 04.04.2021, 23:26:18 | Сообщение # 8 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7276
Репутация: 193
Статус: Оффлайн
| Найди в модуле ирОбщий строку
Код // Сюда попадает например элемент отбора от критерия отбора
вставь после нее строку
Код ОписаниеОшибки = ОписаниеОшибки(); // Для отладки
поставь точку останова на следующей за ней строке и перевыбери эту таблицу БД в форме "Динамический список". При остановке в переменной ОписаниеОшибки смотри описание ошибки.
Еще желательно показать коллекцию ЭлементыФормы.ДинамическийСписок.Значение.Отбор
|
| |
| |
| tormozit | Дата: Вс, 04.04.2021, 23:40:27 | Сообщение # 9 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7276
Репутация: 193
Статус: Оффлайн
| Вообще наверное там ошибки не возникает. Судя по твоим картинкам колонка списка, отображающая наименование, корректно выполняет основную функцию. Но почему то в коллекции колонок списка у нее пустое имя и как следствие в объекте ТекущиеДанные нет соответствующего ей свойства. Я такого еще не встречал. Вероятно работает какая то ошибка платформы
|
| |
| |
| nclockworker | Дата: Пн, 05.04.2021, 06:00:51 | Сообщение # 10 |
|
Генерал-майор
Группа: Пользователи
Сообщений: 437
Репутация: 342
Статус: Оффлайн
| Я отладчиком прошелся по коду, где колонки добавляются. Вначале функции ДинамическийСписок имеет всего 3 колонки, уже к концу функции "подтягиваются" остальные, но за исключением колонки "Наименование". В результате в самой таблице колонка была добавлена, а в динамическом списке её нет...
|
| |
| |
| tormozit | Дата: Пн, 05.04.2021, 22:27:33 | Сообщение # 11 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7276
Репутация: 193
Статус: Оффлайн
| Во всех известных мне ситуациях ЭлементыФормы.ДинамическийСписок.Значение.Отбор содержит элемент с именем "Наименование" для справочника с наименованием. В твоем случае он присутствует? Если да, то при выполнении строки
Код КолонкиСписка.Добавить(ЭлементОтбора.Имя, ЭлементОтбора.Имя <> ПеревестиСтроку("Ссылка") И ЭлементОтбора.Имя <> ПеревестиСтроку("ЭтоГруппа"));
Должна возникать ошибка. Хотелось узнать ее полный текст.
|
| |
| |
| nclockworker | Дата: Вт, 06.04.2021, 06:08:44 | Сообщение # 12 |
|
Генерал-майор
Группа: Пользователи
Сообщений: 437
Репутация: 342
Статус: Оффлайн
| До той строки кода даже не доходит, т.к. код Колонка = КолонкиТП.Найти(ЭлементОтбора.Имя); возвращает найденную колонку и уже в следующей строке переменная Колонка не равна Неопределено.


|
| |
| |
| tormozit | Дата: Вт, 06.04.2021, 07:47:12 | Сообщение # 13 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7276
Репутация: 193
Статус: Оффлайн
| Попробуй заменить код Код Для Каждого ЭлементОтбора Из ОсновнойЭУ.Значение.Отбор Цикл Колонка = КолонкиТП.Найти(ЭлементОтбора.Имя); Если Колонка = Неопределено Тогда // Антибаг 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:34 | Сообщение # 14 |
|
Генерал-майор
Группа: Пользователи
Сообщений: 437
Репутация: 342
Статус: Оффлайн
| Заменил, пришлось перезапускать целиком клиентское приложение, видимо кэширует обработку. Начало происходить что-то непонятное, причем не в форме выбора ДС, а в самом ДС:
Код {ВнешняяОбработка.ирОбщий.МодульОбъекта(21075)}: Поле объекта не обнаружено (СтатьяКалькуляции) Если ДанныеСтроки[КлючИЗначение.Ключ] <> Элемент.ТекущиеДанные[КлючИЗначение.Ключ] Тогда
Причем любопытно то, что в редакторе строки регистра сведений пропали поля и осталось только одно поле "Склад", я изменил его тип на справочник "СправочникСсылка.КлючиАналитикиУчетаНоменклатуры" и открыл точно также как и раньше через форму выбора ДС, и там ошибка с "Наименованием" - ушла.
Сообщение отредактировал nclockworker - Вт, 06.04.2021, 19:32:02 |
| |
| |
| tormozit | Дата: Вт, 06.04.2021, 19:49:11 | Сообщение # 15 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7276
Репутация: 193
Статус: Оффлайн
| Ну в целом значит ошибка исправилась. https://www.hostedredmine.com/issues/924969 Для обхода новой ошибки присвой переменной "АвтоудалениеКолонки" постоянно Ложь
Код АвтоудалениеКолонки = Ложь;
|
| |
| |