Разрешить изменение отдельных реквизитов документа, находящегося за границей запрета

1. Lovish 14 07.04.15 09:49 Сейчас в теме
Переадресовываю чужой вопрос.

Почти для всех пользователей установлен запрет проведения всех документов вчерашним числом (через стандартный механизм, регистр "Границы запрета изменения данных").
Вопрос: Изменение некоторых реквизитов не влияет на движения документа, например, если в Реализации меняется номер БСО.
Как аккуратно и попроще сделать так, чтобы те реквизиты, которые влияют на движения, изменять было бы нельзя, а те, которые не влияют - можно?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Lovish 14 07.04.15 10:27 Сейчас в теме
Самый очевидный способ - при проверке сравнить старую и новую версию по документа по ВСЕМ реквизитам, и если изменения только в разрешенных реквизитах, то разрешать запись. Но способ не эффективен - реквизитов, которые должны быть доступны для изменения, не так много.

Есть способ лучше?
5. Africa 07.04.15 17:40 Сейчас в теме
(2) Lovish, Как вариант - на форме документа у элементов, которые можно редактировать задним числом снимается признак "изменяет данные". Если форма открыта в режиме "только просмотр", то элементы, у которых этот признак не стоит можно изменять. Ну и остается сделать запись без перепроведения для документов.
7. Lovish 14 07.04.15 23:41 Сейчас в теме
(5) Africa,
Как вариант - на форме документа у элементов, которые можно редактировать задним числом снимается признак "изменяет данные".

Не совсем понимаю, чем этот флаг может помочь. Форма ведь не в состоянии ТолькоПросмотр, просто данные не записываются после проверки на дату запрета. Тем более, как я понимаю, для полей, непосредственно связанных с данными объекта, флаг ни на что не влияет (по умолчанию он как раз-таки снят, и Модифицированность формы будет выставлена в любом случае).
3. spezc 792 07.04.15 10:31 Сейчас в теме
1. Скопирвать форму
2. Заблокировать все реквизиты кроме "разрешенных".
3. При необходимости редактирования - открывать специальную форму
4. AndrewVVS 07.04.15 15:25 Сейчас в теме
Делал для комментария в нескольких документах: создавал стандартную кнопку "открыть" - на нее вешал вызов процедуры "Процедура КомментарийОткрытие(Элемент, СтандартнаяОбработка)" и уже в отдельной форме редактирования ПолучитьОбщуюФорму("ФормаРедактированияТекста"...) редактировал, + можно предусмотреть исключения через дополнительные свойства, но тогда их нужно прописать и в общих модулях проверки даты запрета.
Alexey_A; myoker; Lovish; +3 Ответить
6. Lovish 14 07.04.15 23:26 Сейчас в теме
(4) AndrewVVS,
можно предусмотреть исключения через дополнительные свойства, но тогда их нужно прописать и в общих модулях проверки даты запрета

В этом случае нужно навешивать обработчик на все запрещенные реквизиты. Иначе как определить, что меняются только разрешенные?

Делал для комментария в нескольких документах: создавал стандартную кнопку "открыть" - на нее вешал вызов процедуры "Процедура КомментарийОткрытие(Элемент, СтандартнаяОбработка)" и уже в отдельной форме редактирования ПолучитьОбщуюФорму("ФормаРедактированияТекста"...) редактировал

А вот это - хороший вариант! В этом случае обработчики нужно прописать только на разрешенные реквизиты.
10. AndrewVVS 09.04.15 11:38 Сейчас в теме
(6) Lovish, дополнительные свойства по-любому придется прописывать, так как в 10.3 целых 3 проверки по дате запрета: 1. при открытии формы документа, 2 - при его записи даже без проведения (откройте в старом периоде, например инвентаризацию), 3 - при записи регистров, если есть проведение. В общем модуле "НастройкаПравДоступа" в процедуре "ПередЗаписьюДокументаПроверкаДоступностиПериода" прописываете "Если Источник.ДополнительныеСвойства.Свойство("ЗаписьЗаПределамиРазрешенногоПериода") Тогда Возврат;КонецЕсли;"; насчет Цитирую "навешивать обработчик на все запрещенные реквизиты": сделайте отдельную форму сразу на все такие реквизиты (комментарий, грузополучатель и т.д.), то есть будет только 1 обработчик.
CepeLLlka; +1 Ответить
11. Lovish 14 09.04.15 13:07 Сейчас в теме
(10) AndrewVVS, да, спасибо, я разобрался, что дополнительными свойствами придется пользоваться в любом случае, просто не успел изменить сообщение. Автору вопроса был посоветован Ваш вариант. А делать ли общую форму на редактирование всех "разрешенных к изменению" реквизитов, или поставить обработчик ПриОткрытии с вызовом формы редактирования на каждый реквизит - он решит сам.
8. pavelyar 08.04.15 00:00 Сейчас в теме
Дак уровни записи не подходят?
9. Lovish 14 08.04.15 00:04 Сейчас в теме
(8) pavelyar,
Дак уровни записи не подходят?

Поясните, что имеете в виду.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот