1с Обработка найти в таблице пересечения документов

1. user794556 21.09.23 12:48 Сейчас в теме
Добрый день. Формируется по сотруднику табличка, надо определить в этой таблице какие документы пересекаются между собой. Вывести первый документ и второй документ. Может быть несколько пересечений. Помогите с алгоритмом.
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 21.09.23 13:16 Сейчас в теме
(1) Так?
Прикрепленные файлы:
7. user794556 22.09.23 04:46 Сейчас в теме
(2)только строки 4 и 5 одинаковые
10. RustamZz 22.09.23 09:07 Сейчас в теме
(7)
ВЫБРАТЬ
	ИсхТаблица.Событие,
	ИсхТаблица2.Событие КАК ВтороеСобытие
ИЗ
	ИсхТаблица КАК ИсхТаблица
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИсхТаблица КАК ИсхТаблица2
		ПО (ИсхТаблица2.Начало МЕЖДУ ИсхТаблица.Начало И ИсхТаблица.Окончание)
			И (ИсхТаблица2.Окончание МЕЖДУ ИсхТаблица.Начало И ИсхТаблица.Окончание)
			И ИсхТаблица.Событие <> ИсхТаблица2.Событие
Показать
3. alxarz 31 21.09.23 14:14 Сейчас в теме
В цикле сделать проверку
4. user794556 22.09.23 03:53 Сейчас в теме
5. user794556 22.09.23 03:56 Сейчас в теме
6. user794556 22.09.23 03:56 Сейчас в теме
В цикле очень долго работает
8. Spurk 42 22.09.23 06:07 Сейчас в теме
Сделайте выборку сначала по больничным.
Потом создайте соответствие.
Обходе сначала выборку циклом.
По типу такого

Итератор = День(НачалоБольничного);
С День(НачалоБольничного) по День(КонецБольничный) Цикл
Соответсвие.Вставить(Итератор, СсылкаНаБольничный);
итератор = итератор + 1;
КонецЦикла;

Таким образом ключ это число. Значение это ссылка.

После этого вам надо будет сделать выборку по отсутствию.
Так же обходите, ее циклом, но ищите уже в соответствии.

Цикл как сверху, но уже поиск.
Если Соответствие.Получить(Итератор) <> Неопределено тогда пересечение есть.

Я не точно не помню, но если поиск работает так же как в структуре, то поиск там О(1) должен быть. Т.е. моментальный.
По идее это должно быть очень быстро.
9. user794556 22.09.23 07:14 Сейчас в теме
могут и другие документы быть, отпуска, командировки и т.д.
11. Spurk 42 22.09.23 11:48 Сейчас в теме
(9) Какая разница. Ну сделай на все документы. Просто сделай соответствие или структуру(если ключ к строке будешь приводить). И по порядку обходи документы. В отличии от всяких массивов, в этом случае не надо будет молотить все строки при поиске пересечения. Если есть совпадение выводишь совпадение. Если нет, то добавляешь в соответствие/структуру.
12. user794556 26.09.23 06:31 Сейчас в теме
Пока не могу понять, как реализовать
Оставьте свое сообщение

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