8.х Регистры в расчета в учете поминутной аренды

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем ЧКДзержинский, 29 апр 2016.

  1. TopicStarter Overlay
    ЧКДзержинский
    Offline

    ЧКДзержинский Опытный в 1С

    Регистрация:
    7 дек 2006
    Сообщения:
    487
    Симпатии:
    3
    Баллы:
    29
    Всем доброго дня. Стоит задача вести поминутный учет аренды и я решил воспользоваться регистрами расчета.
    В общем, нужно отслеживать пересечения периодов аренды, чтобы два раза не сдать одно помещение в один и тот же период. Думал использовать такую возможность как ФактическийПериодДействия, но что-то у меня не получилось: вытеснение периода происходит только если вид расчета другой, а один и тот же вид расчета сам себя не вытесняет. И вообще, задача стоит в том, чтобы контролировать вытеснение, т.е. чтобы при проведении документа "увидеть", что происходит попытка сдать в аренду уже арендованное и не допустить этого.
    Во-вторых, задача в том, чтобы отслеживать количество минут аренды за день (900). Создал график, где каждому дню соответствует количество минут аренды, которое возможно за один день. Ну и как результат, из таблицы ДанныеГрафика получаю число, кратное 900.
    --- Объединение сообщений, 29 апр 2016 ---
    Проблема с графиком некритична, т.к. по идее вытеснения быть не должно и количество минут аренды я смогу получить через РАЗНОСТЬДАТ.
  2. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    А зачем Вам регистр расчета?
    Обычно для этих целей используют Регистры сведений. у Вас же УПП насколько я помню - посмотрите документ Событие. он резервирует помещения. там за это дело отвечает РС ПериодыЗанятостиПомещений
    Ну и вообще в таких задачах типа занятости там всегда это через РС делается
  3. TopicStarter Overlay
    ЧКДзержинский
    Offline

    ЧКДзержинский Опытный в 1С

    Регистрация:
    7 дек 2006
    Сообщения:
    487
    Симпатии:
    3
    Баллы:
    29
    Конфигурация пишется с нуля. Я не стал расписывать всю задачу, но там много нюансов, в том числе и с формированием отчетов. Насколько я помню, для периодических расчетов лучше использовать регистры расчета. На данный момент конфигурация частично готова и написал я ее, используя как раз регистры сведений и регистры накопления, но работа с временными интервалами, по-моему, выглядит неуклюже - вот и решил попытаться все же на регистрах расчета написать.
  4. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ну пока не будет точно задачи и конкретики не будет.
    Скажем так задачи с рассписанием и занятостью -они решаются через РС.
    --- Объединение сообщений, 29 апр 2016 ---
    Ну и еще Вы сами себе немного противоречите "вытеснение периода происходит только если вид расчета другой, а один и тот же вид расчета сам себя не вытесняет. И вообще, задача стоит в том, чтобы контролировать вытеснение, т.е. чтобы при проведении документа "увидеть", что происходит попытка сдать в аренду уже арендованное и не допустить этого"

    Вытеснение оно как раз и создано для того что бы на вашем языке одну аренду заменять другой (т.е один вид расчета с большим приоритетом заменит другой) и при этом ошибки не будет.
    Последнее редактирование: 29 апр 2016
  5. TopicStarter Overlay
    ЧКДзержинский
    Offline

    ЧКДзержинский Опытный в 1С

    Регистрация:
    7 дек 2006
    Сообщения:
    487
    Симпатии:
    3
    Баллы:
    29
    Ну в данном случае механизм вытеснения нужен, не для того, чтобы прошло вытеснение, а чтобы можно было "увидеть", что при проведении происходит попытка вытеснения.
    Например, некоторое помещение забронировано на этот день с 8:30 по 14:00. Приходит некий клиент и пытается забронировать этот же номер, допустим с 11:00 до 12:00. У нас есть два временных отрезка и нужно выяснить, нет ли уже на этом отрезки брони. Если я правильно все понял, то получается девять вариантов пересечения временных интервалов и попытка выловить это пересечение сама по себе выглядит громоздко.
    --- Объединение сообщений, 29 апр 2016 ---
    Уточню, девять вариантов получается не в данном конкретном случае, а если допустить все возможные длины временных отрезков ( a>b,a<b, a=b) и возможные варианты их пересечений.
    Последнее редактирование: 29 апр 2016
  6. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ну так если на вскидку то в чем проблема сделать РС Занятость помещенйи добавить измерение Помещение и ДатаЗанятости. ну если у Вас занятость по минутам.
    и сделать документ там указть интервал. допустим тот же с 8 30 до 14 00 и пусть он вам пишет в РС записи . типа 8 30 помещение 1, 8 31 помещение 1 и т.д

    тогда когда вы следующий раз захотите влепить с 11 до 12 он вам не даст записать т.к записи с там измерением уже существует
    --- Объединение сообщений, 29 апр 2016 ---
    Это первый вариант. второй как сделано в типовой по тому же РС что я вам писал там в модуле Регистра сведений
    Там при записи делается проверка через процдерцу ПроцедурыУправленияПерсоналомДополнительный.ПолучитьОшибкиПериодовЗанятостиПомещения
    где проверяется попадает ли интервал в уже имеющиеся записи
  7. TopicStarter Overlay
    ЧКДзержинский
    Offline

    ЧКДзержинский Опытный в 1С

    Регистрация:
    7 дек 2006
    Сообщения:
    487
    Симпатии:
    3
    Баллы:
    29
    Насколько я понял, то в первом случае предполагается, что если помещение забронировали на день, то в РС за этот день будет 900 записей - это есть некрасиво.

    Второй вариант надо будет посмотреть, спасибо за инфу.
  8. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ну почему некрасиво? кто это определяет? та мони весяк байты эти записи у вас там будет 2 измерения проиндексированы по ним будет поиск быстро работать.
    Думаете у Вас документ расчет с\с там движенйи по регисрам затрат меньше делает?
  9. TopicStarter Overlay
    ЧКДзержинский
    Offline

    ЧКДзержинский Опытный в 1С

    Регистрация:
    7 дек 2006
    Сообщения:
    487
    Симпатии:
    3
    Баллы:
    29
    Возможно весить будут не так уж много, но мне такой вариант кажется все же громоздким. Тот вариант, который есть сейчас у меня очень похож на тот, что в УПП (совпадение однако :cool:) - структура регистра практически идентична и для проверки занятости помещений я просто беру период из текущего документа и через левое соединение беру из РС периоды, с которыми возникает пересечение и, собственно, то, сколько условий приходится прописывать в этом соединении, чтобы отловить пересечение, мне не понравилось, но раз уж 1С-ники пришли к подобному, значит на регистрах расчета аренду помещений похоже лучше не учитывать.
  10. TopicStarter Overlay
    ЧКДзержинский
    Offline

    ЧКДзержинский Опытный в 1С

    Регистрация:
    7 дек 2006
    Сообщения:
    487
    Симпатии:
    3
    Баллы:
    29
    Еще добавлю насчет первого варианта. Я считаю, что записи в регистр должны вноситься по возможности так, чтобы они читались не только технически, но и визуально: одно дело открыть регистр и увидеть там несколько строк - не больше 10 и четко видно, кто и сколько времени занял, другое - 900 записей.
  11. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    ну смотрите тогда второй вариант

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