Для вычисления дат пересечения двух периодов многие зачастую используют довольно сложные наборы условий, не дающих нужный результат, или достигающих его излишне сложным путем.
Файлы
ВНИМАНИЕ:
Файлы из Базы знаний - это исходный код разработки.
Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы.
Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных.
Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
0% комиссии — оплата напрямую исполнителю;
Исполнители любого масштаба — от отдельных специалистов до команд под проект;
Прямой обмен контактами между заказчиком и исполнителем;
Безопасная сделка — при необходимости;
Рейтинги, кейсы и прозрачная система откликов.
Для вычисления дат пересечения двух периодов достаточно использовать всего лишь одноусловие и пару платформенных функций:
Если Макс(ДатаС1, ДатаС2) <= Мин(ДатаПо1, ДатаПо2) Тогда
ДатаПересечения1 = Макс(ДатаС1, ДатаС2);
ДатаПересечения2 = Мин(ДатаПо1, ДатаПо2);
Если ДатаПересечения1<>ДатаПересечения2 Тогда
ТекстСообщения = "Периоды пересекаются в "+ Формат(ДатаПересечения1,"ДФ=dd.MM.yyyy") + " и " + Формат(ДатаПересечения2,"ДФ=dd.MM.yyyy");
Иначе
ТекстСообщения = "Периоды пересекаются в "+ Формат(ДатаПересечения1,"ДФ=dd.MM.yyyy");
КонецЕсли;
Иначе
ТекстСообщения = "Периоды не пересекаются";
КонецЕсли;
Также прикладываю обработку, наглядно демонстрирующую работу данного условия (платформа 8.3.10.2650).
Описанный ниже подход позволяет в три шага заполнять формулы в Excel файлы, вне зависимости от ОС сервера (MS Windows Server или Linux).
Подход подразумевает отказ от работы с COM-объектом в пользу работы через "объектную модель документа" (DOM).
Порой необходимо временно отключить расширение 1С, не удаляя его, чтобы не потерять данные. Но в этом случае при каждом запуске всем будет лезть уведомление о неактивном расширении, хотя очевидно, это техническая информация, которой не стоит лишний раз пугать пользователей.
На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.