IE 2018

1. alexeinahai 08.08.18 09:19 Сейчас в теме

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

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

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


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

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


даты вывел, но отчёт по этим данным не формируется, не выводит данные
8. Timur.V 26 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 62 08.08.18 10:54 Сейчас в теме
Задать реквизит в форме типа Стандартный период и вывести его на форму. А его ДатаНачала и ДатаОкончания использовать в параметрах запроса перед его формированием, указав, выводить данные где Плановая дата между этими датами..
12. Fox-trot 90 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 1 08.08.18 12:58 Сейчас в теме
Альтернативный вариант - скрывать в табличном документе результата - строки, не соответствующие отбору по дате. Подобно фильтру в экселе.
Только минус в том, что итоговые поля в вышестоящих группировках пересчитываться не будут.
17. alexeinahai 10.08.18 08:07 Сейчас в теме
(14) не, я пробовал такой вариант, хотел выгрузить в Эксель, а там через уже фильтры поставить, но скрываются и организации и менеджеры, не подходит так)
21. Sashares 1 10.08.18 09:46 Сейчас в теме
(17)Ну так все в ваших руках.
При фильтрации по дате - обходить каждую строку табличного документа и проверять нужную колонку:
- если в ней не дата - ставим видимость = Истина.
- если в ней дата и она подходит под условия - ставим видимость = Истина (вдруг строка была скрыта прошлым условием).
- если в ней дата и она не подходит под условия - для строки ставим видимость = Ложь.

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

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

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

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

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

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

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

В результате выведутся только те записи в табличный документ, которые соответствуют условию.
25. Alex_CheST 1 10.08.18 13:58 Сейчас в теме
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Нижний Новгород
зарплата от 120 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 120 000 руб.
Полный день

Программист 1С
Новосибирск
зарплата от 80 000 руб. до 100 000 руб.
Полный день

Системный аналитик
Новосибирск
зарплата от 80 000 руб. до 100 000 руб.
Полный день

Программист 1С
Казань
Полный день