| 
			| 
					
						| staff | 
								|  | «  : 16-07-2009 07:33 »  |  | 
 
 помогите с правильностью написания отчета
 необходимо выводить в Макет Отчета значение, что бы происходило сложение и отнимание по указанной части
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Kivals | 
								|  | « Ответ #1 : 16-07-2009 13:07 »  |  | 
 
 Чего??? Не ленись описать задачу... |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| staff | 
								|  | « Ответ #2 : 17-07-2009 06:35 »  |  | 
 
 сейчас пришу отчет в 1С 8.1, суть заключается в чем, необходимо суммировать и отнимать данные из ячейки, программа предназначена для элеватора семян, есть транспотрер по которому идет загрузка семян и банки где эти семена хранятся, когда в складском документе начинаю вбивать значения загрузку семян или выгрузку (определенный транспортер, определенная банка) в отчете формируются отдельные позиции (не происходит суммирование или отнимание из банок)вот код отчета
 Процедура КнопкаСформироватьНажатие(Кнопка)
 // Вставить содержимое обработчика.
 Запрос = новый Запрос;
 Запрос.Текст =
 "ВЫБРАТЬ
 |   ОборотнаяВедомость.Транспортер КАК Транспортер,
 |   ОборотнаяВедомость.Банки КАК Банки,
 |   ОборотнаяВедомость.ВидСемян КАК ВидСемян,
 |   ОборотнаяВедомость.Регистратор КАК Регистратор,
 |   СУММА(ОборотнаяВедомость.СуммаНачальныйОстаток) КАК НачОстаток,
 |   СУММА(ОборотнаяВедомость.СуммаКонечныйОстаток) КАК КонОстаток,
 |   СУММА(ОборотнаяВедомость.СуммаПриход) КАК Приход,
 |   СУММА(ОборотнаяВедомость.СуммаРасход) КАК Расход
 |ИЗ
 |   РегистрНакопления.ОборотнаяВедомость.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, ДвиженияИГраницыПериода, ) КАК ОборотнаяВедомость ";
 Флаг1=0;
 если не ВыбТранспортер.Пустая() тогда
 Запрос.Текст=Запрос.Текст+"ГДЕ ОборотнаяВедомость.Транспортер=&ПТранспортер ";
 Флаг=1;
 конецЕсли;
 Если не ВыбБанки.Пустая() тогда
 Если флаг1=0 тогда
 Запрос.Текст=Запрос.Текст+"ГДЕ ОборотнаяВедомость.Банки=&ПБанки ";
 Флаг1=1;
 иначе
 Запрос.Текст=Запрос.Текст+"И ОборотнаяВедомость.Банки=&ПБанки ";
 конецесли;
 конецесли;
 если ПечБанки тогда
 Если флаг1=0 тогда
 Запрос.Текст=Запрос.Текст+"ГДЕ ОборотнаяВедомость.Банки.ВыводПриПечати ";
 Иначе
 Запрос.Текст=Запрос.Текст+"И ОборотнаяВедомость.Банки.ВыводПриПечати";
 конецесли;
 конецесли;
 Запрос.Текст=Запрос.Текст+"
 |СГРУППИРОВАТЬ ПО ОборотнаяВедомость.Транспортер, ОборотнаяВедомость.Банки, ОборотнаяВедомость.ВидСемян, ОборотнаяВедомость.Регистратор
 |ИТОГИ СУММА(НачОстаток), СУММА(КонОстаток), СУММА(Приход), СУММА(Расход)
 |ПО Транспортер, Банки, ВидСемян, регистратор
 |АВТОУПОРЯДОЧИВАНИЕ";
 Запрос.УстановитьПараметр("НачалоПериода", НачПериода);
 Запрос.УстановитьПараметр("КонецПериода", КонПериода);
 Если не ВыбТранспортер.Пустая() тогда
 Запрос.УстановитьПараметр("ПТранспортер", ВыбТранспортер);
 конецесли;
 Если не ВыбБанки.Пустая() тогда
 Запрос.УстановитьПараметр("ПБанки", ВыбБанки);
 конецесли;
 Результат=Запрос.Выполнить();
 Выборка=Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
 темп = новый ТабличныйДокумент;
 ТабДок=ПолучитьМакет("Макет");
 ОбластьПериод=ТабДок.ПолучитьОбласть("Период");
 ОбластьПериод.Параметры.Период=" Период с "+НачПериода+" по "+КонПериода;
 Темп.Вывести(ОбластьПериод);
 ОбластьШапка=ТабДок.ПолучитьОбласть("Шапка");
 Темп.Вывести(ОбластьШапка);
 Пока Выборка.Следующий() цикл
 ОбластьТранспортер=ТабДок.ПолучитьОбласть("Транспортер");
 ОбластьТранспортер.Параметры.Транспортер="Транспортер   "+Выборка.Транспортер;
 Темп.Вывести(ОбластьТранспортер);
 ВыборкаБанки=Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
 Пока выборкаБанки.Следующий() цикл
 ФлагБанки=0;
 ВыборкаВидСемян=ВыборкаБанки.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
 Пока выборкаВидСемян.Следующий() цикл
 если выборкаВидСемян.ВидСемян.Пустая() тогда
 продолжить
 конецесли;
 Если ФлагБанки=0 тогда
 ОбластьБанки=ТабДок.ПолучитьОбласть("Банки");
 ОбластьБанки.Параметры.Банки="Банки   "+ВыборкаБанки.Банки;
 Темп.Вывести(ОбластьБанки);
 ФлагБанки=1;
 конецесли;
 ОбластьВидСемян=ТабДок.ПолучитьОбласть("ВидСемян");
 ОбластьВидСемян.Параметры.ВидСемян=ВыборкаВидСемян.ВидСемян;
 Если ВыборкаВидСемян.НачОстаток>0 тогда
 ОбластьВидСемян.Параметры.НачальныйОстатокПриход=ВыборкаВидСемян.НачОстаток;
 иначе
 ОбластьВидСемян.Параметры.НачальныйОстатокРасход=-ВыборкаВидСемян.НачОстаток
 конецесли;
 Темп.Вывести(ОбластьВидСемян);
 ВыборкаРегистратор=ВыборкаВидСемян.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
 Пока ВыборкаРегистратор.Следующий() цикл
 Если ВыборкаРегистратор.Регистратор<>Неопределено тогда
 ОбластьРегистратор=ТабДок.ПолучитьОбласть("Регистратор");
 Если ВыборкаРегистратор.Приход>0 тогда
 ОбластьРегистратор.Параметры.Контрагент=ВыборкаРегистратор.Регистратор;
 конецесли;
 Если ВыборкаРегистратор.Расход>0 тогда
 ОбластьРегистратор.Параметры.Контрагент=ВыборкаРегистратор.Регистратор;
 конецесли;
 ОбластьРегистратор.Параметры.Приход=ВыборкаРегистратор.Приход;
 ОбластьРегистратор.Параметры.Расход=ВыборкаРегистратор.Расход;
 ОбластьРегистратор.Параметры.Дата=ВыборкаРегистратор.Регистратор.дата;
 Темп.Вывести(ОбластьРегистратор);
 конецесли;
 конеццикла;
 ОбластьИтогоВидСемян=ТабДок.ПолучитьОбласть("ИтогоВидСемян");
 Если ВыборкаВидСемян.КонОстаток>0 тогда
 ОбластьИтогоВидСемян.Параметры.КонечныйОстатокПриход=ВыборкаВидСемян.КонОстаток;
 Иначе
 ОбластьИтогоВидСемян.Параметры.КонечныйОстатокРасход=-ВыборкаВидСемян.КонОстаток
 конецесли;
 Темп.Вывести(ОбластьИтогоВидСемян);
 конеццикла;
 конеццикла;
 конеццикла;
 ТабФорма=Отчеты.ОтчетПоСеменам.ПолучитьФорму("ФормаТаблицы");
 ТабФорма.Открыть();
 ТабФорма.ЭлементыФормы.Результат.Вывести(Темп);
 конецпроцедуры
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| staff | 
								|  | « Ответ #3 : 17-07-2009 06:39 »  |  | 
 
 что необходимо добавить в код что бы происходило суммирование или отнимание из банок (загрузка и отгрузка производится по разным транспортерам в одну банку) |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Kivals | 
								|  | « Ответ #4 : 17-07-2009 06:55 »  |  | 
 
 По-моему необходимо убрать: Группировка (и итоги) по Регистратору лишняя.Или у тебя в пределах одного документа есть одинаковые Транспортер/Банка/ВидСемян и тебе нужно именно их просуммировать?
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| staff | 
								|  | « Ответ #5 : 17-07-2009 07:30 »  |  | 
 
 само дело в чем, когда составляю складской документ выбираю отдельно процедуру (загрузка или отгрузка), вид семян которую мы используем, дальше транспортер (то по чем происходит загрузка или отгрузка в банки) и сама банка где хранится семена, банка одна и таже тока изменяются транспортреры (загружаем в банку по одному транспортеру или же выгружаем из банки по другому транспортеру).когда ставлю загрузку по транспортеру (например 12) и банку (111) и вид семян (подсолнух) делаю проводку в отчете создается позиция, когда делаю отгрузку по транспортеру (12) и банку (111) и вид семян (подсолнух) то происходит отнимание и в ИтогоВидСемян отобразается остаток, но когда ставлю отгрузку по транспортеру (14) и банку (111) и вид семян (подсолнух) то происходит создание другой позиции в отчете где из банки (111) ничего не отнимается.
 пробовал убрать группировки по регистратору у меня нечего не выводит
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Kivals | 
								|  | « Ответ #6 : 17-07-2009 07:44 »  |  | 
 
 ОборотнаяВедомость.Транспортер - это что? Измерение или Реквизит?Логично предположить что это реквизит, тогда остатки по нему не ведутся.
 Опусти его в группировках ниже чем Банка и ВидСемян:
 СГРУППИРОВАТЬ ПО ОборотнаяВедомость.Банки, ОборотнаяВедомость.ВидСемян, ОборотнаяВедомость.Транспортер, ...
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| staff | 
								|  | « Ответ #7 : 17-07-2009 07:46 »  |  | 
 
 это у меня измерение |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| staff | 
								|  | « Ответ #8 : 17-07-2009 07:48 »  |  | 
 
 у меня должно происходить изменение остатков по определенной банке |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Kivals | 
								|  | « Ответ #9 : 17-07-2009 08:13 »  |  | 
 
 А в форме записей регистра нужная запись присутсвует?попробуй написать просто й запрос и протестировать его, а потом усложняй до нужного функционала
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| staff | 
								|  | « Ответ #10 : 17-07-2009 09:00 »  |  | 
 
 сейчас создал новую форму отчета, кроме даты и банки у меня ничего не выводится |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Kivals | 
								|  | « Ответ #11 : 17-07-2009 10:07 »  |  | 
 
 "загружаем в банку по одному транспортеру или же выгружаем из банки по другому транспортеру" в принципе подразумевает что транспортер нужно ставить в конец группировок Отчет в прикрепленном файл выводит следующую картинку по твоим данным Это то, что тебе нужно? |  
						| 
								| 
 |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| staff | 
								|  | « Ответ #12 : 20-07-2009 08:11 »  |  | 
 
 такой вопрос, как можно сделать (в конфигураторе) что бы столбцы в отчете подгонялись под результаты (НачОстаток, Приход, Расход и КонОстаток), а так же ВидСемян и Транспортер до заголовка, так как во время печати затрачивается много листов??? а то когда в параметрах печати ==> ставить под масштаб шаблона, идет печать отчета мелкими буквами |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Kivals | 
								|  | « Ответ #13 : 20-07-2009 08:39 »  |  | 
 
 Варианты на выбор: 1. Попробуй выводить данные через макет, как это у тебя было и раньше (Построитель отчета я использовал для достижения быстрого результата) 2. Используй ТабличныйДокумент=Новый ТабличныйДокумент;Построитель.Вывести(ТабличныйДокумент);
 ТабличныйДокумент.Область.ШиринаКолонки = ХХХ;
 ТабличныйДокумент.Показать();
3. Изучай СКД: Система компоновки данных |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| staff | 
								|  | « Ответ #14 : 21-07-2009 13:07 »  |  | 
 
 пробовал дальше разрабатывать ОтчетПоСеменам все та же проблема значения как выводились так и выводятся, что можете подсказать в таком случае, даже вашу ТестОстатки дорабатывал ничего не выводит |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| staff | 
								|  | « Ответ #15 :  21-07-2009 13:56 »   |  | 
 
 даже пробовал через СКД, но начальство сказало что хотим так, вручную написанно |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	|  | 
	|  |