Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 14:36

подскажите как заблокировать документ на редактирование

Автор andron81_81, 01 ноя 2018, 09:49

0 Пользователей и 1 гость просматривают эту тему.

andron81_81

Добрый всем день.

Есть документ. Сделан он таким образом  ,что в нем куча таб. частей. Но эти таб. части в документе не хранятся.
Таб. части очищаются при сохранении, а все данные сохраняются в различные регистры сведений. Скажем таб. часть реквизиты сохраняем в регистр сведений реквизиты и т.д. причем одно из измерений у таких регистров это ссылка на документ.

вот скажем документ я заблокирую , но можно ли мне каким-то образом заблокировать строки присущие у регистров сведений ?
Да и вообще можете соображения свои по этому поводу повыдвигать. Какие могут быть проблемы и т.д.


wise

(0) интересная у Вас логика хранения данных...
ну, да ЛАДНО...

продам НЕ дорого синтаксис-помощник :)

БлокировкаДанных (DataLock)
Элементы коллекции:

ЭлементБлокировкиДанных
Для объекта доступен обход коллекции посредством оператора Для каждого ... Из ... Цикл. При обходе выбираются элементы блокировки.
Возможно обращение к элементам блокировки посредством оператора [...]. В качестве аргумента передается индекс (нумерация с 0).

Методы:
Добавить (Add)
Заблокировать (Lock)
Количество (Count)
Получить (Get)

Описание:
Предназначен для явной блокировки данных от чтения или изменения другими сессиями.

Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Возможен обмен с сервером. Сериализуется.
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

andron81_81

Цитата: wise от 01 ноя 2018, 13:20(0) интересная у Вас логика хранения данных...

я могу Вам объяснить , если интересно :)
переварю , что Вы мне написали


Добавлено: 01 ноя 2018, 14:38


Цитата: wise от 01 ноя 2018, 13:20(0) интересная у Вас логика хранения данных...
ну, да ЛАДНО...

В данном случае нужно сработать примерно так же как характеристики в номенклатуре.
Представьте себе,  имеется куча параметров в которые есть возможность что-то пробивать . каждый такой параметр это строка в таб. части с двумя полями параметр , значение.
Причем значение разных типов : число , список, строка(причем с возможностью выбора варианта из списка значений с последующей редакцией). Для такой задачи оптимальным мне подсказали взаимодействовать с регистром сведений, сохраняя в него в случае если параметр заполнен и не сохраняя(удаляя строку из регистра) если не заполнен. При открытии документа заливаем таб. части запросом , а при закрытии документа чистим таблицы значений.

wise

(2)вот и добавляй в Пространство блокировки свой набор записей по регистратору...
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

andron81_81

Цитата: wise от 01 ноя 2018, 16:49
(2)вот и добавляй в Пространство блокировки свой набор записей по регистратору...

мне необходимо заблокировать строки регистра с отбором по измерению Заказ . причем заблокировать абсолютно для всего кроме чтения этих строк. Верно ли я делаю ?


Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.БЗ_ЗначенияРеквизитов");
ЭлементБлокировки.УстановитьЗначение("Заказ", Объект.Ссылка);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый  ;


при этом я не понимаю значения свойства режимБлокировки и ИсточникДанных.
1. Если я делаю РежимБлокировкиДанных.Исключительный, тогда эти данные будут недоступны так же и для чтения ? Значит я должен выставить "разделяемый" ?
2. что означает ИсточникДанных ? это список полей которые будут запрещены для изменения ? или что-то иное ?

подскажите , пожалуйста.

LexaK

бред какой-то! просто во всех ролях уберите все права на все ваши нужные регистры с данными,
только право: На чтение оставьте!
а все изменения делайте через функции в общем модуле с галочкой привилегированный.
Тогда любой пользователь сможет только смотреть данные, а изменять только через ваши модули (а там уже делаете свою проверку разрешено ли данному пользователю менять/редактировать данные в регистрах )
примерно так, в рамках вашей схемы.
если помогло нажмите: Спасибо!

andron81_81

Цитата: LexaK от 02 ноя 2018, 15:46
бред какой-то! просто во всех ролях уберите все права на все ваши нужные регистры с данными,
только право: На чтение оставьте!
а все изменения делайте через функции в общем модуле с галочкой привилегированный.
Тогда любой пользователь сможет только смотреть данные, а изменять только через ваши модули (а там уже делаете свою проверку разрешено ли данному пользователю менять/редактировать данные в регистрах )
примерно так, в рамках вашей схемы.

Ну почему бред. Просто нехватка опыта. Выходит нет необходимости вообще заморачиваться с блокировкой регистров сведений. Длстаточно заблокировать документ.

LexaK

да, не надо, просто права у всех ролей на изменение регистров уберите :xfbnsdfb:
если помогло нажмите: Спасибо!

Похожие темы (5)

Рейтинг@Mail.ru

Поиск