Имя: Пароль:
1C
1С v8
СКД внешний отчет + расширение
,
0 johnbay
 
08.02.23
16:38
Добрый день.
Было: старый релиз платформы, 8.3.18. В расширении к типовому объекту добавлен реквизит. Сделан внешний отчет на СКД с участием этого реквизита в тексте запроса.
При открытии этой СКД в конфигураторе присутствовала проблема с "поле не найдено". Она обходилась путем редактирования СКД в режиме Предприятия в КонсолиСКД. Далее СКД сохранялась в xml, в конфигураторе грузилась обратно в СКД отчета. Все работало.
Стало: Теперь имею релиз 8.3.21.1624 и на последнем шаге, при загрузке из XML срубаются поля ресурсов отчета - удаляются вместе с формулами.
Как то этот пересчет ресурсов в СКД после загрузки XML обойти возможно?
1 Donkey_hot
 
08.02.23
17:10
(0) А встроить отчет в расширение не вариант?
2 kittystark
 
08.02.23
17:10
добавь в наборы данных еще один "левый" с запросом эмулирующем слетающие поля, типа "выбрать 0 как МоеПоле"
в приКомпоновкеРезультата - удаляй это набор, чтоб не ругалось на несвязанные поля
3 Donkey_hot
 
08.02.23
17:10
(0) Либо в текст запроса заглушку какую-нибудь, а потом в коде переопределить
4 johnbay
 
08.02.23
17:24
(1) Таких отчетов не один. В расширение придется тащить целую кучу типовых реквизитов, что не нужно от слова совсем.
(2, 3) Отчет полностью "не программный". СКД вшита. Используется механизм внешних отчетов типовых конф типа УТ11, КА2 и т.п.
5 unenu
 
08.02.23
17:31
(2) можно и не удалять, а создать второй набор с слеюдущими полями
Выбрать
ПолеТакоето КАК 0,
....
_ПолеСвязи КАК Истина

ГДЕ ЛОЖЬ

В основном наборе добавить
_ПолеСвязи КАК Истина

затем настроить фейковую связь по _ПолеСвязи, чтобы на типы полей связи не "ругалось"
слева основной набор, справа пустой набор-затычка

эта связь никак не повлияет на выборку и может быть ресурсы не перекосит, вроде)
6 unenu
 
08.02.23
17:32
+(5) в примере поля и значения наооборот, ес-но
7 unenu
 
08.02.23
17:34
хотя удалять логичнее, да. типы полей станут составными и это может создать неприятности.
8 johnbay
 
08.02.23
17:54
(5) Сработало. Но есть куча НО:
1. Чтобы создать эту связь надо убрать проблемное поле. Добавить связь. Вернуть "проблему" на место. Ругатся продолжает на него. Но поля отображает, дает настроить Ресурсы.
2. После закрытия СКД и открытия заново - все начинать с начала. Т.е. проблема в полный рост как и была - удалены ресурсы, доступные поля и т.п.
3. В сохраненных в Предприятии вариантах этого отчета отвалились настройки структуры отчета. Их надо пересоздавать заново.
9 johnbay
 
08.02.23
18:05
(7) проблема не в типах данных, а в том что компилятор запроса не находит поле. После этого он останавливает работу и доступные поля СКД не создаются, а ресурсы удаляются.
10 johnbay
 
08.02.23
18:52
Решил вопрос в процедуре ПриКомпоновкеРезультата заменой текста запроса по проблемным полям.
Засада в том, что теперь в старых отчетах не посмотреть что находится в ресурсах, вычисляемых выражениях, ...
Нужно откатывать релиз чтобы это увидеть. Ужас.
11 johnbay
 
08.02.23
19:08
И не обязательно связываться с расширением.
Провел тест:
0. создал пустую конфигурацию
1. Документ1 с реквизитом Сумма (Число)
2. Отчет1 с запросом Ссылки и Сумма. В Ресурсах для Сумма = Минимум(Сумма).
3. Обновляем конфу. Отчет работает
4. Переименовываем реквизит Документ1.Сумма в Сумма1. Обновляем конфу.
5. Заходим в СКД Отчет1 - ошибка, все стерто. Ресурсов нет.
12 johnbay
 
08.02.23
19:28
(11)
6. при выгрузке СКД в XML информация по ресурсам так же отсутствует.
13 Donkey_hot
 
08.02.23
20:17
(10) Если так много телодвижений с этими отчетами, может имеет смысл создать тестовую базу именно для отчетов, в которой все собственные объекты расширений перенести в основную конфу?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан