|
Формирование отчета из ТЗ | ☑ | ||
---|---|---|---|---|
0
Max57
18.10.23
✎
11:57
|
Здравствуйте, уважаемые форумчане. Мне нужно создать отчет на основе полученной ТЗ. Подскажите, пожалуйста, как мне это сделать. Процедуру ПриКомпоновкеРезультата прикладываю.
ПриКомпоновкеРезультатаПроцедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ТекстЗапроса = "ВЫБРАТЬ РАЗЛИЧНЫЕ | Номенклатура.Ссылка КАК Ссылка, | Номенклатура.Описание КАК Описание, | Номенклатура.ФайлКартинки КАК ФайлКартинки, | Номенклатура.ВесЧислитель КАК ВесЧислитель, | Номенклатура.Артикул КАК Артикул, | Номенклатура.Производитель КАК Производитель, | Номенклатура.СтранаПроисхождения КАК СтранаПроисхождения, | 0=0 |ИЗ | Справочник.Номенклатура КАК Номенклатура"; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | НоменклатураДополнительныеРеквизиты.Свойство.Имя КАК СвойствоИмя |ИЗ | Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выгрузить(); Свойства = Новый Массив; Для каждого Элемент Из ВыборкаДетальныеЗаписи Цикл Свойства.Добавить(Строка(Элемент.СвойствоИмя)); //Свойства.Добавить(Строка(Элемент.СвойствоИмя)); КонецЦикла; Для Индекс = 0 По Свойства.Количество()-1 Цикл СтрокаЗамены = "НоменклатураДополнительныеРеквизиты"+Индекс+".Значение КАК " + Свойства[Индекс]+","+Символы.ПС + "0=0"; ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"0=0",СтрокаЗамены) + Символы.ПС + "ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты"+(Индекс)+ Символы.ПС + "ПО (Номенклатура.Ссылка = НоменклатураДополнительныеРеквизиты"+ (Индекс) +".Ссылка)" + Символы.ПС + "И (НоменклатураДополнительныеРеквизиты"+(Индекс)+".Свойство.Имя ="+Символ(34) +Свойства[Индекс]+Символ(34) +")"; КонецЦикла; ПодстрокаПоиска = "," + Символы.ПС + "0=0"; ТекстЗапроса = СтрЗаменить(ТекстЗапроса,ПодстрокаПоиска,""); Запрос1 = Новый Запрос; Запрос1.Текст = ТекстЗапроса; Тз= Запрос1.Выполнить().Выгрузить(); КонецПроцедуры |
|||
1
Max57
18.10.23
✎
11:56
|
Как мне сделать так, чтобы поля в СКД автоматически создавались?
Нашел https://blagin.ru/programmnoe-dobavlenie-polej-i-resursov-v-skd/. Не до конца понял, как мне это переделать под мой отчет. |
|||
2
vicof
18.10.23
✎
11:56
|
||||
3
vicof
18.10.23
✎
11:58
|
(1) Прописывать их кодом. В статье из (1) это продемонстрировано.
|
|||
4
Max57
18.10.23
✎
12:04
|
(3) Спасибо, буду пробовать. Мне с СКД, что-нибудь нужно будет прописывать, кроме Имя объекта, содержащего дынные? Или нужно будет хотя бы одно поле создать?
|
|||
5
vicof
18.10.23
✎
12:09
|
(4) Если ты все хочешь программно создавать, то и поля нужно будет программно прописывать, и ресурсы, и группировки, и все остальное.
Если есть уже готовая схема компоновки, в которую только нужно вывести данные, то достаточно 10 строчек кода, и ничего дополнительно создавать не нужно. |
|||
6
Max57
18.10.23
✎
12:24
|
(5) Мне нужно, чтобы поля создавались программно, так как в отчёте буду выводиться допреквизиты и их могу потом еще добавить.
|
|||
7
Max57
18.10.23
✎
12:39
|
(5) Подскажите, пожалуйста. Правильно ли я создаю поля?
Для каждого Элемент Из Тз.Колонки Цикл Поле = СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных")); Поле.Заголовок = Элемент.Заголовок; Поле.ПутьКДанным = Элемент.Заголовок; Поле.Поле = Элемент.Заголовок; Поле.ТипЗначения = Элемент.ТипЗначения; КонецЦикла; |
|||
8
vicof
18.10.23
✎
13:06
|
"Правильно" зависит от многих факторов.
И на этот вопрос должен ответить ты сам. Тип значения скорей всего нужно будет через описание типов задавать. Имя поля и тип данных в общем случае отличаются. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |