Имя: Пароль:
1C
1С v8
Не работает внешний набор данных в СКД
0 megabax
 
21.08.16
10:08
Добрый день.
Подскажите пожалуйста, как заставить работать внешний набор данных в СКД на 1С 8.3. Делаю так:
1. Создал набор данных "Объект".
2. Обозвал его "Взаиморасчёты".
3. В процедуру ПриКомпоновкеРезультата вставил вот такой код:

    ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("ДокументОписание", Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(100, ДопустимаяДлина.Переменная)));    
    ТЗ.Колонки.Добавить("НачОст", Новый ОписаниеТипов("Число",,, Новый КвалификаторыЧисла(15,2)));    
    
    стр=ТЗ.Добавить();
    стр.ДокументОписание="Проба";
    стр.НачОст=123;
    
    СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
    ВнешнийНаборДанных = Новый Структура("Взаиморасчеты", ТЗ);
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешнийНаборДанных, ДанныеРасшифровки);    
    ДокументРезультат.Очистить();
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);    

И ничего не выводит. Подскажите пожалуйста, как лечить?
1 megabax
 
22.08.16
09:26
up
2 Nuobu
 
22.08.16
09:31
В настройках компоновки вывести поля.
3 megabax
 
22.08.16
09:51
(2)
Если под настройкой компоновки имеется в виду вот это
https://yadi.sk/i/njyfNtpXuP8ma
то сделано, поля выведены.
Но все равно отчет почему то не формируется.
4 DrZombi
 
гуру
22.08.16
09:57
(3) В компоновке создать набор с внешними данными :)
5 DrZombi
 
гуру
22.08.16
09:59
+(3)  Для теста добавь колонку со значением "1" (число).
И Выстави "Обязательное".
Выведи без групп, для теста.
6 megabax
 
22.08.16
10:02
(4) Набор с внешними данными - это вот это?
https://yadi.sk/i/k2iYhuQmuP9Y2
(5) Это где выставить "обзательное"?
7 DrZombi
 
гуру
22.08.16
10:10
(6) Обязательное в "Роли"
8 DrZombi
 
гуру
22.08.16
10:10
Я так, для пробы. Добавь колонку обязательную, да заполни её.
9 DrZombi
 
гуру
22.08.16
10:10
(8) Не НУЛЕМ
10 Nuobu
 
22.08.16
10:12
(0) СтандартнаяОбработка = Ложь
Было? или не нужно?
11 megabax
 
22.08.16
10:23
(8) Так и сделал
https://yadi.sk/i/OVaSz3g-uPBE5
И заполни не нулем:
    стр=ТЗ.Добавить();
    стр.ДокументОписание="Проба";
    стр.НачОст=123;
(10) СтандартнаяОбработка = Ложь; стоит
12 megabax
 
22.08.16
10:45
гз
13 DrZombi
 
гуру
22.08.16
10:53
(12) Освети ПК, ребутни, его :)
Перезапусти 1С :)
14 DrZombi
 
гуру
22.08.16
10:53
А у тебя там какого отбора нет?
15 bodri
 
22.08.16
10:58
скинь обработку, глянем
16 megabax
 
22.08.16
11:06
Оказывается, скд надо настроить в конфигураторе, в режиме предприятия настройки почему то  не работают.
Вот собственно, обработина:
https://yadi.sk/d/6VFVlZb1uPExK
Но все равно вознико два вопроса:
я в программе полю назначаю число 123, а выводит почему то 1.
И второе, а вообще можно как то сделать чтобы работала настройка в режиме предприятия?
17 megabax
 
22.08.16
11:07
(16) Что то ссылка первый раз не скопировлась https://yadi.sk/d/wutRftfcuPFKq
18 bodri
 
22.08.16
11:10
(16) >>И второе, а вообще можно как то сделать чтобы работала настройка в режиме предприятия?
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
Вот это мешает.
19 megabax
 
22.08.16
11:19
(18) А откуда тогда брать настройки? Если закомментить эту строку, то выходит ошибка на строке
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
20 bodri
 
22.08.16
11:30
(19) Текущие настройки пользователя.
по (16) >>я в программе полю назначаю число 123, а выводит почему то 1<< в ресурсах стоит выражение "Количество(НачОст)", а должно "Сумма(НачОст)", для этого в  наборах данных для поля НачОст указать тип значения. Кстати роли можно не проставлять
21 bodri
 
22.08.16
11:31
так тоже работает:

ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("ДокументОписание");    
ТЗ.Колонки.Добавить("НачОст");    
    
стр=ТЗ.Добавить();
стр.ДокументОписание="Проба";
стр.НачОст = 123;
22 bodri
 
22.08.16
11:37
(19) вместо
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию
это:
Настройки = КомпоновщикНастроек.Настройки
23 DrZombi
 
гуру
22.08.16
11:47
(22) Наверное лучше

КомпоновщикНастроек.ПолучитьНастройки();
24 megabax
 
22.08.16
11:58
Спасибо всем, заработало
Независимо от того, куда вы едете — это в гору и против ветра!