Имя: Пароль:
1C
1С v8
Программный вывод колонок в СКД
,
0 nsgnedash
 
18.02.13
16:46
Добрый день! Подскажите как по "галке" добавлять\удалять поля из отчета в скд.

Процедура ИННПриИзменении(Элемент)

Если ИНН Тогда
 Поле1 = СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
 Поле1.Поле = "ИНН";
 Поле1.ПутьКДанным = "ИНН"; //так обозвал в запросе
 Поле1.Заголовок = "ИНН";
Иначе
 Поле1 = СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Поля.Найти("ИНН");
 СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Поля.Удалить(Поле1);
КонецЕсли;
КонецПроцедуры
Затем вычисляю СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Поля - есть мое поле инн, но на форму не выводится. если руками добавляю поле в настройках - то все ок. Как мне программно добавить это поле в выводимые поля?
1 zippygrill
 
18.02.13
16:52
(0) на*уя добавить или удалить когда можно просто снять галку Использовать??
2 nsgnedash
 
18.02.13
16:54
Напиши плз пример, если не затруднит. Если я правильно понял, топо галке отключаем использоваение(видимость)?
3 zippygrill
 
18.02.13
17:08
(2) так точно.
покавыряй СхемаКомпоновкиДанных
4 nsgnedash
 
19.02.13
09:40
ап. не нашел ни чего, весь СП перекопал...
5 zippygrill
 
19.02.13
10:26
есть книжка Хрусталевы "Разрвботка сложных отчетов"? открой страницу 477
6 nsgnedash
 
19.02.13
10:30
сек, открываю.спасибо за помощь
7 nsgnedash
 
19.02.13
10:48
что-то не работает


   Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
   ВыбранныеПоля = Настройки.Выбор.Элементы.Получить(1);
   ВыбранныеПоля.Использование=Ложь;
в итоге имею что, использование у него ложь, а выводится все равно
8 GANR
 
19.02.13
10:54
Внимательно читай сообщение №4 в ветке v8: v8: СКД. как изменить запрос отчета?. Сможешь воспользоваться, ли нет - не знаю.
9 GANR
 
19.02.13
10:54
10 nsgnedash
 
19.02.13
11:03
(8)  он мне загрузил мой же отчет с моими же настройками...
11 GANR
 
19.02.13
11:04
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("D:\СКД_отчета.xml");  СериализаторXDTO.ЗаписатьXML(ЗаписьXML, ТвояСКД);
ЗаписьXML.Закрыть();

ЗаписьXML.ОткрытьФайл("D:\Настройки_отчета.xml");  СериализаторXDTO.ЗаписатьXML(ЗаписьXML, ТвойКомпоновщикНастроек.ПолучитьНастройки());
ЗаписьXML.Закрыть();

это нужно вставлять ПОСЛЕ того, как изменена СКД и настройки
12 nsgnedash
 
19.02.13
11:08
сделал, как ты говоришь. смотрю в настройках в выбранных полях действительно "лишние" поля отключены, но отчет все равно формируется и в настройках в пользовательском режиме эти поля отмечены галками
13 GANR
 
19.02.13
11:11
(12) набросай сначала конструктором желаемый результат, а потом "подгони" кодом, с (11) процесс пойдет быстрее
14 zippygrill
 
19.02.13
11:11
(7) я думая что сначало нужно получить группировку где находится твое поле и потом через эту группировку отключить использование этого поля.
15 GANR
 
19.02.13
11:22
(14) выяснять почему не работает СКД, собранная кодом через сайт и чат - дело не благодарное, поэтому эффективнее научить людей отлаживать ее с помощью (11)
16 nsgnedash
 
19.02.13
12:28
группировок нет в отчете совсем
17 nsgnedash
 
19.02.13
12:28
(14) группировок нет в отчете совсем
18 nsgnedash
 
19.02.13
12:51
делал по совету (11)  - в итоге получаю в отладчике нужные настройки, но отчет формируется со старыми. затем руками загружаю в пользовательском режиме файл настроек - становится все как надо.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.