|
СКД: Установить параметры программно | ☑ | ||
---|---|---|---|---|
0
Живой Ископаемый
02.04.10
✎
16:20
|
Есть вот такой код
СхемаКомпоновкиДанных = ПолучитьМакет("БезОрганизацийИБухСчетов"); СхемаКомпоновкиДанных.Параметры.НачалоПериода.Значение = НачалоДня(НачПериода); СхемаКомпоновкиДанных.Параметры.КонецПериода.Значение = КонецДня(КонПериода); СхемаКомпоновкиДанных.Параметры.Организация.ДоступенСписокЗначений = Истина; СхемаКомпоновкиДанных.Параметры.Организация.Значение = НашиОрганизации; СхемаКомпоновкиДанных.Параметры.ПустаяСсылкаДДС.Значение = Справочники.СтатьиДвиженияДенежныхСредств.ПустаяСсылка(); СхемаКомпоновкиДанных.Параметры.СтатьяКурсовойРазницы.Значение = СтатьяКурсовыхРазниц; //на этом этапе параметры заполнены именно как я хочу Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;//а это взято из Хрусталевой //после этой строчки в отладчике вижу что //Настройки.ПараметрыДанных.Элементы - пустая коллекция //Настройки.ПараметрыДанных.Элементы[0] - получить нельзя ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки,ДанныеРасшифровки);//а в этой строке, тоже взятой из Хрусталевой я передаю кажется Намтсройку с незаполненными параметрами //и после ее выполнения Настройки.ПараметрыДанных.Элементы - попрежнему пустая коллекция ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки, Истина); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); //в момент выполнения этой строки вываливается с ошибкой: {(15, 43)}: Не задано значение параметра "НачалоПериода" РегистрБухгалтерии.Хозрасчетный.Остатки(<<?>>&НачалоПериода, Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СчетаВБанках)), ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.БанковскиеСчета), Организация В ИЕРАРХИИ (&Организация)) КАК ХозрасчетныйОстатки Ну то есть короче я так и не установил Параметры. Можете подсказать в какой момент и каким образом я должен установить параметры? |
|||
1
Один С
02.04.10
✎
16:23
|
Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоПериода"));
Если Параметр <> Неопределено Тогда Параметр.Значение = НачПериода; Параметр.Использование = Истина; КонецЕсли; |
|||
2
Живой Ископаемый
02.04.10
✎
16:24
|
Кажется понял...
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы - содержит все мне нужные параметры Просто не понял откуда доступен этот КомпоновщикНастроек - я его не объявлял |
|||
3
navarafree
12.04.10
✎
14:18
|
(2) схожая проблема, КомпоновщикНастроек где объявляется?
|
|||
4
Живой Ископаемый
12.04.10
✎
14:30
|
(3) Ну.. типа нигде, просто доступен.
|
|||
5
navarafree
12.04.10
✎
14:35
|
(4) доступен отовсюду и всегда?
|
|||
6
navarafree
12.04.10
✎
14:36
|
(5) + просто я пишу в модуле формы внешней обработки. и при сохранении ругается что переменная якобы неопределена :(
|
|||
7
acsent
12.04.10
✎
14:38
|
использование
|
|||
8
navarafree
12.04.10
✎
14:46
|
(7) какая глубокая мысль :)
|
|||
9
johnbay
12.04.10
✎
15:05
|
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
КомпоновщикНастроек = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; при внешнем использовании |
|||
10
navarafree
12.04.10
✎
15:08
|
(9) ща попробуем
|
|||
11
navarafree
12.04.10
✎
15:13
|
СхемаКомпоновкиДанных = ПолучитьМакет("Макет1");
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; ПараметрСклад = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ПарСклад")); ПараметрСклад.Использование = Истина; ПараметрСклад.Значение = СписокСкладов; |
|||
12
navarafree
12.04.10
✎
15:13
|
не находит почему-то параметр ПарСклад
|
|||
13
DmitrO
12.04.10
✎
15:22
|
СхемаКомпоновкиДанных = ПолучитьМакет("Макет1");
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); ПараметрСклад = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ПарСклад")); ПараметрСклад.Использование = Истина; ПараметрСклад.Значение = СписокСкладов; |
|||
14
navarafree
12.04.10
✎
15:32
|
(13) сколько сегодня историю данной темы читал, так нигде не видел :) работает все спасибо! Скажите откуда знания верного написания данного кода? В хрусталевой что-то внятного объяснения не нашел
|
|||
15
DmitrO
12.04.10
✎
15:46
|
Учебники не читаю, читаю тока документацию.
Вообще тут конечно вопрос тонкий. Дело в том что тип объекта одинаковый (НастройкиКомпоновкиДанных), но когда он получен из компоновщика настроек - он полноценный, а когда он получен из схемы он как бы ReadOnly, но это почему-то влияет на поиск параметра (вероятно внутри поиском занимается именно КомпоновщикНастроекКомпоновкиДанных) - он тогда надо было бы исключение хоть выкидывать при попытке поиска. Ну или тогда тпы этих объектов делать разные.. Короче грешны тут разработчики 1С.. |
|||
16
navarafree
12.04.10
✎
15:49
|
документация это справка и модули типовой конфы?
|
|||
17
Живой Ископаемый
12.04.10
✎
15:53
|
2(16) C:\Program Files\1cv81\AddDoc\RU
|
|||
18
DmitrO
12.04.10
✎
15:59
|
документация это (17) + справка
ну и у других посмотреть конечно тоже надо бывает, а то они такого в документации напишут - без поллитры не разберешься. |
|||
19
navarafree
12.04.10
✎
16:01
|
(17) не знал что есть такой источник инфы :) Кстати возник такой вопрос по СКД, коли эту ветку читают опытные люди. Вот скажем вывожу я в сводную таблицу, сформированную при помощи СКД, цены номенклатуры. По строкам к примеру - номенклатура, по колонкам - склады. Вопрос такой: можно к этой таблице дополнительную колонку с кодом номенклатуры присоеднить? Только не группировку дополнительную с полем Код в строки добавлять, а как-то иначе.
|
|||
20
Живой Ископаемый
12.04.10
✎
16:03
|
2(19) Ну... мне как раз недавно так нужно было - я добавил поле Номенклатура.Код, и сказал выводить доп. поля отдельно, не вместе с группировкой
|
|||
21
Живой Ископаемый
12.04.10
✎
16:10
|
||||
22
navarafree
12.04.10
✎
16:12
|
(20) симпотично получилось! а вот это "сказал выводить доп. поля отдельно" - интерактивно настраивается или программно? если интерактивно, то где?
|
|||
23
Живой Ископаемый
12.04.10
✎
16:16
|
2(22) интерактивно один раз в конфигураторе, в схеме компоновке, на закладке "Другие настройки"\"Расположение реквизитов"\"Отдельно"
|
|||
24
Живой Ископаемый
12.04.10
✎
16:17
|
но можно и программно.
|
|||
25
navarafree
12.04.10
✎
16:19
|
(23) получилось! спасибо большое, сегодня я знаю по 1С больше чем вчера, значит не зря день прошел :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |