Добавить возможность фильтрации по дате, на макете отчёта

1. alexeinahai 08.08.18 09:19 Сейчас в теме
Доброго дня. подскажите пожалуйста, как добавить возможность фильтрации данных по дате? есть отчет по дебеторке,нужно каким-то способом добавить возможно ставить фильтр по плановой дате погашения. вроде посмотрел стандартные функции, ничего такого не нашел
Прикрепленные файлы:
+
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Неопределено 90 08.08.18 09:20 Сейчас в теме
(1) Точно на макете, или таки в запросе?
+
3. alexeinahai 08.08.18 09:23 Сейчас в теме
(2) честно говоря не принципиально, главное что бы руководство могло задать период, и данные фильтровались)
+
4. Неопределено 90 08.08.18 09:24 Сейчас в теме
(3) В запросе добавьте отбор по дате и выведите реквизит с типом дата на форму отчёта, или форму настроек отчёта.
+
5. Timur.V 78 08.08.18 09:25 Сейчас в теме
В макете нет фильтров.
Можно фильтр установить в запросе

ГДЕ
ПлановаяДата =&ПлановаяДата ИЛИ &ПлановаяДата = &ПлановаяДата
+
6. alexeinahai 08.08.18 09:35 Сейчас в теме
(5) Залез в код, там кроме двух запросов по выборке данных есть ещё один:
							Если Число(Долг) > 0 Тогда 
								времДолг = Долг;
								ОрганизацияПоУмолчанию =  БухгалтерскийУчетПереопределяемый.ПолучитьЗначениеПоУмолчанию("ОсновнаяОрганизация");
								Запрос = Новый Запрос;
							    Запрос.Текст = 
							        "ВЫБРАТЬ
							        |   РеализацияТоваровУслуг.Ссылка
							        |ИЗ
							        |   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
							        |ГДЕ
							        |   (РеализацияТоваровУслуг.Организация = &Организация) И
									|   (РеализацияТоваровУслуг.Контрагент = &Контрагент) И
									|   (РеализацияТоваровУслуг.Проведен = &Проведен) И
									|   (РеализацияТоваровУслуг.ДоговорКонтрагента = &ДоговорКонтрагента) 
							        |УПОРЯДОЧИТЬ ПО
							        |   РеализацияТоваровУслуг.Дата УБЫВ";
 
						    	Запрос.УстановитьПараметр("Организация", ОрганизацияПоУмолчанию);
							    Запрос.УстановитьПараметр("Контрагент", спрконтр.Ссылка);
						        Запрос.УстановитьПараметр("ДоговорКонтрагента", СпрДоговор.Ссылка);
								Запрос.УстановитьПараметр("Проведен", Истина);
Показать


мне чёт кажется что с ним надо что-то делать. но как в шапку настроек добавить диапазон дат не понимаю. там мы ставим дату на которую выкручивается дебеторка...
Прикрепленные файлы:
+
7. Fox-trot 157 08.08.18 09:48 Сейчас в теме
(6)
                                Запрос = Новый Запрос("ВЫБРАТЬ
                                    |   РеализацияТоваровУслуг.Ссылка
                                    |ИЗ
                                    |   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                                    |ГДЕ
                                    |   РеализацияТоваровУслуг.Дата Между &ДатаНач  И &ДатаКон
                                    |   И РеализацияТоваровУслуг.ДоговорКонтрагента = &ДоговорКонтрагента
                                    |   И РеализацияТоваровУслуг.Проведен = ИСТИНА
                                    |УПОРЯДОЧИТЬ ПО
                                    |   РеализацияТоваровУслуг.Дата УБЫВ");
                                Запрос.УстановитьПараметр("ДоговорКонтрагента", СпрДоговор.Ссылка);
Показать

если нужен отбор по документам за период
+
10. alexeinahai 08.08.18 11:00 Сейчас в теме
(7)
Запрос = Новый Запрос("ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.Дата Между &ДатаНач И &ДатаКон
| И РеализацияТоваровУслуг.ДоговорКонтрагента = &ДоговорКонтрагента
| И РеализацияТоваровУслуг.Проведен = ИСТИНА
|УПОРЯДОЧИТЬ ПО
| РеализацияТоваровУслуг.Дата УБЫВ");
Запрос.УстановитьПараметр("ДоговорКонтрагента", СпрДоговор.Ссылка);


даты вывел, но отчёт по этим данным не формируется, не выводит данные
+
8. Timur.V 78 08.08.18 09:56 Сейчас в теме
(6) Где у вас Дата отчета на форме, туда добавьте ещё Плановую дату.
И запросы покажите, если не получается сделать по аналогии.
Вы ведь передаете Дату отчета в запрос. Так же передавать нужно и Плановую дату.
+
11. alexeinahai 08.08.18 11:13 Сейчас в теме
(8) вот это весь код со всеми запросами
&НаСервере
Процедура СформироватьОтчетНаСервере()
	СписМен = Новый СписокЗначений;
	Таб = Новый ТабличныйДокумент;
	Обработка = РеквизитФормыВЗначение("Объект");
	Макет = Обработка.ПолучитьМакет("Макет");
	ОблШапка = Макет.ПолучитьОбласть("Шапка");
	ОблМенеджер = Макет.ПолучитьОбласть("Менеджер");
	ОблКонтрагент = Макет.ПолучитьОбласть("Контрагент");
	ОблДоговор = Макет.ПолучитьОбласть("Договор");
	ОблДокум = Макет.ПолучитьОбласть("Докум");
	ОблИтог = Макет.ПолучитьОбласть("Итог");
	
	
	// таблица со всеми данными
	ТабРезВсе = Новый ТаблицаЗначений;
	ТабРезВсе.Колонки.Добавить("Менеджер");
	ТабРезВсе.Колонки.Добавить("Контрагент");
	ТабРезВсе.Колонки.Добавить("Договор");
	ТабРезВсе.Колонки.Добавить("СрокСтрока");
	ТабРезВсе.Колонки.Добавить("СрокЧисло");
	ТабРезВсе.Колонки.Добавить("ДолгВсего");
	//ТабРезВсе.Колонки.Добавить("НепрДолг");
	ТабРезВсе.Колонки.Добавить("ДокументДолга");
	ТабРезВсе.Колонки.Добавить("ДокументСумма");
	ТабРезВсе.Колонки.Добавить("ПросроченоСумма");
	ТабРезВсе.Колонки.Добавить("ПросроченоДни");
	
	// выбираем менеджеров 
	СпрКонтр = Справочники.Контрагенты.Выбрать(ГруппаКонтрагентов.Ссылка);
	Пока  СпрКонтр.Следующий() Цикл
		Если (( НЕ СпрКонтр.ПометкаУдаления  ) И (СпрКонтр.ЭтоГруппа)) Тогда
			СписМен.Добавить(СпрКонтр.Ссылка,СпрКонтр.Наименование);
		КонецЕсли;			
	КонецЦикла;
	
	// цикл по менеджерам
	Для Каждого СтрСписМен из СписМен Цикл
		// выбираем подчиненных контрагентов
		СпрКонтр = Справочники.Контрагенты.Выбрать(СтрСписМен.Значение);
		Пока  СпрКонтр.Следующий() Цикл
			Если (( НЕ СпрКонтр.ПометкаУдаления  ) И (не СпрКонтр.ЭтоГруппа)) Тогда
				ОблКонтрагент.Параметры.Контрагент = СпрКонтр.Наименование;
				// выбираем договора контрагентов
				СпрДоговор = Справочники.ДоговорыКонтрагентов.Выбрать(,спрконтр.Ссылка);
				Пока  СпрДоговор.Следующий() Цикл
					 Если (( НЕ СпрДоговор.ПометкаУдаления ) И (НЕ СпрДоговор.ЭтоГруппа) и (СпрДоговор.ВидДоговора = ТипДоговора)  ) Тогда
							ОблДоговор.Параметры.Договор = СпрДоговор.Наименование;
							ОблДоговор.Параметры.ВидДоговора = СпрДоговор.ВидДоговора;
							Если  Число(СпрДоговор.СрокОплаты) > 0 Тогда
								ПечатьСрокОплаты = СпрДоговор.СрокОплаты;
								реалСрок = СпрДоговор.СрокОплаты;
							Иначе
								ПечатьСрокОплаты = "НЕТ !!! (30)";
								реалСрок = 30;
							КонецЕсли;
							
							Долг = 0;
							Запрос = Новый Запрос; 
							Запрос.Текст = " ВЫБРАТЬ
											|ХозрасчетныйОстатки.Субконто1 КАК Контрагент, 
											|ХозрасчетныйОстатки.Субконто2 КАК ДоговорКонтрагента,
											|ХозрасчетныйОстатки.СуммаОстаток
											| ИЗ
											|РегистрБухгалтерии.Хозрасчетный.Остатки(ДобавитьКДате(&НачалоПериода,СЕКУНДА,1), Счет В ИЕРАРХИИ (&Счет62), , Организация = &Организация) КАК ХозрасчетныйОстатки
											| ГДЕ ХозрасчетныйОстатки.Субконто1 = &Контрагент И ХозрасчетныйОстатки.Субконто2 = &ДоговорКонтрагента;	";
							Запрос.УстановитьПараметр("Контрагент", спрконтр.Ссылка); 
							Запрос.УстановитьПараметр("ДоговорКонтрагента", СпрДоговор.Ссылка); 
							Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода); 
							Запрос.УстановитьПараметр("Организация", Справочники.Организации.НайтиПоКоду("000000001")); 
							Запрос.УстановитьПараметр("Счет62", ПланыСчетов.Хозрасчетный.НайтиПоКоду("62")); 
							РезультатЗапроса = Запрос.Выполнить().Выгрузить();
							Для  Каждого СтрРезультатЗапроса из РезультатЗапроса Цикл 
								Долг = СтрРезультатЗапроса.СуммаОстаток ;
							КонецЦикла;
							
							Если Число(Долг) > 0 Тогда 
								времДолг = Долг;
								ОрганизацияПоУмолчанию =  БухгалтерскийУчетПереопределяемый.ПолучитьЗначениеПоУмолчанию("ОсновнаяОрганизация");
								Запрос = Новый Запрос;
    							Запрос = Новый Запрос("ВЫБРАТЬ
                                    |   РеализацияТоваровУслуг.Ссылка
                                    |ИЗ
                                    |   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                                    |ГДЕ
                                    |   РеализацияТоваровУслуг.Дата Между &ДатаНач  И &ДатаКон
                                    |   И РеализацияТоваровУслуг.ДоговорКонтрагента = &ДоговорКонтрагента
                                    |   И РеализацияТоваровУслуг.Проведен = ИСТИНА
                                    |УПОРЯДОЧИТЬ ПО
                                    |   РеализацияТоваровУслуг.Дата УБЫВ");

						    	Запрос.УстановитьПараметр("Организация", ОрганизацияПоУмолчанию);
							    Запрос.УстановитьПараметр("Контрагент", спрконтр.Ссылка);
						        Запрос.УстановитьПараметр("ДоговорКонтрагента", СпрДоговор.Ссылка);
								Запрос.УстановитьПараметр("Проведен", Истина);
								
								РезультатЗапроса = Запрос.Выполнить();
 							   	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
								Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
									Если времДолг > 0 Тогда
										СтрТабРезВсе = ТабРезВсе.Добавить();
										СтрТабРезВсе.Менеджер = СтрСписМен.Значение;
										СтрТабРезВсе.Контрагент = спрконтр.Ссылка;
										СтрТабРезВсе.Договор = СпрДоговор.Ссылка;
										СтрТабРезВсе.СрокСтрока = ПечатьСрокОплаты;
										СтрТабРезВсе.СрокЧисло  = реалСрок;
									//===========
										Если СпрКонтр.Код = "000000288" Тогда
												Долг = "1 925 186,69";
										КонецЕсли;
									//===========

										СтрТабРезВсе.ДолгВсего = Долг;
										
										СтрТабРезВсе.ДокументДолга = ВыборкаДетальныеЗаписи.Ссылка;
										СтрТабРезВсе.ПросроченоДни  = Цел( ((НачалоПериода -  ВыборкаДетальныеЗаписи.Ссылка.Дата)/86400) - реалСрок)*(-1);
										
										// СтрТабРезВсе.ДокументСумма = ВыборкаДетальныеЗаписи.Ссылка.СуммаДокумента;
										Если (времДолг > ВыборкаДетальныеЗаписи.Ссылка.СуммаДокумента) Тогда
											СтрТабРезВсе.ДокументСумма = ВыборкаДетальныеЗаписи.Ссылка.СуммаДокумента;
										
										Иначе	
											СтрТабРезВсе.ДокументСумма = времДолг;
										КонецЕсли;
												
										
										
										Если СтрТабРезВсе.ПросроченоДни  > 0 Тогда
											СтрТабРезВсе.ПросроченоСумма = 0;
//											СтрТабРезВсе.НепрДолг = СтрТабРезВсе.ДолгВсего - СтрТабРезВсе.ПросроченоСумма;
										Иначе	
											Если (времДолг > ВыборкаДетальныеЗаписи.Ссылка.СуммаДокумента) Тогда
												СтрТабРезВсе.ПросроченоСумма = ВыборкаДетальныеЗаписи.Ссылка.СуммаДокумента;
//												СтрТабРезВсе.НепрДолг = СтрТабРезВсе.ДолгВсего - СтрТабРезВсе.ПросроченоСумма;
											Иначе	
												СтрТабРезВсе.ПросроченоСумма = времДолг;
												//СтрТабРезВсе.НепрДолг = СтрТабРезВсе.ДолгВсего - СтрТабРезВсе.ПросроченоСумма;
											КонецЕсли;
										КонецЕсли;
										времДолг = времДолг - ВыборкаДетальныеЗаписи.Ссылка.СуммаДокумента;
									Иначе
										Прервать;
									КонецЕсли;
							    КонецЦикла;
							КонецЕсли;
					КонецЕсли;
				КонецЦикла;
			КонецЕсли;
		КонецЦикла;
	КонецЦикла;
	
	
	ТабОбщ = ТабРезВсе.Скопировать();
	ТабОбщ.Свернуть("Менеджер,Контрагент,Договор,ДолгВсего","");
	
	
	ОбщДолгОрг =  ТабОбщ.Итог("ДолгВсего") + 4886299.16;	
	ОбщПросрочка = ТабРезВсе.Итог("ПросроченоСумма") + 4886299.16;
	//ОбщНепрДолг = ОбщДолгОрг - ОбщПросрочка;

	ОблШапка.Параметры.СтрокаЗаголовок = "Дебеторская задолженность на " + Строка(НачалоПериода);
	
	ОблШапка.Параметры.СтрокаДолг = "Общая дебеторская задолженность: " + Строка(ОбщДолгОрг) + ", из них просроченная составляет : " + Строка(ОбщПросрочка);
	
	Таб.Вывести(ОблШапка);
	

	
	// Обработка рез таблицы
	Для Каждого СтрСписМен из СписМен Цикл
		ОтборМенеджер = Новый Структура;
		ОтборМенеджер.Вставить("Менеджер",СтрСписМен.Значение);
		ТабРезВсеМенеджер = ТабРезВсе.Скопировать(ОтборМенеджер);
		
		ИтогТабРезВсеМенеджер = ТабРезВсеМенеджер.Скопировать();
		ИтогТабРезВсеМенеджер.Свернуть("Контрагент,Договор,ДолгВсего","");
		
		
		Если (ТабРезВсеМенеджер.Количество() > 0) Тогда 
			ОблМенеджер.Параметры.Менеджер = СтрСписМен.Представление;
			ОблМенеджер.Параметры.СуммаПросрочено = ТабРезВсеМенеджер.Итог("ПросроченоСумма");
		//===========
			Если СпрКонтр.Код = "000000288" Тогда
				Долг = "1 925 186,69";
		КонецЕсли;
		//===========
			ОблМенеджер.Параметры.ДолгВсего = ИтогТабРезВсеМенеджер.Итог("ДолгВсего");
			ОблМенеджер.Параметры.НепрДолг = ИтогТабРезВсеМенеджер.Итог("ДолгВсего") - ТабРезВсеМенеджер.Итог("ПросроченоСумма");
			Таб.Вывести(ОблМенеджер);
			
			
			СпрКонтр = Справочники.Контрагенты.Выбрать(СтрСписМен.Значение);
			Пока  СпрКонтр.Следующий() Цикл
				Если (( НЕ СпрКонтр.ПометкаУдаления  ) И (не СпрКонтр.ЭтоГруппа)) Тогда
					ОтборКонтрагент = Новый Структура;
					ОтборКонтрагент.Вставить("Контрагент",СпрКонтр.Ссылка);
					ТабРезВсеКонтрагент = ТабРезВсеМенеджер.Скопировать(ОтборКонтрагент);
					
					ИтогТабРезВсеКонтрагент = ТабРезВсеКонтрагент.Скопировать();
					ИтогТабРезВсеКонтрагент.Свернуть("Договор,ДолгВсего","");
					
					Если (ТабРезВсеКонтрагент.Количество() > 0) Тогда 
						ОблКонтрагент.Параметры.Контрагент = СпрКонтр;
						ОблКонтрагент.Параметры.СуммаПросрочено = ТабРезВсеКонтрагент.Итог("ПросроченоСумма");
		//===========
		Если СпрКонтр.Код = "000000288" Тогда
				Долг = "1 925 186,69";
		КонецЕсли;
		//===========          		
		ОблКонтрагент.Параметры.ДолгВсего = ИтогТабРезВсеКонтрагент.Итог("ДолгВсего");
		ОблКонтрагент.Параметры.НепрДолг = ИтогТабРезВсеКонтрагент.Итог("ДолгВсего") - ТабРезВсеКонтрагент.Итог("ПросроченоСумма");

						Таб.Вывести(ОблКонтрагент);
						
						СпрДоговор = Справочники.ДоговорыКонтрагентов.Выбрать(,спрконтр.Ссылка);
						Пока  СпрДоговор.Следующий() Цикл
							Если (( НЕ СпрДоговор.ПометкаУдаления ) И (НЕ СпрДоговор.ЭтоГруппа) и (СпрДоговор.ВидДоговора = ТипДоговора)  ) Тогда
								ОтборДоговор = Новый Структура;
								ОтборДоговор.Вставить("Договор",СпрДоговор.Ссылка);
								ТабРезВсеДоговор = ТабРезВсеКонтрагент.Скопировать(ОтборДоговор);
								
								Если (ТабРезВсеДоговор.Количество() > 0) Тогда 
									ТекСтрДоговор =  ТабРезВсеДоговор.Получить(0);
									
									
										//ТабРезВсе.Колонки.Добавить("СрокСтрока");
										//ТабРезВсе.Колонки.Добавить("СрокЧисло");
										//ТабРезВсе.Колонки.Добавить("ДолгВсего");
										//ТабРезВсе.Колонки.Добавить("ДокументДолга");
										//ТабРезВсе.Колонки.Добавить("ДокументСумма");
										//ТабРезВсе.Колонки.Добавить("ПросроченоСумма");
										//ТабРезВсе.Колонки.Добавить("ПросроченоДни");

									
									
									
									ОблДоговор.Параметры.СрокОплаты = ТекСтрДоговор.СрокСтрока;
									ОблДоговор.Параметры.ДолгВсего = ТекСтрДоговор.ДолгВсего;
									ОблДоговор.Параметры.Договор = СпрДоговор.Наименование;
									ОблДоговор.Параметры.ВидДоговора = СпрДоговор.ВидДоговора;
									ОблДоговор.Параметры.СуммаПросрочено = ТабРезВсеДоговор.Итог("ПросроченоСумма");
		//===========
		Если СпрКонтр.Код = "000000288" Тогда
				Долг = "1 925 186,69";
		КонецЕсли;
		//===========
									Таб.Вывести(ОблДоговор);
									
									Для Каждого СтрДокДоговор из ТабРезВсеДоговор Цикл
										ОблДокум.Параметры.Докум = "Реализация № " + СтрДокДоговор.ДокументДолга.Номер + " от " + формат(СтрДокДоговор.ДокументДолга.Дата,"ДЛФ=Д");
										ОблДокум.Параметры.СумДок = СтрДокДоговор.ДокументСумма;
		//===========
		Если СпрКонтр.Код = "000000288" Тогда
				Долг = "1 925 186,69";
		КонецЕсли;
		//===========
										
										ОблДокум.Параметры.ДнейДоОплаты = СтрДокДоговор.ПросроченоДни;
										ОблДокум.Параметры.СуммаПросрочено = СтрДокДоговор.ПросроченоСумма;
		Если СпрКонтр.Код = "000000288" Тогда
				Долг = "1 925 186,69";
		КонецЕсли;
		//===========
	    //==========================================
										
										ОблДокум.Параметры.ПлановаяДатаПогашения = формат(СтрДокДоговор.ДокументДолга.Дата+(ТекСтрДоговор.СрокЧисло * 24*60*60),"ДЛФ=Д");
										
										ОблДокум.Параметры.НепрДолг = СтрДокДоговор.ДокументСумма - СтрДокДоговор.ПросроченоСумма;
										
										Таб.Вывести(ОблДокум);

									КонецЦикла;
									
								
									
								КонецЕсли;
								

								
								
								
								
								
							КонецЕсли;
						КонецЦикла;
					КонецЕсли;
				КонецЕсли;
			КонецЦикла;
						
			
			
			
			
		КонецЕсли;
	КонецЦикла;			
		
//	ОблИтог.Параметры.СтрокаДолг = "Общая дебеторская задолженность: " + Строка(ОбщДолгОрг) + ", из них просроченная составляет : " + Строка(ОбщПросрочка);
	ОблИтог.Параметры.ОбщДолг = Строка(ОбщДолгОрг);
	ОблИтог.Параметры.ПрДолг = Строка(ОбщПросрочка);
	ОблИтог.Параметры.НепрДолг = Строка(ОбщДолгОрг - ОбщПросрочка);
	
	Таб.Вывести(ОблИтог);
	
	
	РезТаб = Таб;
КонецПроцедуры

&НаКлиенте
Процедура СформироватьОтчет(Команда)
	СформироватьОтчетНаСервере();
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	НачалоПериода = ТекущаяДата();
КонецПроцедуры

&НаСервере
Процедура Команда1НаСервере()
	// |ХозрасчетныйОстатки.СуммаОстаток КАК СуммаОстаток
							Запрос = Новый Запрос; 
							Запрос.Текст = " ВЫБРАТЬ
											|ХозрасчетныйОстатки.Субконто1 КАК Контрагент, 
											|ХозрасчетныйОстатки.Субконто2 КАК ДоговорКонтрагента,
											|ХозрасчетныйОстатки.СуммаОстаток
											| ИЗ
											|РегистрБухгалтерии.Хозрасчетный.Остатки(ДобавитьКДате(&НачалоПериода,СЕКУНДА,1), Счет В ИЕРАРХИИ (&Счет62), , Организация = &Организация) КАК ХозрасчетныйОстатки;";

							Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода); 
							Запрос.УстановитьПараметр("Организация", Справочники.Организации.НайтиПоКоду("000000001")); 
							Запрос.УстановитьПараметр("Счет62", ПланыСчетов.Хозрасчетный.НайтиПоКоду("62")); 
							РезультатЗапроса = Запрос.Выполнить().Выгрузить();
							Для  Каждого СтрРезультатЗапроса из РезультатЗапроса Цикл 
								Сообщить(СтрРезультатЗапроса.Контрагент  );

								Сообщить(СтрРезультатЗапроса.СуммаОстаток  );
							КонецЦикла;
							
										
КонецПроцедуры

&НаКлиенте
Процедура Команда1(Команда)
	Команда1НаСервере();
КонецПроцедуры
Показать
+
9. ser6702 166 08.08.18 10:54 Сейчас в теме
Задать реквизит в форме типа Стандартный период и вывести его на форму. А его ДатаНачала и ДатаОкончания использовать в параметрах запроса перед его формированием, указав, выводить данные где Плановая дата между этими датами..
+
12. Fox-trot 157 08.08.18 11:34 Сейчас в теме
так нада было ж еще новые параметры (ДатаНач и ДатаКон) заполнить
эх, кулема %)
+
19. alexeinahai 10.08.18 08:08 Сейчас в теме
(12) я вроде на форме заполнял)
+
13. voron159 1 08.08.18 12:15 Сейчас в теме
1) передать сюда значения ДобавитьКДате(&НачалоПериода,СЕКУНДА,1)

РегистрБухгалтерии.Хозрасчетный.Остатки(ДобавитьКДате(&НачалоПериода,СЕКУНДА,1), Счет В ИЕРАРХИИ (&Счет62), , Организация = &Организация) КАК ХозрасчетныйОстатки

2) передать сюда значения &ДатаНач И &ДатаКон

РеализацияТоваровУслуг.Дата Между &ДатаНач И &ДатаКон
+
18. alexeinahai 10.08.18 08:08 Сейчас в теме
(13) спасибо, сейчас попробую)
+
14. Sashares 34 08.08.18 12:58 Сейчас в теме
Альтернативный вариант - скрывать в табличном документе результата - строки, не соответствующие отбору по дате. Подобно фильтру в экселе.
Только минус в том, что итоговые поля в вышестоящих группировках пересчитываться не будут.
+
17. alexeinahai 10.08.18 08:07 Сейчас в теме
(14) не, я пробовал такой вариант, хотел выгрузить в Эксель, а там через уже фильтры поставить, но скрываются и организации и менеджеры, не подходит так)
+
21. Sashares 34 10.08.18 09:46 Сейчас в теме
(17)Ну так все в ваших руках.
При фильтрации по дате - обходить каждую строку табличного документа и проверять нужную колонку:
- если в ней не дата - ставим видимость = Истина.
- если в ней дата и она подходит под условия - ставим видимость = Истина (вдруг строка была скрыта прошлым условием).
- если в ней дата и она не подходит под условия - для строки ставим видимость = Ложь.

Вполне себе приемлемый костыль))
Если надо анализировать именно существующий табличный документ, который может быть очень большой, вместо того чтобы формировать отчет заново.
Работает относительно быстро.
+
22. timeforlive 15 10.08.18 09:49 Сейчас в теме
(21) Да вы, сэр, костыли предложили автору.

Автор, я бы сначала разобрался, как работает отчет, что нужно заказчику\руководству, а потом все переписал по нормальному. А если нормалька не варит, то делай, как написал (21) и не парься. А если, руководство хочет разово получить результат, то вообще руками (запросом через консоль запросов) получи и выдай.
+
23. Sashares 34 10.08.18 09:51 Сейчас в теме
(22) Одним больше, одним меньше))
+
15. Alex_CheST 2 09.08.18 08:32 Сейчас в теме
Ну и код...хотел помочь сперва...как начал писать советы и разбираться в коде. Плюнул. Код просто атас. Покури готовые варианты с гугла. Я конечно не мега программист, но как по мне так нельзя писать.
+
16. alexeinahai 10.08.18 08:06 Сейчас в теме
(15) ну я работаю уже с готовым кодом, как я понимаю, этот отчёт контора сторонняя писала, до меня) мне нужно только подредактировать)
+
20. timeforlive 15 10.08.18 09:10 Сейчас в теме
(15) У нас в компании некоторые обработки написаны именно так. Ах-ха-ха. Если кратко, то история таких костылей в том, что руководство (или отдел продаж) сами не знают что хотят и по ходу пьесы начинают вставлять свои ремарки, а ты пилишь-пилишь-пилишь, а когда все готово, то времени нет заниматься рефакторингом, потому что у Них появились новые задачи...
+
24. registration123 2 10.08.18 13:46 Сейчас в теме
На форме сделать два дополнительных поля ДатаНачала, ДатаОкончания

ОблДокум.Параметры.ПлановаяДатаПогашения = формат(СтрДокДоговор.ДокументДолга.Дата+(ТекСтрДоговор.СрокЧисло * 24*60*60),"ДЛФ=Д");

ОблДокум.Параметры.НепрДолг = СтрДокДоговор.ДокументСумма - СтрДокДоговор.ПросроченоСумма;

Таб.Вывести(ОблДокум);

В этом месте сделать вместо Таб.Вывести(ОблДокум);

Если ДатаНачала >= СтрДокДоговор.ДокументДолга.Дата+(ТекСтрДоговор.СрокЧисло * 24*60*60) и СтрДокДоговор.ДокументДолга.Дата+(ТекСтрДоговор.СрокЧисло * 24*60*60 >= ДатаОкончания тогда
Таб.Вывести(ОблДокум);
КонецЕсли;

В результате выведутся только те записи в табличный документ, которые соответствуют условию.
+
25. Alex_CheST 2 10.08.18 13:58 Сейчас в теме
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот