7.7 Проверка вхождения даты в период дат.

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Сергей123, 8 авг 2013.

  1. TopicStarter Overlay
    Сергей123
    Offline

    Сергей123 Опытный в 1С

    Регистрация:
    11 июл 2013
    Сообщения:
    69
    Симпатии:
    0
    Баллы:
    26
    Доброго всем дня! есть маленькая задачка. Как проверить Новый период дат во вхождение в другой. т.е. попадает ли хоть один из выбранных дней в иной период. Вроде бы решил эту проблему, но сильно коряво.... как можно упростить эту операцию?
    Код:
    СписаниеТМЦ=СоздатьОбъект("Документ.СписаниеТМЦ");
    СписаниеТМЦ.УстановитьФильтр(1,0);
    СписаниеТМЦ.ВыбратьДокументы();
    Пока СписаниеТМЦ.ПолучитьДокумент() = 1 Цикл
    Если СписаниеТМЦ.ПометкаУдаления() = 0 Тогда
    Период = СписаниеТМЦ.Комментарий;
    ПериодНач = Прав(Период,8);
    ПериодКон=Лев(Период,8);
    ПериодНач=Дата(ПериодНач);
    ПериодКон=Дата(ПериодКон);
    Если ((ВыбНачПериода>=ПериодНач) И (ВыбКонПериод<=ПериодКон)) ИЛИ ((ВыбНачПериода<=ПериодНач) И (ВыбКонПериод>=ПериодКон)) ИЛИ ((ВыбНачПериода<=ПериодНач) И (ВыбКонПериод<=ПериодКон)) ИЛИ ((ВыбНачПериода>=ПериодНач) И (ВыбКонПериод>=ПериодКон)) Тогда
    Сообщить("дата входит в период");
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    переменные ВыбНачПериод и ВыбКонПериод выбираются с формы
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Да вроде бы все так... Можно конечно запросом, но поскольку выборка по конкретному виду - быстрее будет не на много
  3. pavl_vs
    Offline

    pavl_vs Профессионал в 1С

    Регистрация:
    18 июн 2011
    Сообщения:
    343
    Симпатии:
    27
    Баллы:
    54
    Эти два последних условия по ИЛИ неверны, т.к. выбранный период может оказаться либо "слева", либо "справа" от интервала "ПериодНач-ПериодКон".
    Правильно:
    Код:
    Если ... ИЛИ ((ВыбНачПериода<=ПериодНач) И (ВыбКонПериод>=ПериодНач)) ИЛИ ((ВыбНачПериода<=ПериодКон) И (ВыбКонПериод>=ПериодКон)) Тогда
    
  4. TopicStarter Overlay
    Сергей123
    Offline

    Сергей123 Опытный в 1С

    Регистрация:
    11 июл 2013
    Сообщения:
    69
    Симпатии:
    0
    Баллы:
    26
    спасибо всем! протестил, пока косяков нет

Поделиться этой страницей