Разработка отчета СКД по данным из расширения.

1. Angealtor 23 21.01.19 12:15 Сейчас в теме
Доброго всем дня!
Как корректно разработать отчет на СКД, где есть запрос данных по незаимствованным реквизитам из расширения? При разработке в конфигураторе ругается на то, что в конфигурации отсутствуют данные реквизиты. Сейчас делаю так - разрабатываю отчет в "консоли схем компоновки данных" в режиме "Предприятия", затем сохраняю схему, загружаю во внешний отчет. При загрузке схемы в отчет ругается, но отчеты работают. Но есть и другие более неприятные нюансы. Может быть есть штатный способ разработки таких отчетов корректно?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dhurricane 21.01.19 12:47 Сейчас в теме
Согласно политике 1С, расширения должны реализовывать независимый от других расширений функционал. Не рекомендуется разработка алгоритмов в одних расширениях, зависящих от данных других расширений, а также доработка конфигурации, основанная на данных расширений.
Поэтому штатного функционала в конфигураторе нет.
karamazoff; Tolpinski; signum2009; acanta; +4 Ответить
3. Angealtor 23 21.01.19 13:08 Сейчас в теме
(2) По-моему вы не совсем поняли мой вопрос.
Попробую объяснить по другому. Справочнику "Сегменты клиентов" в расширении я добавил реквизит "Важный" с типом "Булево". Теперь мне необходимо этот реквизит вывести в отчете СКД и вот здесь я с вами соглашусь - штатного механизма корректной разработки в конфигураторе такого отчета я не нашел, т.е. он есть, но реквизитов из расширения он не видит. Поэтому пришлось пойти костыльным путем разработки. И внешний отчет СКД - это не доработка конфигурации.
Механизму расширений уже не первый год, поэтому предположил, что может я что-то пропустил, и в конфигураторе уже появился штатный механизм разработки таких отчетов.
VickWood; +1 Ответить
4. dhurricane 21.01.19 13:41 Сейчас в теме
(3) Да, не подумал, что речь может быть про внешний отчет, прошу прощения.
5. EVKash 16 22.01.19 08:08 Сейчас в теме
(3) а что мешает этот отчет разместить в расширении?
signum2009; +1 Ответить
6. Angealtor 23 22.01.19 11:33 Сейчас в теме
(5) А как это меняет ситуацию? При разработке отчета в Конфигураторе, в независимости внешний он или в расширении, консоль СКД не видит реквизитов из расширения.
7. EVKash 16 22.01.19 14:26 Сейчас в теме
(6) Да ладно? ЧЯДНТ?
Прикрепленные файлы:
8. Angealtor 23 22.01.19 17:33 Сейчас в теме
(7) Интересно. Какая платформа? Делали какие-нибудь дополнительные настройки?
9. EVKash 16 23.01.19 08:38 Сейчас в теме
(8) Платформа 8.3.12.1714, режим совместимости "Не использовать". Никаких доп настроек нет.
10. D_e_X_T_e_R 575 29.07.19 14:12 Сейчас в теме
(9)
режим совместимости "Не использовать". Никаких доп настроек нет.


Та же самая платформа, тоже режим "не использовать", во внешнем отчете не видит реквизиты добавленные в расширение. Конфигурация ERP 2.4.6.174.

Прописывал в СКД руками, но в пользовательское режиме ругается, что не видит эти реквизиты.

Что делаю не так?
11. Polaru 03.02.20 23:35 Сейчас в теме
(10) Здравствуйте!
Вам удалось решить задачу с выбором данных в СКД из конфигурации и расширения?
12. user929985 18.02.20 10:28 Сейчас в теме
Только что проверил.
Необходимо сделать следующее:
1) отчет необходимо сначала создать в расширение, в котором есть заимствованный объект
2) доработать отчет, получив нужную настройку
3) делаем внешним, а из расширения удаляем :)
user1998468; umberto_nobile; user1868991; bacsi; vakham; Serg243; Igorro82IT; user598655_ilia-bers; user1464234; Efimoff; +10 Ответить
13. ilya005 123 05.11.20 03:16 Сейчас в теме
еще вариант:
к реквизитам из расширений обращаться через "вычисляемые поля"
user1671936; user712426; vakham; Serg243; Igorro82IT; simy4; daenur1301; Kubik1984; +8 Ответить
14. Kubik1984 59 16.04.21 11:04 Сейчас в теме
(13) Вот это более красивый вариант! Спасибо )
15. Apolonov-Erik 51 18.05.21 12:52 Сейчас в теме
Все это конечно работает, вот мне досталась конфигурация где создали около 30 реквизитов в составе расширений, причем расширений 8 штук.... Пойму когда один или два реквизита создают чтобы не заморачиваться при обновлениях на типовые решения, только не понимаю зачем добавлять реквизиты в расширения в таком количестве....
user598655_ilia-bers; +1 Ответить
16. daenur1301 08.07.21 13:01 Сейчас в теме
(13) Для внешних отчетов "вычисляемые поля" самый удобный вариант! ... Если отчет делать в расширении, а потом сохранять как внешний, то во-первых, в расширение нужно будет добавить кучу объектов и их реквизитов для создания запроса, и они только захламляют расширение, во-вторых, чтобы потом что-то доработать в запросе отчета нужно будет снова его встраивать в расширение, править и сохранять как внешний, это лишние телодвижения.
17. vinixp 10.04.22 22:09 Сейчас в теме
к реквизитам из расширений обращаться через "вычисляемые поля"

Так и непонял как к данным обратится. вычисляемого поля скиньте плиз
18. ruslan1982 11 29.07.22 11:51 Сейчас в теме
Можно еще сделать через внешние данные и соединения таблиц (при необходимости). В модуле отчета в процедуре ПриКомпоновкиРезультата создаем свой запрос и готовую таблицу выгружаем в схему компоновки. Возможно не всегда это будет приемлемо. Суть в том, что основная логика запроса делается сомой СКД, а не достающие данные через запрос в процедуре. Проверено, работает.
19. 0vrcr 57 04.10.22 17:15 Сейчас в теме
Мы пошли путем консоли СКД.
Запускаем консоль в режиме предприятия, туда копируем запрос, правим, потом выгружаем XML и загружаем в конфигуратор в отчет.
???
PROFIT!
fomix; Angealtor; +2 Ответить
20. Serg243 08.01.23 20:54 Сейчас в теме
(19) Консоль работает но если источник данных запрос, то конструктор отчета будет ругаться и не будет оказывать помощи. Если расширение одно, то уж проще (12) чтобы не плодить лишних мест для синтаксических ошибок.
ПС сделал вариант (12) не хочу вычисляемых полей, с детства не доверяю ручному набору, символом ошибся и ищи почему не работает.
21. 0vrcr 57 09.01.23 15:52 Сейчас в теме
(20) в режиме предприятия не ругается, но в (12) действительно неплохое решение, если объекты в одном расширении
22. user1810115 19.01.23 11:18 Сейчас в теме
Нашел вот ещё какой вариант:

1. Сохраняем внешний отчет в файлы "Действия - Выгрузить в файлы".
2. В предприятии в консоли системы компоновки данных загружаем схему компоновки из файла Template в каталоге "...\Templates\ОсновнаяСхемаКомпоновкиДанных\Ext".
3. Редактируем и сохраняем туда же.
4. Загружаем в конфигураторе через действия - загрузить из файлов
5. Сохраняем отчет и радуемся в предприятии что все работает!!!

Только что так сделал, все другие варианты сбивали ресурсы в отчете.
marku; WiseSnake; cj512; NoMAD525; maikl007; MaximKulkov; user830184; Newcomer; microftxx; Serg_tvr; MishaD; +11 Ответить
23. MaximKulkov 20.06.23 13:11 Сейчас в теме
(22) Не возникало при загрузке из файлов такой ошибки: Невозможно импортировать выбранный документ, т.к. он не является документом внешней обработки или отчета?
24. DimonPT 1 08.08.23 17:57 Сейчас в теме
26. MaximKulkov 14.08.23 09:18 Сейчас в теме
29. user1950534 26.03.24 11:10 Сейчас в теме
25. karamazoff 118 08.08.23 20:15 Сейчас в теме
нафига в расширении хранить данные? что мешает добавить объект в конфу, на обновление через конфу никак не повлияет, делаем внешний отчет, когда отладим, подключаем его в расширение
28. Natoriys 08.11.23 13:14 Сейчас в теме
У меня была задача вывести реквизит из расширения у документа и в отбор его добавить во внешнем отчете
1-Писал реквизит в запросе руками
2-Создавал вычисляемое поле и в выражении указывал имя реквизита (имя поля), которое задал в запросе
3-И выводил его в структуре уже куда мне хотелось.
30. Skaredov 248 27.05.24 10:32 Сейчас в теме
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	//Получаем схему
    СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
	
	//Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
	Настройки = КомпоновщикНастроек.ПолучитьНастройки();
	ПользовательскиеНастройки = КомпоновщикНастроек.ПользовательскиеНастройки; 
	
	//Текст запроса
	НаборДанных = СхемаКомпоновкиДанных.НаборыДанных[0];

	ТекстЗапроса = СтрЗаменить(НаборДанных.Запрос,
    "ВЫРАЗИТЬ("" "" КАК СТРОКА(512)) КАК ТрекНомер",
    "ЗаказКлиента.ТрекНомер КАК ТрекНомер");

	НаборДанных.Запрос = ТекстЗапроса; 
	
	//Выводим отчет в документ
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки);

    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);

	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
   	ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

КонецПроцедуры
Показать
31. BarsukM 28.05.24 10:46 Сейчас в теме
(30) Для просто замены текста запроса необязательно всю компоновку переопределять.
Достаточно будет:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	ТекстЗапроса = СхемаКомпоновкиДанных.НаборыДанных[0].Запрос;
	
	ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
		"ВЫРАЗИТЬ("" "" КАК СТРОКА(512)) КАК ТрекНомер",
		"ЗаказКлиента.ТрекНомер КАК ТрекНомер");
	
	СхемаКомпоновкиДанных.НаборыДанных[0].Запрос = ТекстЗапроса;
КонецПроцедуры
Показать

И такое приемлемо для реквизитов простых типов. С объектными начинаются проблемы.
32. soldatkin 12 11.11.24 11:19 Сейчас в теме
Привет, вот как я делал
в расширении есть реквизит у заказа "ФЕР_КомментарийВнутренний"

я сначала добавил поле с этим именем добавил в запрос как строку
ПОДСТРОКА("ФЕР_КомментарийВнутренний", 1, 1000) КАК ФЕР_КомментарийВнутренний

затем добавил его в настройки, в поля отчета

а уже потом в запросе вставил, то что мне нужно выводить в это в поле в отчете

ПОДСТРОКА(ЗаказКлиентаТовары.ФЕР_КомментарийВнутренний, 1, 1000) КАК ФЕР_КомментарийВнутренний
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот