Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / Проблемы с внешним отчетом (Общий отчет по "отчет производства за смену") / 7 сообщений из 7, страница 1 из 1
21.03.2012, 06:47
    #37714857
sergeyermak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с внешним отчетом (Общий отчет по "отчет производства за смену")
Добрый день!

Уже как два дня сижу над отчетом но ничего не выходит...Платформа стоит 8.2.15.289, конфигурация бухгалтерия для Украины релиз 1.2.5.3

Суть проблемы заключается вот в чем:

[FONT=Arial]Есть внешний отчет, который выбирает за конкретный день все документы "отчет производства за смену" и должен выводить сначала продукцию которая производиться в каждом документе, а затем материалы с которых сделана продукция, проблема заключается вот в чем:[/FONT]

Отчет по циклу перебирает все документы и соответственно выводит материалы конкретно для каждого документа а нужно что выводилась сводная таблица (наименование,количество, ед.измерения) по всем документам за день, и с условием что если номенклатура совпадает то суммировать количество и вставлять одну строку, а если нет то добавлять новую строку соответственно.

Вот основная функция запроса:

Код: sql
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.
Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("ДатаОтчета",ДатаОтчета);
	Запрос.Текст =
	"ВЫБРАТЬ
    | Док.Номер КАК Номер,
    | Док.Дата КАК Дата,
    | Док.Организация КАК Организация,
    | Док.Ссылка КАК Ссылка
    |ИЗ
    | Документ.ОтчетПроизводстваЗаСмену КАК Док
    |ГДЕ
    | Док.Дата = &ДатаОтчета";
	Выборка=Запрос.Выполнить().Выбрать();
	
    ТабДокумент = Новый ТабличныйДокумент;
	ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ОтчетПроизводстваЗаСмену_Накладная";

	Макет = ПолучитьМакет("Накладная");

	
	Шапка  = Макет.ПолучитьОбласть("Шапка");
	Шапка.Параметры.ДатаОтчета = ДатаОтчета;
	ТабДокумент.Вывести(Шапка);
	
	
Пока Выборка.Следующий() Цикл
    				ОбработкаПрерыванияПользователя();
					Основа = Макет.ПолучитьОбласть("Элемент");
	                Основа.Параметры.НомерДок = Выборка.Номер;
					СсылкаНаДокумент = Выборка.Ссылка;
	///Выборка Продукции
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("СсылкаНаДокумент",СсылкаНаДокумент);
	Запрос.Текст = "ВЫБРАТЬ
	               |	ВложенныйЗапрос.Номенклатура,
				   |	ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(200)) КАК Товар,
				   |	ВложенныйЗапрос.Количество КАК Количество,
				   |	ВложенныйЗапрос.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	               |	ВложенныйЗапрос.НомерСтроки КАК НомерСтроки
	               |ИЗ
	               |	(ВЫБРАТЬ
	               |		ОтчетПроизводстваЗаСмену.Номенклатура КАК Номенклатура,
	               |		ОтчетПроизводстваЗаСмену.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения,
	               |		СУММА(ОтчетПроизводстваЗаСмену.Количество) КАК Количество,
	               |		МИНИМУМ(ОтчетПроизводстваЗаСмену.НомерСтроки) КАК НомерСтроки
	               |	ИЗ
	               |		Документ.ОтчетПроизводстваЗаСмену.Продукция КАК ОтчетПроизводстваЗаСмену
	               |	
	               |	ГДЕ
	               |		ОтчетПроизводстваЗаСмену.Ссылка = &СсылкаНаДокумент
	               |	
	               |	СГРУППИРОВАТЬ ПО
	               |		ОтчетПроизводстваЗаСмену.Номенклатура) КАК ВложенныйЗапрос
	               |
	               |УПОРЯДОЧИТЬ ПО
	               |	НомерСтроки";
	    ВыборкаТабПродукция = Запрос.Выполнить().Выгрузить();
        Для каждого ВыборкаСтрокПродукция Из ВыборкаТабПродукция Цикл 
        
		Если НЕ ЗначениеЗаполнено(ВыборкаСтрокПродукция.Номенклатура) Тогда
			Сообщить(НСтр("ru='В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.';uk='В одному з рядків не заповнене значення номенклатури - рядок під час друку буде пропущений.'"), СтатусСообщения.Важное);
			Продолжить;
		КонецЕсли;

		Основа.Параметры.Заполнить(ВыборкаСтрокПродукция);
		Основа.Параметры.Товар = СокрЛП(ВыборкаСтрокПродукция.Товар);
		Основа.Параметры.НомерСтроки = ВыборкаТабПродукция.Индекс(ВыборкаСтрокПродукция) + 1;
		Основа.Параметры.Количество = ВыборкаСтрокПродукция.Количество;
		Основа.Параметры.Ед = ВыборкаСтрокПродукция.ЕдиницаИзмерения;
		
		ТабДокумент.Вывести(Основа);
	    КонецЦикла;

		
		///Выборка Материалов
		
		ОбластьМатериалы = Макет.ПолучитьОбласть("Мат");
		
		Запрос = Новый Запрос;
	    Запрос.УстановитьПараметр("СсылкаНаДокумент",СсылкаНаДокумент);
	    Запрос.Текст = "ВЫБРАТЬ
	               |	ВложенныйЗапрос.Номенклатура,
				   |	ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(200)) КАК Товар,
				   |	ВложенныйЗапрос.Количество КАК Количество,
				   |	ВложенныйЗапрос.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	               |	ВложенныйЗапрос.НомерСтроки КАК НомерСтроки
	               |ИЗ
	               |	(ВЫБРАТЬ
	               |		ОтчетПроизводстваЗаСмену.Номенклатура КАК Номенклатура,
	               |		ОтчетПроизводстваЗаСмену.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения,
	               |		СУММА(ОтчетПроизводстваЗаСмену.Количество) КАК Количество,
	               |		МИНИМУМ(ОтчетПроизводстваЗаСмену.НомерСтроки) КАК НомерСтроки
	               |	ИЗ
	               |		Документ.ОтчетПроизводстваЗаСмену.Материалы КАК ОтчетПроизводстваЗаСмену
	               |	
	               |	ГДЕ
	               |		ОтчетПроизводстваЗаСмену.Ссылка = &СсылкаНаДокумент
				   |	
				   |	СГРУППИРОВАТЬ ПО
				   |		ОтчетПроизводстваЗаСмену.Номенклатура) КАК ВложенныйЗапрос
				   |
				   |УПОРЯДОЧИТЬ ПО
				   |	НомерСтроки";
	    ВыборкаТабМатериалы = Запрос.Выполнить().Выгрузить();
        Для каждого ВыборкаСтрокМатериалы Из ВыборкаТабМатериалы Цикл 
        
		Если НЕ ЗначениеЗаполнено(ВыборкаСтрокМатериалы.Номенклатура) Тогда
			Сообщить(НСтр("ru='В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.';uk='В одному з рядків не заповнене значення номенклатури - рядок під час друку буде пропущений.'"), СтатусСообщения.Важное);
			Продолжить;
		КонецЕсли;

		ОбластьМатериалы.Параметры.Заполнить(ВыборкаСтрокМатериалы);
		
		Материал = СокрЛП(ВыборкаСтрокМатериалы.Товар);
		Количество = ВыборкаСтрокМатериалы.Количество;
		Номер = ВыборкаТабМатериалы.Индекс(ВыборкаСтрокМатериалы) + 1; 
		Ед = ВыборкаСтрокМатериалы.ЕдиницаИзмерения;
		
		ОбластьМатериалы.Параметры.ТоварМ = Материал;
		ОбластьМатериалы.Параметры.НомерСтрокиМ = Номер;
		ОбластьМатериалы.Параметры.КоличествоМ = Количество;
		ОбластьМатериалы.Параметры.ЕдМ = Ед;
		
		 ТабДокумент.Вывести(ОбластьМатериалы);
	 
	 КонецЦикла;
	 
КонецЦикла;
	Возврат ТабДокумент;



Буду очень благодарен за любую помощь!!!

Ниже приложу картинки отчета как на данный момент выводит alt1 " http://us.ua/662137%22%5Dalt1]http://us.ua/662137"]alt1 и как должно быть alt2 " http://us.ua/662138%22%5Dalt1]http://us.ua/662138"]alt1
...
Рейтинг: 0 / 0
21.03.2012, 09:39
    #37714995
DmitriyZ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с внешним отчетом (Общий отчет по "отчет производства за смену")
sergeyermak, за деньги могу помочь. Бесплатно делать вашу работу - не вариант.
...
Рейтинг: 0 / 0
21.03.2012, 10:36
    #37715083
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с внешним отчетом (Общий отчет по "отчет производства за смену")
sergeyermak,

похоже вы получаете по каждому документу
-список товара
-список материалов

а хотите видимо --итоги за день

"ВЫБ Документ.ОтчетПроизводстваЗаСмену -- ДатаОтчета

Пока Выб.Следующий() Цикл
СсылкаНаДокумент = Выб.Ссылка;
///Выб Продукции ("СсылкаНаДокумент",СсылкаНаДокумент);

Товар НомерСтроки Количество Ед


///Выб Материалов

ОбластьМатериалы ("СсылкаНаДокумент",СсылкаНаДокумент);


Материал Количество Номер Ед



КонецЦикла;
...
Рейтинг: 0 / 0
21.03.2012, 10:40
    #37715092
sWinTyz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с внешним отчетом (Общий отчет по "отчет производства за смену")
ага ...
бюст в профиль
...
Рейтинг: 0 / 0
21.03.2012, 12:49
    #37715503
sergeyermak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с внешним отчетом (Общий отчет по "отчет производства за смену")
DmitriyZ,

Я не предлагаю делать за меня работу, я прошу советы и идеи, на подобу там использовать ИТОГИ ПО и тд
...
Рейтинг: 0 / 0
21.03.2012, 12:50
    #37715508
sergeyermak
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с внешним отчетом (Общий отчет по "отчет производства за смену")
ПЕНСИОНЕРКА,

Я ж приложил картинки как выглядит и как должно, на них ссылки ниже, ну а так Вы правильно поняло что выводит, а где же сам совет?
...
Рейтинг: 0 / 0
21.03.2012, 13:20
    #37715596
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с внешним отчетом (Общий отчет по "отчет производства за смену")
sergeyermak,

создать рабочую таблицу
товар-материал-количество

и с нее 2 отчета в сортировке
-товар-сумма(количество)
-материал-сумма(количество)
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Проблемы с внешним отчетом (Общий отчет по "отчет производства за смену") / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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