Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / 1с8 ХозрасчетныйОстаткиИОбороты / 10 сообщений из 10, страница 1 из 1
22.04.2010, 18:03
    #36593068
Stepler
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с8 ХозрасчетныйОстаткиИОбороты
Делаю с помощью консоли отчетов Внешний отчет из запроса с "ХозрасчетныйОстаткиИОбороты", такие данные как :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 ВЫБРАТЬ
	|ХозрасчетныйОстаткиИОбороты.Счет КАК Счет,
	|	ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Субконто1,
	|	ХозрасчетныйОстаткиИОбороты.Организация КАК Организация,
	|	ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт КАК СуммаНачальныйОстатокДт,
	|	ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокКт КАК СуммаНачальныйОстатокКт,
	|	ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт КАК СуммаКонечныйОстатокДт,
	|	ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокКт КАК СуммаКонечныйОстатокКт,
	|	ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Субконто2,
	|ХозрасчетныйОстаткиИОбороты.Субконто2.Комментарий,
		|ХозрасчетныйОстаткиИОбороты.Субконто2.НазначениеПлатежа
вытаскиваю....
А если добавляю
Код: plaintext
|ХозрасчетныйОстаткиИОбороты.Субконто2.Товары,

Пишет ошибку
Код: plaintext
1.
 {Форма.ФормаОтчета.Форма( 104 )}: Ошибка при вызове метода контекста (Выполнить): {( 11 ,  1 )}: Нельзя обращаться к вложенной таблице через поле составного типа "ХозрасчетныйОстаткиИОбороты.Субконто2.Товары"
<<?>>ХозрасчетныйОстаткиИОбороты.Субконто2.Товары
,
Хотя в универсальном отчете енто поле дает...
Что посоветуете???
Спасибо
...
Рейтинг: 0 / 0
22.04.2010, 19:34
    #36593301
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с8 ХозрасчетныйОстаткиИОбороты
Во первых 2 точки не рекомендуется делать в запросе. Замените на левое соединение.

Но если производительность не важна - значит проблема в отборе по счету. У какой-то проводки что вы выбрали нет .товары. Может весь запрос покажите?
...
Рейтинг: 0 / 0
22.04.2010, 19:37
    #36593306
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с8 ХозрасчетныйОстаткиИОбороты
Стоп так это же табличная часть. Однозначно левое соединение.
...
Рейтинг: 0 / 0
22.04.2010, 19:57
    #36593341
Stepler
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с8 ХозрасчетныйОстаткиИОбороты
ответы на мой вопрос есть (счас 2 шт.), а я их не вижуууууууууууууууууу
...
Рейтинг: 0 / 0
22.04.2010, 20:01
    #36593356
Stepler
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с8 ХозрасчетныйОстаткиИОбороты
Программист 1с,

посмотрите, плз
Спасибо
...
Рейтинг: 0 / 0
22.04.2010, 20:27
    #36593388
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с8 ХозрасчетныйОстаткиИОбороты
у меня не смог конвертировать. Это 82?

Напиши сюда текст запроса полностью.
...
Рейтинг: 0 / 0
23.04.2010, 08:46
    #36593829
Stepler
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с8 ХозрасчетныйОстаткиИОбороты
Программист 1с,

Да 8.2

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
Процедура КнопкаСформироватьНажатие(Кнопка)
	СписокСчетов=новый("СписокЗначений");
	ПоСчетам=" по счетам ";
	Для цик= 0  по ВыбСписокСчетов.Количество()- 1  Цикл
		Если ВыбСписокСчетов[цик].Пометка Тогда
			СписокСчетов.Добавить(ВыбСписокСчетов[цик].Значение);
			ПоСчетам=ПоСчетам+ВыбСписокСчетов[цик].Значение;
			Если цик<>ВыбСписокСчетов.Количество()- 1  Тогда
				ПоСчетам=ПоСчетам+", ";
			Иначе
				ПоСчетам=ПоСчетам+".";
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	Для цик= 0  по ВыбСписокСчетов1.Количество()- 1  Цикл
		Если ВыбСписокСчетов1[цик].Пометка Тогда
			СписокСчетов.Добавить(ВыбСписокСчетов1[цик].Значение);
			ПоСчетам=ПоСчетам+ВыбСписокСчетов1[цик].Значение;
			Если цик<>ВыбСписокСчетов1.Количество()- 1  Тогда
				ПоСчетам=ПоСчетам+", ";
			Иначе
				ПоСчетам=ПоСчетам+".";
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	
	ОчиститьСообщения ();
	запрос=новый Запрос();
	запрос.Текст=
"ВЫБРАТЬ
	|	ХозрасчетныйОстаткиИОбороты.Счет КАК Счет,
	|	ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Субконто1,
	|	ХозрасчетныйОстаткиИОбороты.Организация КАК Организация,
	|	ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт КАК СуммаНачальныйОстатокДт,
	|	ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокКт КАК СуммаНачальныйОстатокКт,
	|	ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт КАК СуммаКонечныйОстатокДт,
	|	ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокКт КАК СуммаКонечныйОстатокКт,
	|	ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Субконто2,
	|ХозрасчетныйОстаткиИОбороты.Субконто2.Комментарий,
	// |ХозрасчетныйОстаткиИОбороты.Субконто2.Товары,
    	|ХозрасчетныйОстаткиИОбороты.Субконто2.НазначениеПлатежа
		|ИЗ
	|	РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НДатаОтчета, &КДатаОтчета, , , , , ) КАК ХозрасчетныйОстаткиИОбороты
	|ГДЕ
	|	ХозрасчетныйОстаткиИОбороты.Счет В ИЕРАРХИИ(&СписокСчетов)
	|	и Организация=Организация	";
	Если ВыбСписок.Количество()> 0  тогда
		запрос.Текст=запрос.Текст+"
	|	и Субконто1 В ИЕРАРХИИ( &СписокКонтр)";
	конецесли;
	запрос.Текст=запрос.Текст+"
	 
	|УПОРЯДОЧИТЬ ПО
	|Субконто1,
	|Счет
	|ИТОГИ
	|	СУММА(СуммаНачальныйОстатокДт),
	|	СУММА(СуммаНачальныйОстатокКт),
	|	СУММА(СуммаКонечныйОстатокДт),
	|	СУММА(СуммаКонечныйОстатокКт)
	|ПО
	|	Субконто1
	|АВТОУПОРЯДОЧИВАНИЕ";
	запрос.УстановитьПараметр("НДатаОтчета",НачПериода);	
	запрос.УстановитьПараметр("КДатаОтчета",КонецДня(КонПериода));
	запрос.УстановитьПараметр("СписокСчетов",СписокСчетов);
	запрос.УстановитьПараметр("Организация",Организация);
		Если ВыбСписок.Количество()> 0  тогда
		запрос.УстановитьПараметр("СписокКонтр",ВыбСписок);
	конецесли;
	
	Таб = Новый ТабличныйДокумент;
	макет = ПолучитьМакет("Макет");    	
	 
	ОблШапка=макет.ПолучитьОбласть("Шапка");
	ОблШапка.Параметры.КонПериода = Формат(КонПериода, "ДФ=dd.MM.yyyy");
	ОблШапка.Параметры.НачПериода = Формат(НачПериода, "ДФ=dd.MM.yyyy");
  	     Таб.ФиксацияСверху = ОблШапка.ВысотаТаблицы;
    ОблШапка.Параметры.Организация= "Бла-Бла";
	Таб.Вывести(ОблШапка);
	ОблКонтр = макет.ПолучитьОбласть("Контр");
	ОблДог = макет.ПолучитьОбласть("Дог");
	Таб.НачатьАвтогруппировкуСтрок();
	рез=запрос.Выполнить(); 	
	выборкаконтр=рез.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
	Пока выборкаконтр.Следующий() Цикл
		СуммаДт =  0 ;
		СуммаКт =  0 ;
		 
		ВыборкаСумма = выборкаконтр.Выбрать();
		Пока ВыборкаСумма.Следующий() Цикл	
			СуммаДт = СуммаДт + ВыборкаСумма.СуммаКонечныйОстатокДт;
			СуммаКт = СуммаКт + ВыборкаСумма.СуммаКонечныйОстатокКт;
			
		КонецЦикла;
		
		ОблКонтр.Параметры.Контрагент = выборкаконтр.субконто1;
		ОблКонтр.Параметры.ДТ = СуммаДт;
		ОблКонтр.Параметры.КТ = СуммаКт;
		  ОблКонтр.Параметры.Сальд = СуммаДт-СуммаКт;
		 

		Таб.Вывести(ОблКонтр, выборкаконтр.Уровень());
		
		ВыборкаДог = выборкаконтр.Выбрать();
		Пока ВыборкаДог.Следующий() Цикл	
			
			ОблДог.Параметры.ДоговорПлат="";
			ОблДог.Параметры.ДТДоговор = ВыборкаДог.СуммаКонечныйОстатокДт;
			ОблДог.Параметры.КТДоговор = ВыборкаДог.СуммаКонечныйОстатокКт;
			ОблДог.Параметры.Счет = ВыборкаДог.Счет;
			ОблДог.Параметры.Договор = ВыборкаДог.субконто2;
			 //ОблДог.Параметры.ДоговорТов = ВыборкаДог.субконто2.Товары.Номенклатура;

			Попытка ОблДог.Параметры.ДоговорКом = ВыборкаДог.субконто2.Комментарий;
				 Исключение
			КонецПопытки;
			

			Попытка КонтрольноеЧисло = Число(Прав(ОблДог.Параметры.Счет, 2 ));
              Исключение 
			      Попытка 		   ОблДог.Параметры.ДоговорПлат =ВыборкаДог.субконто2.НазначениеПлатежа 
				  Исключение
				  КонецПопытки;  
	   КонецПопытки;

	        Таб.Вывести(ОблДог, ВыборкаДог.Уровень());
		КонецЦикла;
	КонецЦикла;
	Таб.ЗакончитьАвтогруппировкуСтрок();
	Таб.Показать();
	если Флажок1=Ложь тогда
	Таб.Защита = Истина;
	
 

