|  | В какой процедуре устанавливать расчетное значение видимое в форме списка справочника | ☑ | 
    
        | 0
    
        skupidom   08.08.17✎ 11:53 | 
        Управление производственным предприятием, редакция 1.2 (1.2.26.1)
Есть новый справочник Проектные задачи.Справочник иерархический,иерархия элементов.У элементов родителей нужно рассчитывать их дату начала и окончания.Дата начала = мин.дата из всех подчиненных задач, дата окончания - макс из дат окончания. В какой процедуре формы списка справочника прописать алгоритм расчета по датам?
 |  | 
    
        | 1
    
        lodger   08.08.17✎ 11:55 | 
        (0) ПриЗаписи элементов справочника считать и записывать в родителя.
инфо-нагрузка на БД повысится на каплю.
 |  | 
    
        | 2
    
        lodger   08.08.17✎ 11:57 | 
        считать в динамике каждый раз, при каждом обновлении, для каждого клиента открывшего список - это лишнее бремя на несчастный список элементов. и место для появления багов и нестыковок, которые придется продумывать, приделывать Оповещения.     |  | 
    
        | 3
    
        mistеr   08.08.17✎ 12:00 | 
        (1) Появятся проблемы при записи не из формы.     |  | 
    
        | 4
    
        skupidom   08.08.17✎ 12:27 | 
        тогда какая все таки процедура для записи?     |  | 
    
        | 5
    
        Heckfy   08.08.17✎ 12:28 | 
        Запихнуть в РегистрСведений. ДинамическийСписок чуток подправить.     |  | 
    
        | 6
    
        lodger   08.08.17✎ 12:40 | 
        (3) а зачем в форме? делайте в модуле объекта.     |  | 
    
        | 7
    
        mistеr   08.08.17✎ 14:31 | 
        (6) Появятся проблемы с блокировками.     |  | 
    
        | 8
    
        lodger   08.08.17✎ 15:08 | 
        (7) ставить пересчет в фоновое задание. пускай пытается забокировать родителя и посчитать. повтор по неудаче. прекращение по успеху.
но это замороч. в реальной бд, когда в пределах одного родителя одновременно лазит большое число юзеров и одновременно решило записать - "вероятность резиста крайне мала!".
 |  | 
    
        | 9
    
        mistеr   08.08.17✎ 15:24 | 
        (8) Тогда жертвуем целостностью данных. Идея с динамическим расчетом уже не кажется такой плохой, не так ли? :)
 А все из-за того, что в регистрах накопления можно хранить только сумму, а максимум или минимум нельзя.
 
 На самом деле есть еще решение — доступ к справочнику строго через API, в том числе на чтение. Можно будет даже поменять реализацию, если возникнут проблемы.
 |  | 
    
        | 10
    
        lodger   08.08.17✎ 17:01 | 
        (9) а в чем жертва? отказ записи родителя транслируем в отказ записи текущего объекта и пускай юзер ждет своей очереди записать с повторным пересчетом.
маленькое решение "большой" проблемы.
 |  | 
    
        | 11
    
        mistеr   08.08.17✎ 17:39 | 
        (10) Пардон, я "фоновое задание" прочитал как "регламентное".
 А фоновое ведь тоже в отдельной транзакции будет. Так что жертвуем таки целостностью.
 |  | 
    
        | 12
    
        Heckfy   08.08.17✎ 17:45 | 
        Чем регистрСведений и срез последних не устраивает то.....     |  | 
        Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший