Обход документов в Цикле по датам

1. AlexeyPapanov 460 29.06.17 11:09 Сейчас в теме
Тупой вопрос, не ругайте сильно, ребята)

см. скриншот.
Есть таблица поступлений на какие-то даты.
Мне надо сгруппировать эти поступления за каждый день (в котором они есть) и потом по каждому дню ими заполнить табличную часть другого документа.

Как это сделать красиво?

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


2-й вариант это сделать запрос к ТЗ с группировкой по дате и написать обход по группировке.
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. olegmedvedev 65 29.06.17 11:27 Сейчас в теме
(1) берите вариант с обходом по группировкам, это проще, нагляднее и быстрее отлаживать.
2. klinik 29.06.17 11:13 Сейчас в теме
В первом варианте обязательно после цикла ВыполнитьКакиеТоДействия(МассивСсылок); если ДатаПредыдущейСтроки<>Неопределено а то последняя выборка не будет отработана.
AlexeyPapanov; +1 Ответить
3. tata_1211 63 29.06.17 11:15 Сейчас в теме
Мне больше нравится 2-й вариант - с обходом по группировке
olegmedvedev; +1 Ответить
5. Шапокляк 29.06.17 11:33 Сейчас в теме
2 вариант лучше, только надо как-то выразить дату, иначе даже в одном дне будет куча группировок. Например так: НАЧАЛОПЕРИОДА(ОприходованиеТоваров.Дата,ДЕНЬ)
6. AlexeyPapanov 460 29.06.17 11:52 Сейчас в теме
(5) Да, конечно же. Это понятно.
Спасибо всем ответившим. Значит верной дорогой шел товарищ ;)
По сути второй вариант просто изящнее. Меня самого совесть всегда гложет, когда знаю, что написал коряво. Хотя клиенту по барабану. И так и так будет работать.
Оставьте свое сообщение

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