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 37 22.09.23 06:07 Сейчас в теме
Сделайте выборку сначала по больничным.
Потом создайте соответствие.
Обходе сначала выборку циклом.
По типу такого

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

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

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

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

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

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

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

Архитектор 1С
Москва
зарплата от 250 000 руб.
Полный день

1С-Программист (интегратор Битрикс24)
Санкт-Петербург
зарплата от 150 000 руб. до 250 000 руб.
Полный день