конецесли;
     КонецПроцедуры
Спасибо...
...
Рейтинг: 0 / 0
23.04.2010, 11:06
    #36594130
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с8 ХозрасчетныйОстаткиИОбороты
Теперь добавь в запрос вторую таблицу по табличной части товары
и соедини левым соединением по субконто2=твоятаблица.ссыка

ps Важно по табличной части а не по документу. Для этого в левом окне выбери табличную часть и ее переноси.
...
Рейтинг: 0 / 0
26.04.2010, 14:15
    #36598437
Stepler
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с8 ХозрасчетныйОстаткиИОбороты
Программист 1с,

Делаю, не знаю - правильно или нет, так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
ВЫБРАТЬ
	|	ХозрасчетныйОстаткиИОбороты.Счет КАК Счет,
	|	ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Субконто1,
	|	ХозрасчетныйОстаткиИОбороты.Организация КАК Организация,
	|	ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт КАК СуммаНачальныйОстатокДт,
	|	ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокКт КАК СуммаНачальныйОстатокКт,
	|	ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт КАК СуммаКонечныйОстатокДт,
	|	ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокКт КАК СуммаКонечныйОстатокКт,
	|    ХозрасчетныйОстаткиИОбороты.Субконто3,
	|	ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Субконто21,
	|ХозрасчетныйОстаткиИОбороты.Субконто2.Комментарий,
	// |ХозрасчетныйОстаткиИОбороты.Субконто2.Товары,
    	|ХозрасчетныйОстаткиИОбороты.Субконто2.НазначениеПлатежа ,
		 |ХозрасчетныйОстаткиИОбороты1.Субконто2.Ссылка,
	|ХозрасчетныйОстаткиИОбороты1.Субконто2
		|ИЗ
	|	РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НДатаОтчета, &КДатаОтчета, , , , , ) КАК ХозрасчетныйОстаткиИОбороты
	| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты КАК ХозрасчетныйОстаткиИОбороты1
	|	ПО ХозрасчетныйОстаткиИОбороты.Субконто2 = ХозрасчетныйОстаткиИОбороты1.Субконто2.Ссылка

	|ГДЕ
	|	ХозрасчетныйОстаткиИОбороты.Счет В ИЕРАРХИИ(&СписокСчетов)
	|	и ХозрасчетныйОстаткиИОбороты.Организация = ХозрасчетныйОстаткиИОбороты.Организация             ";
	Если ВыбСписок.Количество()>0 тогда
		запрос.Текст=запрос.Текст+"     
	|	и ХозрасчетныйОстаткиИОбороты.Субконто1 В ИЕРАРХИИ( &СписокКонтр) ";
	конецесли;
	запрос.Текст=запрос.Текст+"
	 
	|УПОРЯДОЧИТЬ ПО
	|ХозрасчетныйОстаткиИОбороты.Субконто1,
	|Счет
	|ИТОГИ
	|	СУММА(СуммаНачальныйОстатокДт),
	|	СУММА(СуммаНачальныйОстатокКт),
	|	СУММА(СуммаКонечныйОстатокДт),
	|	СУММА(СуммаКонечныйОстатокКт)
	|ПО
	|	Субконто1
	|АВТОУПОРЯДОЧИВАНИЕ
,
но результат тотже + думает ну оооооооооооочень долго...
Мне непонятно - почему в консоли отчетов выборка проходит даже по одной таблице????
...
Рейтинг: 0 / 0
26.04.2010, 18:54
    #36599215
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1с8 ХозрасчетныйОстаткиИОбороты
Нет. Сделай БЕЗ бухгалтерских регистров - просто выборку из табличной части твоего документа. А потом уже левое соединение.

А сейчас фактически ты ВСЕ проводки просматриваешь с своем отчете.
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / 1с8 ХозрасчетныйОстаткиИОбороты / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]