Имя: Пароль:
1C
1С v8
v8: УФ. Помогите по баяну "Не найден внешний набор данных"
0 palpetrovich
 
15.05.12
13:20
Запрос = Новый Запрос;
   Запрос.Текст =
       "ВЫБРАТЬ
       |    ОказаниеУслугУслуги.Услуга,
       |    ОказаниеУслугУслуги.Количество,
       |    ОказаниеУслугУслуги.Сумма
       |ИЗ
       |    Документ.ОказаниеУслуг.Услуги КАК ОказаниеУслугУслуги
       |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ОказаниеУслуг КАК ОказаниеУслуг
       |        ПО ОказаниеУслугУслуги.Ссылка = ОказаниеУслуг.Ссылка
       |ГДЕ
       |    ОказаниеУслуг.Контрагент = &Контрагент";

   Запрос.УстановитьПараметр("Контрагент", Контрагент);

   Результат = Запрос.Выполнить();
   ТаблицаУслуг = Результат.Выгрузить();
   
   ВнешниеНаборыДанных = Новый Структура;
   ВнешниеНаборыДанных.Вставить("Услуги", ТаблицаУслуг);
   
   СхемаКомпоновкиДанных = ПолучитьМакет("Услуги");
   Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
   
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);
   
   ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных,,Истина);
   
   ДокументРезультат = Новый ТабличныйДокумент;
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
   ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
   
   ДокументРезультат.ОтображатьЗаголовки = ЛОжь;
   ДокументРезультат.ОтображатьСетку = Ложь;
   ДокументРезультат.Вывести();
// в отладчике ТаблицаУслуг - заполнена
// где у меня прокол?
1 palpetrovich
 
15.05.12
13:24
может я не там это делаю? ...в модуле менеджера это можно делать?
2 palpetrovich
 
15.05.12
13:31
хм, в отладчике нашел такую вот бяку
МакетКомпоновки.ИсточникиДанных.ИсточникДанных1
откуда интересно этот ИсточникДанных1 взялся...
3 Лоботряс
 
15.05.12
13:33
Это по умолчанию он создался
4 Лоботряс
 
15.05.12
13:34
Объект в наборе данных, который в СКД, так же называется?
5 aleks-id
 
15.05.12
13:35
а сразу к ТЧ документа обратиться нельзя ведь да? надо замутить соединение обязательно
6 palpetrovich
 
15.05.12
13:36
(4) он изначально так был назван, автоматически. Но я же его переименовал
7 palpetrovich
 
15.05.12
13:36
(5) как  Хрусталева написала, так и делаю :)
8 palpetrovich
 
15.05.12
13:37
кста, сейчас переименовал "Услуги" на "ИсточникДанных1", ну и  вместо  ДокументРезультат.Вывести(); -  ДокументРезультат.Показать();
никто более не ругается,но и не выводит ничего :(
9 Лоботряс
 
15.05.12
13:39
Нет. Ты передаешь в СКД внешний источник, который называется "Услуги". А в наборе данных должен быть добавлен Объект с таким же именем.
10 Лоботряс
 
15.05.12
13:41
Забудь про "ИсточникДанных1".
11 palpetrovich
 
15.05.12
13:41
(9) был такой объект, теперь он называется ИсточникДанных1
и "имя объекта содержащего данные" тоже были "Услуги"
12 palpetrovich
 
15.05.12
13:45
(10) ну фиг с ним, сейчас переименовал все на "Услуги", но "никто более не ругается,но и не выводит ничего" (с) я :)
13 Лоботряс
 
15.05.12
13:51
На закладке "Наборы данных" в левом окне спозиционируйся на самой верхней строчке, на "Наборы данных". В правом окне у тебя что написано?
14 palpetrovich
 
15.05.12
14:13
(13) ИсточникДанных1
15 palpetrovich
 
15.05.12
14:14
+(14) поменял на "услуги" - не показывает все-равно
16 Лоботряс
 
15.05.12
14:14
Правильно. Ну тогда я хз почему не работает.
17 Лоботряс
 
15.05.12
14:15
(16)к (14)
18 Лоботряс
 
15.05.12
14:16
А! А таблица "Услуги" не пустая случаем?
19 palpetrovich
 
15.05.12
14:18
(18) // в отладчике ТаблицаУслуг - заполнена
20 PiVa123
 
15.05.12
14:18
Походу это в событии ПриКомпоновкеРезультата - тогда просто выставить СтандартнаяОбработка=Ложь
21 Лоботряс
 
15.05.12
14:18
"может я не там это делаю? ...в модуле менеджера это можно делать?" - в модуле формы надо
22 palpetrovich
 
15.05.12
14:21
(21) хм, как-то неожиданно ...я из формы-то выгребал через ж.пу :)
&НаКлиенте
Процедура УслугиКонтрагента(Команда)
   ПечатьНаСервере(Объект.Контрагент);
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПечатьНаСервере(Контрагент)
   Документы.ОказаниеУслуг.Печать(Контрагент);
КонецФункции
23 palpetrovich
 
15.05.12
14:24
+22 в форме тоже ничего не выводит
и кроме того, еще ПолучитьМакет только так дает:
   СхемаКомпоновкиДанных = Документы.ОказаниеУслуг.ПолучитьМакет("Услуги");
24 palpetrovich
 
15.05.12
14:26
(20) если это сответ на преодоление "Не найден внешний набор данных" - то поздно, это уже порешали :)
25 palpetrovich
 
15.05.12
14:28
у Хрусталевой вообще-то этот пример не для УФ, сейчас на обычных попробую
26 Лоботряс
 
15.05.12
14:33
Товарищ в (20) прав, в 8.2 это можно делать и в модуле объекта в процедуре ПриКомпоновкеРезультата. Наверное, даже лучше.
27 palpetrovich
 
15.05.12
14:37
(26) че-т я потерялся малехо
28 palpetrovich
 
15.05.12
14:46
сделал на неуправляемых практически один-в один - таблицу выводит
одно из двух, или в УФ есть какой-то нюаннс или я ошибок наделал в процессе
29 Лоботряс
 
15.05.12
14:50
С внешним источником разобрался? Теперь просто результат не выводит? Ошибку уже не выдает?
30 palpetrovich
 
15.05.12
14:51
(29) ну да. Более того - см (28)
31 palpetrovich
 
15.05.12
15:03
Лан, спасибо за помощь. Покопась еще маленько пока свободное время есть