|   |   | 
| 
 | Права "Изменение" и программное изменение на клиенте | ☑ | ||
|---|---|---|---|---|
| 0
    
        Kateryne 08.01.15✎ 19:32 | 
        Коллеги, добрый вечер!
 Я раньше думала, что права на изменение тем и отличаются от прав на редактирование, что позволяют ЛЮБЫЕ программные изменения сущности. К примеру, есть документ МойДокумент. У него есть реквизит МоеПоле. У роли пользователя есть все неинтерактивные права. Есть следующий код (вызывается ПриОткрытии, на клиенте): Объект.МоеПоле = "БлаБла"; Если у пользователя нет прав на редактирование документа, получаем ошибку доступа. Если право на редактирование реквизита есть - ошибки нет. Можете пояснить? Действительно ли программное изменение типа ДанныеФормыСтруктура на клиенте считается интерактивным редактированием объекта? Или тут где-то еще собака порылась... ЗЫ: только не предлагайте перенести или исправить код :) | |||
| 1
    
        Defender aka LINN 08.01.15✎ 19:43 | 
        (0) Изменение в форме - это интерактивное изменение?
 Вот это поворот! | |||
| 2
    
        Dmitry1c 08.01.15✎ 19:44 | 
        А где фото?     | |||
| 3
    
        Kateryne 08.01.15✎ 19:48 | 
        (1) Не, я то как раз и утверждаю, что это программное изменение. 
 Хорошо, допустим на клиенте просто так: Объект.Поле = Что-то там; нельзя, так как это ДанныеФормыСтруктура, а согласно синтакс-помощнику, такое свойство будет доступно только для чтения. Это у меня бы уложилось в голове влегкую :) Но ведь стоит дать полные права на документ - и ошибки нет. Можете пояснить, почему? | |||
| 4
    
        Defender aka LINN 08.01.15✎ 20:09 | 
        (3) "Не, я то как раз и утверждаю, что это программное изменение." - а я-то как раз над этим и стебусь     | |||
| 5
    
        Kateryne 08.01.15✎ 20:16 | 
        (4) Принято, ок. Т.е.вы хотите сказать, что действительно "интерактивно" = "на клиенте"? Независимо от того, делается ли это посредством кода в форме, или же посредством прямого изменения полей формы пользователем?
 Честно говоря, если так, то для меня это неожиданность. Все же считала, что интерактивно - это только то изменение, которое напрямую вызывает обработчик поля в форме, а вся последующая цепочка вызовов на совести программиста. Ведь если в форме вызвать процедуру на сервере, то этот вызов уже не считается интерактивным, что логично. Так чем клиентский метод хуже :) Но если так, понятно, буду знать. | |||
| 6
    
        Kateryne 08.01.15✎ 20:23 | 
        Короче, если все действительно так и есть, то 1С, считаю, не совсем корректно назвала свои права.
 Надо было делить их на "права на объект базы данных" и "права на изменение в интерфейсе". А второе уже может быть и программным, и интерактивным... | |||
| 7
    
        Reaper_1c 08.01.15✎ 23:05 | 
        А теперь для тех, кто в танке:
 Некорректно - это когда при открытии существующего объекта форма получает признак модифицированности. Некорректно - это когда на клиенте изменение данных информационной базы происходит без ведома пользователя. Если пользователь открыл форму объекта и содержимое объекта в форме стало отличным от того, что есть в базе - это именно пользователь отредактировал данные. А если это не пользователь, а "оно само", значит ваше приложение изрядное ?овно. Кроме того, в условиях когда действительно "оно само" - пользователь может с полным правом иметь "разработчика" в любые технологические отверстия какими угодно предметами. Ведь в этом случае совершенно нельзя достоверно утверждать, что в косяках, сокрытии воровства и убытках предприятия виноват конкретный пользователь, когда в программе "оно само" косячит, ворует и наносит убытки. Это "разработчик" виноват, а пользователь все делал правильно. | |||
| 8
    
        Kateryne 09.01.15✎ 07:11 | 
        (7) А это см. (0), вот эту фразу:
 ЗЫ: только не предлагайте перенести или исправить код :) То что такое поведение в принципе неверно - и сама знаю. Поэтому, так как раньше не сталкивалась с подобным, и не знаю, как права отрабатывают при изменении полей документа на клиенте. Но мы имеем отраслевую конфигурацию, купленную за немаленькие деньги. Или, что более точно, она нас имеет. В этой конфигурации не было предусмотрено прав "Только просмотр" как класс. Решили создать - но получили то, что получили. По всей видимости, для начала придется подправить директиву с "на клиенте" на "на сервере", так как если убрать установку данных полей, мы пока не знаем, на что это может повлиять в дальнейшем, надо разбираться. Все что делает та процедура - это меняет видимость ряда полей в зависимости от выбранного пользователем другого поля. Но эта процедура отрабатывает еще и при открытии. И по умолчанию заполняет некоторые реквизиты. Поведение, действительно, мягко говоря, странное. | |||
| 9
    
        Kateryne 09.01.15✎ 07:14 | 
        Модифицированность формы, кстати, не меняется.     | |||
| 10
    
        Рэйв 09.01.15✎ 07:19 | 
        (9)Если это не реквизиты объекта, а реквизиты формы она и не должна становиться модифицированной, т.к. реквизиты формы живут только пока живет форма и смысла нет их отслеживать     | |||
| 11
    
        Рэйв 09.01.15✎ 07:20 | 
        (9)Вроде такой фигни было сделано в ПКО и РКО.
 Там если одна строка в РасшифровкеПлатежа, то таб часть скрывалась и заполнялись реквизиты формы из строки. Хрень конечно та еще:-) | |||
| 12
    
        Kateryne 09.01.15✎ 07:23 | 
        (11) И как там выкручивались с правами на чтение?     | |||
| 13
    
        Рэйв 09.01.15✎ 07:24 | 
        (12)На чтение чего?     | |||
| 14
    
        Kateryne 09.01.15✎ 07:28 | 
        (13) Точнее, с правами "Только просмотр". Если было нужно дать права на ПКО только на просмотр.
 Или там изменение реквизитов формы не при открытии делалось? | |||
| 15
    
        Рэйв 09.01.15✎ 07:29 | 
        (14)Я не помню уже как там рулилось, но даже если никак, то при записи тормознет с матерным сообщением о недостатке прав доступа.     | |||
| 16
    
        Рэйв 09.01.15✎ 07:31 | 
        Если менялись реквизиты объекта конечно     | |||
| 17
    
        Kateryne 09.01.15✎ 07:38 | 
        У нас не так.
 У меня же в чем проблема - не могу сделать права "Только просмотр", так как при таких правах ругается на изменение поля объекта из структуры ДанныеФормыСтруктура на клиенте, которое делается при открытии. Т.е. нам надо наоборот - разрешить такое изменение, но запретить изменения полей на форме вручную. | |||
| 18
    
        Рэйв 09.01.15✎ 07:42 | 
        Если в коде не прописано, что если нет прав, то менять реквизит формы нельзя, то надо менять код. Имхо настройками свойств не обойдешься     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |