Имя: Пароль:
1C
1С v8
В какой процедуре устанавливать расчетное значение видимое в форме списка справочника
,
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
Чем регистрСведений и срез последних не устраивает то.....
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn