|
Запрет редактирования документов по подчинению (Требуется критика) | ☑ | ||
---|---|---|---|---|
0
Ymryn
29.12.14
✎
14:50
|
Мое почтение. Надеюсь на критику и замечания со стороны светлых умов, посещающих данный форум.
Задача: Необходимо запретить редактирование документов (различные типы) по цепочке владельцев вверх Если быть более конкретным, есть заказ на производство, у него есть маршрутный лист, внутренние потребления, расходные ордера, выпуски продукции и еще ряд самописных документов в подчинении. Иногда вложенность, чтобы дойти до этого заказа через подчиненность, очень даже радует. Нужно запретить редактирование всех документов по этому заказу. Моя текущая идея: Завести регистр сведений, куда бы при выполнении обработки закрывающей редактирование, записывались бы все подчиненные документы и сам заказ. Добавить подписку, чтобы при открытии проверялся документ на наличие в этом регистре и если есть, то слетала бы доступность. (ну или как-то так). Собственно интересно ваше мнение: Оправдывает ли на ваш взгляд, поиск по регистру как альтернатива разыменовыванию, чтобы добраться до заказа естественным путем? Новый документы в этом случае, будут успешно создаваться, что есть несколько косяк. Чувствую, что изобретаю велосипед, но уж больно не хочется получать заказ через бешенную ссылку при записи каждого документа, особенно если учесть, что далеко не все документы с ним связаны. А тут почти универсальный код получается. |
|||
1
Бригада бронепоезда
29.12.14
✎
14:52
|
идея нормальная.
"чтобы при открытии " - не только при открытии, документы ведь и программно могут менять |
|||
2
Casey1984
29.12.14
✎
14:54
|
Я б тоже так сделал.
|
|||
3
разработчик 1с
29.12.14
✎
14:54
|
добавить такую же проверку в подписку при записи и новые доки делать не смогут
|
|||
4
Ymryn
29.12.14
✎
14:55
|
(1) Тут больше защита от пользователей. Я не хочу, чтобы проверка увеличивала время проведения. Сильно не хочу.
Но боюсь да, придется скорее и передзаписью отменять. |
|||
5
Ymryn
29.12.14
✎
14:55
|
(3) нового документа железно не будет в регистре. Т.е для него надо другой механизм. Т.е. для каждого типа документов придется свой механизм реализовывать.
|
|||
6
разработчик 1с
29.12.14
✎
14:57
|
(5) если док.основание в (регистр со списком запретных документов)
|
|||
7
Ymryn
29.12.14
✎
14:58
|
(6) для расходного ордера это будет докоснование.Докоснование.ДокОснование. Как-то грустно мне при виде такой картины. :(
|
|||
8
Ymryn
29.12.14
✎
15:00
|
(6) хотя поспешил, да. Согласен. Вполне. Спасибо.
|
|||
9
Бригада бронепоезда
29.12.14
✎
15:00
|
интересно, если первоначальный док вдруг пометят на удаление - это значит, что вся цепочка больше не актуально и её можно изменять как угодно?)
|
|||
10
Ymryn
29.12.14
✎
15:01
|
(9) ну первоначальный документ должен быть под запретом и его никто не должен пометить. :)
|
|||
11
Бригада бронепоезда
29.12.14
✎
15:05
|
(10) ну тогда в РС пиши только связку Док-ДокОснование и проверяй по нему. всю цепочку туда писать не надо, пусть каждый док пишет свое основание туда.
а дерево цепочки можешь потом получить рекурсивным запросом |
|||
12
Ymryn
29.12.14
✎
15:08
|
(11) Хмм, вроде уже в (6) хороший вариант. Записать как и планировал полный перечень документов в регистр (одно измерение - документ) А уже на этапе проверки ПередЗаписью проверять как сам документ, так и его основание на вхождение в регистр. Должно быть не шибко долго. Плюс еще можно удалять из регистра фоновым заданием документы, старше года. Чтобы он не забивался.
|
|||
13
Бригада бронепоезда
29.12.14
✎
15:09
|
ну делай как знаешь.
|
|||
14
Ymryn
29.12.14
✎
15:09
|
(12)+ Ну или даже сугубо основание, а так для заказа сделать отдельную проверку. Чтобы запрос пошустрее работал.
|
|||
15
Ymryn
29.12.14
✎
15:10
|
(13) я просто, к сожалению, в твоем варианте не очень понял где именно плюшки :(
|
|||
16
разработчик 1с
29.12.14
✎
15:10
|
(12) не, я тоже думаю, что лучше каждому документу писать связку с самым главным первым. можно кстати использовать стандартный РС свойства объекта
|
|||
17
Ymryn
29.12.14
✎
15:12
|
(16) я пока не понимаю, а что мы таким образом выигрываем? Когда планируется эта запись добавлять? ПриЗаписи самого документа?
|
|||
18
Бригада бронепоезда
29.12.14
✎
15:14
|
а, по первому заказу. понел.
(7) не нужно докоснование.Докоснование.ДокОснование при записи дока ищешь заипсь в РС по докОснование, вытаскиваешь оттуда заказ и пишешь его к текущему доку. |
|||
19
Бригада бронепоезда
29.12.14
✎
15:15
|
+ но я бы все равно сделал 3 измерения:
Документ ДокументОснование Заказ чтобы основание можно было получать из регистра, а не из точки |
|||
20
разработчик 1с
29.12.14
✎
15:16
|
(17) да, призаписи. выигрыш имха в том, что потом заходишь в первый док, ставишь там галочку - запретить. и все документы сразу блокируются.
везде в приоткрытии ставишь вызов проверки. и в подписку призаписи |
|||
21
Ymryn
29.12.14
✎
15:24
|
я пока не понимаю зачем мне записывать связками. Вроде итак все получается.
Смотрите картину. У меня заказ у него 5 МЛ у тех 5 внутренних потреблений у тех 5 расходных ордеров. Пусть это все. Я при закрытии все это собираю разово (все 16 документов) и записываю в регистр в одно измерение (вот тут чую засаду). Это будет делать отдельная обработка, вешать на галочку в документе не хочу, лучше добавлю еще одно измерение со статусами, причинами, пользователям и датами закрытия и открытия (а открывать их вновь будут), ну и плюс это все значит не будет влиять на само проведение документа. Дальше перед записью я проверяю для всех типов документов кроме заказа вхождение документа основание в этот регистр. Тем самым если я записываю расходный ордер я проверяю внутреннее потребление (ну или реализацию/перемещение/т.д, если вдруг это вообще левый документ). Если есть - значит нельзя. Нету - все отлично, работаем как всегда. Меня смущает насколько быстро будет идти поиск по этой солянке в регистре, ибо не совсем представляю индексацию по составному типу. |
|||
22
Ymryn
29.12.14
✎
15:25
|
(21) *поправляюсь, малость уже устал к концу года, приношу извинения за сумбурность мыслей. "Добавлю еще один регистр сведений со статусами ..."
|
|||
23
Ymryn
29.12.14
✎
15:26
|
В любом случае, большое спасибо. Встряхнули мысли, стал лучше представлять, что хочу, и где камешки могут быть.
|
|||
24
Бригада бронепоезда
29.12.14
✎
15:28
|
старайся по возможности избавиться от докоснование.докоснование.докоснование.докоснование
|
|||
25
Ymryn
29.12.14
✎
15:30
|
(24) ну разово я запросом через соединения соберу. Там должно хватить одного ДокОснования если правильно левые соединения накидать. Но да, именно от этого хочу избавиться, благодарю. :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |