|
СКД: полностью программное заполнение схемы | ☑ | ||
---|---|---|---|---|
0
ixijixi
14.02.13
✎
18:18
|
Есть хотелка формировать схему КД программно.
Например, есть такой отчет - РСВ-1. Он постоянно корректируется 1с-овцами. Мне из него нужен конкретный кусок - таблица 3.1 "Выплаты инвалидам". Я беру из него 2 текста запроса - ОсновнойЗапросТекст и ДоходыИнвалидовТекст. При открытии своего отчета пихаю СхемаКомпоновкиДанных.НаборыДанных[0].Запрос = ПолучитьТекстЗапроса(); где функция ПолучитьТекстЗапроса() выдает те самые куски из регламентированного отчета. Все хорошо, ошибок нет, схема создается, но фишка в том, что нужно еще задать: 1. Ресурсы СКД 2. Параметры 3. Настройки В противном случае отчет не формируется (выдает просто список физлиц). Можно ли как-либо задать вышеуказанные 1, 2 и 3 ПРОГРАММНО? З.Ы. В пользовательском режиме вообще-то можно настроить структуру и получить отчет, но хотелось бы полностью автоматизировать. |
|||
1
Fragster
гуру
14.02.13
✎
18:24
|
Да, можно
|
|||
2
Fragster
гуру
14.02.13
✎
18:24
|
кто мы такие, чтобы тебе запрещать?
|
|||
3
pumbaEO
14.02.13
✎
18:25
|
||||
4
GANR
14.02.13
✎
18:32
|
(0) Чтобы увидеть что за СКД и настройки создает твой отчет сделай так (в толстом клиенте или обычном приложении):
ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.ОткрытьФайл("D:\СКД_отчета.xml"); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, ТвояСКД); ЗаписьXML.Закрыть(); ЗаписьXML.ОткрытьФайл("D:\Настройки_отчета.xml"); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, ТвойКомпоновщикНастроек.ПолучитьНастройки()); ЗаписьXML.Закрыть(); Затем открываешь конструктор СКД на закладке "Наборы данных" загружаешь "D:\СКД_отчета.xml" , а на закладке "Настройки" над окном "Структура отчета" загружаешь "D:\Настройки_отчета.xml". |
|||
5
UnsavedSoul
14.02.13
✎
20:24
|
У ОтчетОбъект есть свойство КомпоновщикНастроек, из которого ты можешь получить результирующие настройки отчета (тип НастройкиКомпоновкиДанных), в свою очередь у настроек есть свойство Структура, которое и содержит структуру отчета. Это универсальная коллекция и ее можно править как и любую другую.
Вот пример кода: Настройки = КомпоновщикНастроек.Настройки; НоваяГруппировка = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); НоваяГруппировка.Использование = Истина; ПолеГруппировки = НоваяГруппировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных("Номенклатура");//здесь номенклатура - поле из набора данных ПолеГРуппировки.Использование = Истина; И так далее, с Синтакс-помощником и отладчиком разберешься, в соседнем окне можешь открыть декларативные настройки отчета и поэтапно добавлять элементы в графике и в коде. |
|||
6
Trier
14.02.13
✎
20:36
|
Он постоянно корректируется 1с-овцами.
________________________________ Ура, термин "адинэсник" в прошло! теперь надо говорить "адинэс-овца" |
|||
7
EvgeniuXP
14.02.13
✎
21:05
|
хорошо звучит: 1С - ОВЦА :)
|
|||
8
ixijixi
15.02.13
✎
08:22
|
(4) Отличный совет!
Сравнил тексты запроса СКД и программного. Выяснилось, что они отличаются в части компоновки данных (sick! какое открытие!), например ПОМЕСТИТЬ ВТСведенияОДоходах ИЗ РегистрНакопления.СтраховыеВзносыСведенияОДоходах.Обороты(&парамНачалоГода {(&НачалоПериода)}, &парамКонецОтчетногоПериода {(&КонецПериода)}, МЕСЯЦ, Организация = &парамГоловнаяОрганизация {(Организация = &парамГоловнаяОрганизация)}) КАК СтраховыеВзносыСведенияОДоходахОбороты {ГДЕ СтраховыеВзносыСведенияОДоходахОбороты.ФизЛицо.*, СтраховыеВзносыСведенияОДоходахОбороты.ОбособленноеПодразделение.* КАК Организация} превращается в ПОМЕСТИТЬ ВТСведенияОДоходах ИЗ РегистрНакопления.СтраховыеВзносыСведенияОДоходах.Обороты(&парамНачалоГода, &парамКонецОтчетногоПериода, МЕСЯЦ, Организация = &парамГоловнаяОрганизация) КАК СтраховыеВзносыСведенияОДоходахОбороты Таким образом, исходные тексты запроса из РСВ-1 нужно дополнять полями компоновки данных. Вопрос: не слишком ли это трудоемко - искать позиции фигурных скобок и вставлять их в нужную позицию нового запроса? Или применить какой-нибудь иной подход? Что скажете? |
|||
9
el-gamberro
15.02.13
✎
08:38
|
(7) я недавно услышал: 1С-сер.
|
|||
10
ixijixi
15.02.13
✎
08:40
|
(9) не отвлекаемся, комментируем ))
|
|||
11
ixijixi
15.02.13
✎
10:51
|
ап
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |