Коллеги, добрый день!
Суть вопроса в следующем. Новые lts версии ERP, КА и (возможно) УТ требуют минимальную платформу 8.3.27.1559 и имеют актуальный режим совместимости (то бишь - не использовать). Со времен 2.5.17 есть в расширении несколько форм с динамическими списками, заимствованных из основной конфигурации, с добавленными в тексте запроса реквизитами и добавленными соответствующими элементами формы. Тексты запроса в модуле не переопределяются. После обновления на 2.5.22 все реквизиты динамического списка исчезли в расширении, в соответствующих элементах формы путь к данным очистился. Никакое редактирование текста в конструкторе не приводит к результатам, картина остаётся той же.
Если добавить новое расширение и попытаться отредактировать динамический список в добавленной из основной конфигурации форме - результат идентичен.
Так вот, собственно, вопрос - есть ли способ побороться с таким поведением или придётся рисовать в расширении полностью свои формы?
---
Программно в расширении изменил текст запроса и добавил поле в таблицу формы в документе ЗаказНаПроизводство2_2 в ERP 2.5.22 — работает.
Не помню даже случаев из практики, чтобы динамический список дорабатывался напрямую через захват в расширение (только программно), и такое не сработало — полей списка почему-то нет. Но тут наверно какой-то матан надо знать.
---
у расширения режим совместимости подняли?
Или без разницы "Если добавить новое расширение и попытаться отредактировать динамический список в добавленной из основной конфигурации форме - результат идентичен."?
---
Само собой. Пробовал и не поднимать, но результат ещё хуже - расширение просто не применяется.
---
Возможно, изменился тип какого-то реквизита. Ранее тип был ссылка справочник или документ, а сейчас например определяемый тип.
---
Спасибо за наводку, проверил, но состав реквизитов остался тем же - только ссылки, числа, строки (без изменения длины) и булево.
---
Вот так выглядит настройка списка. Запрос изменить можно, добавить поля - нет...
---
добавить поля куда?
---
Список полей - в верхней части конструктора. Там должны отображаться поля, которые затем можно выбирать в качестве путей к данным для элементов формы.
---
так Вы же произвольным запросом определяете поля...
---
И после редактирования запроса они должны появиться в списке доступных полей. Вот так это выглядит в форме из основной конфигурации.
---
верно.
Тогда немного повторюсь. Запускаете конфигуратор. Далее меню "Конфигурация" - "Расширения конфигурации". В списке находите расширение. Открываете. У документа открываете форму списка. Редактируете текст запроса. А список полей при этом не меняется? Т.е. если взять в типовой запрос сверху написать "ИСТИНА КАК ТестовоеПоле", то в списке полей ничего не изменится?
---
Именно так.
---
а если нажать правой кнопкой мыши по реквизиту список и еще раз выбрать добавить в расширение
---
Реквизит уже добавлен в расширение, второй раз эта процедура недоступна.
---
У формы в расширении не горит признак изменения формы основной конфигурации?
---
Да, стоит.
---
не то
---
А, Вы об этом.. Нет, форма обновлена.
---
В общем, ситуация оказалась ещё хуже, чем казалось изначально. Даже если создать расширение "с нуля" как адаптацию или дополнение, добавить там НОВУЮ форму, произвольную, хоть к документу, хоть к обработке, и создать там динамический список с указанием основной таблицы, то хоть ставь "произвольный запрос", хоть не ставь - реквизитов в списке не будет. И на форме, соответственно, показывать нечего. Что с этим... явлением делать - непонятно от слова "совсем".
---
а если "исправление", отключить безопасный режим?
---
Спасибо, попробовал, не помогло...
---
удали форму и добавь еще раз. Если не поможет меняй текст программно
---
Форму удалял, добавлял, менял текст программно. Программно же добавлял элементы формы в таблице, но попытка указать для них путь к данным приводит к ошибке. Так что тоже не вариант.
---
а ты проверял на момент того, что текст запроса модифицируется программно в типовом варианте и твои изменения тупо затираются?
---
Не очень понимаю, как программная модификация запроса влияет на конструктор формы в конфигураторе....
---
прямо. Колонки динамического списка напрямую зависят от текста запроса. Если у тебя элемент не выводится на форму, то динамический список его и не получает, а следовательно нет и колонки на форме.

т.е. ты можешь в конфигураторе хоть 1000 колонок вручную добавить, но если запрос программно переопределить, то данных в этих колонках не будет и следовательно самих колонок тоже
---
Это в предприятии, понятное дело. В конфигураторе, если у реквизита список есть поля, то их можно добавить на форму. Но до предприятия дело пока не дошло. Пришлось всё делать программно, спасибо (25)
---
Добавить то ты можешь, но ты не прочитал мой текст.

Смотри что получается по итогу если текст запроса изменяется программно
1) ты добавлешь в конфигураторе в запрос поле "Поле1"
2) выводишь в конфигураторе на форму колонку "Поле1" с путем к данным "Список.Поле1"
3) далее кто-то программно изменяет запрос и поле "поле1" пропадает
4) платформа автоматически убирает элементы формы с типом "ПолеФормы" (т.е. для полей где есть динамические данные, а не жестко фиксированные типо декораций), если у них не заполнено свойство "ПутьКДанным", а т.к. у твоего элемента "Поле1" по пути "Список.Поле1" теперь нет данных, то и платформа его удалить из формы
---
Это к вопросу, кто невнимательно читает. 1) ты добавлешь в конфигураторе в запрос поле "Поле1"
2) выводишь в конфигураторе на форму колонку "Поле1" с путем к данным "Список.Поле1" - эти пункты НЕ РАБОТАЮТ.
---
Нет это ты не внимательно читаешь. В 24 я спросил проверял ли ты на момент, что запрос динамического списка изменяется программно в коде. Ты ответил в 26 что не понимаешь как это связано. Значит не проверял. А в типовых конфах очень много где в динамических списках запросы модифицируются программно кодом. По этой причине у тебя програмнмое изменение и работает, потому что ты его делаешь уже ПОСЛЕ остальных возможных модификаций со стороны типового кода
---
Программно в расширении изменил текст запроса и добавил поле в таблицу формы в документе ЗаказНаПроизводство2_2 в ERP 2.5.22 — работает.
Не помню даже случаев из практики, чтобы динамический список дорабатывался напрямую через захват в расширение (только программно), и такое не сработало — полей списка почему-то нет. Но тут наверно какой-то матан надо знать.
---
Программно в расширении изменил текст запроса и добавил поле в таблицу формы в документе ЗаказНаПроизводство2_2 в ERP 2.5.22 — работает. А вот такой вариант я не пробовал - не захватывать в расширении основной реквизит "Список", а чисто программно изменить запрос и добавить поля.. Спасибо за подсказку, буду экспериментировать!