| 
    
        
     
     | 
    
  | 
Запись документа без наличия прав | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        moonlight    
     18.10.22 
            ✎
    10:09 
 | 
         
        Добрый день.
 
        1С УТ (обычные формы) Каким образом программно (модуль формы) можно дать возможность пользователю записывать документ, если у него права только на просмотр этого документа? Доступ к кнопкам Запись и ОК предоставил установив Свойство "Только просмотр" = Ложь. Пытался поиграть методом УстановитьПривилегированныйРежим - не получилось. Спасибо.  | 
|||
| 
    1
    
        Fish    
     гуру 
    18.10.22 
            ✎
    10:12 
 | 
         
        А зачем такой изврат? Если пользователю надо записывать документ - дайте права на запись.     
         | 
|||
| 
    2
    
        Гений 1С    
     гуру 
    18.10.22 
            ✎
    10:15 
 | 
         
        (0) в привилегированном модуле попробуй, ггг.. хотя это программно.
 
        а так создай кнопку без галочки Изменяет данные и по ней копируй данные формы в объект и его записывай. Сама форма не даст записать.  | 
|||
| 
    3
    
        YFedor    
     18.10.22 
            ✎
    10:22 
 | 
         
        (2) После записи в эту форму же не запихать данные вновь созданного объекта?
 
        Тогда, наверное, лучше открывать какую-то другую форму, которая будет выглядеть как форма документа, но ей не будет являться ...  | 
|||
| 
    4
    
        moonlight    
     18.10.22 
            ✎
    10:24 
 | 
         
        (1) Да вот такое задание)     
         | 
|||
| 
    5
    
        moonlight    
     18.10.22 
            ✎
    10:26 
 | 
         
        (2) Надо по кнопке формы "ОК".     
         | 
|||
| 
    6
    
        Asmody    
     18.10.22 
            ✎
    10:29 
 | 
         
        (0) Если вы хотите делать из формы документа, значит у вас что-то не так с архитектурой и/или с назначением ролей/прав.     
         | 
|||
| 
    7
    
        Гений 1С    
     гуру 
    18.10.22 
            ✎
    11:24 
 | 
         
        (5) скройте типовую кнопку ОК, создайте свою, гггг     
         | 
|||
| 
    8
    
        1Сергей    
     18.10.22 
            ✎
    11:30 
 | 
         
        (4) Ваша задача убедить постановщика что так делать не надо     
         | 
|||
| 
    9
    
        vicof    
     18.10.22 
            ✎
    11:36 
 | 
         
        (8) +100500     
         | 
|||
| 
    10
    
        PR    
     18.10.22 
            ✎
    11:39 
 | 
         
        (4) — Как насрать в горшок, не снимая штанов?
 
        — А зачем такой изврат? — Да вот такое задание Если ты думаешь, что ты этой фразой сказал, что это не ты идиот, а тот, кто тебе дал такое задание, то нет  | 
|||
| 
    11
    
        Гений 1С    
     гуру 
    18.10.22 
            ✎
    12:32 
 | 
         
        (10) надо быть открытым для пожеланий клиента и помнить что
 
        а) клиент всегда прав б) любой каприз за ваши деньги в) я то сделаю, но жить с этим вам.  | 
|||
| 
    12
    
        PR    
     18.10.22 
            ✎
    12:35 
 | 
         
        (11) Геня, это твои принципы
 
        Ты, я так понимаю, по таким принципам за деньги и в попу дашь и в рот возьмешь А нормальные люди во всякий блудняк не ввязываются, потому что говно, подброшенное на лопате, все-равно упадет тебе же на голову  | 
|||
| 
    13
    
        moonlight    
     18.10.22 
            ✎
    15:50 
 | 
         
        Это вопрос на одном из собеседований как мне сказали!)) Необходимо реализовать вот такую задачу.)     
         | 
|||
| 
    14
    
        Fish    
     гуру 
    18.10.22 
            ✎
    15:53 
 | 
         
        (13) И правильный ответ на него в (8) :)     
         | 
|||
| 
    15
    
        ptiz    
     18.10.22 
            ✎
    15:56 
 | 
         
        (0) Фраза "у него права только на просмотр" может означать разные вещи.
 
        Если у пользователя в роли есть право на "Запись", но нет права на "Редактирование", то обходится программной записью. А если нет права на "Запись", то только сильным извратом.  | 
|||
| 
    16
    
        Фрэнки    
     18.10.22 
            ✎
    16:04 
 | 
         
        помню был какой-то прикол, что нельзя давать пользователям право запуска внешних обработок из файлов. 
 
        Потому что в тексте внешней обработки может быть код, который позволит перезаписать документы, даже если у юзера права только на просмотр. Но как там была организована такая хакерская подляна - не помню.  | 
|||
| 
    17
    
        Фрэнки    
     18.10.22 
            ✎
    16:06 
 | 
         
        Собственно, использование контекста, что это модуль у обычной формы, подразумевает, что нет разделения на контекст Клиента и Сервера, что это толстый клиент и т.д.     
         | 
|||
| 
    18
    
        vde69    
     18.10.22 
            ✎
    16:09 
 | 
         
        в форме в процедуре "на сервере"
 
        1. установить привелегированный режим 2. выполнить любую типовую команду у которой параметров выступает объект или ссылка (например печать)  | 
|||
| 
    19
    
        moonlight    
     18.10.22 
            ✎
    16:13 
 | 
         
        Формы обычные! Даже если я устанавливаю прив. режим в событиях формы или модуля ПередЗаписью, 1С где то под капотом проверяет наличие прав на запись и соответственно я не попадаю в указанный обработчик события )     
         | 
|||
| 
    20
    
        Fish    
     гуру 
    18.10.22 
            ✎
    16:15 
 | 
         
        (19) Надо делать свою кнопку. И уже там устанавливать привилегированный режим и вызывать запись.     
         | 
|||
| 
    21
    
        moonlight    
     18.10.22 
            ✎
    17:20 
 | 
         
        Вот полный текст задания: 
 
        Для роли Полные права; на документ Заказ покупателя оставить право Просмотр. Создать возможность записи документа (фактически обход ограничения Роли) по кнопке «ОК» формы. (Непосредственное редактирование формы запрещено, только модуль формы).  | 
|||
| 
    22
    
        YFedor    
     18.10.22 
            ✎
    17:22 
 | 
         
        (21) А кто сказал, что это типовая кнопка?     
         | 
|||
| 
    23
    
        moonlight    
     18.10.22 
            ✎
    17:22 
 | 
         
        Пишу потому что понимаю, что такой возможности нет. Но может, что то не так понял.     
         | 
|||
| 
    24
    
        moonlight    
     18.10.22 
            ✎
    17:23 
 | 
         
        непосредственное редактирование формы запрещено. Тогда вариант создавать программно кнопку из модуля формы.     
         | 
|||
| 
    25
    
        YFedor    
     18.10.22 
            ✎
    17:24 
 | 
         
        (24) ага     
         | 
|||
| 
    26
    
        Мимохожий Однако    
     18.10.22 
            ✎
    17:25 
 | 
         
        При создании на сервере добавь программно в модуле формы свою кнопку ОК и пиши туда, что тебе хочется.     
         | 
|||
| 
    27
    
        YFedor    
     18.10.22 
            ✎
    17:25 
 | 
         
        Я так понимаю, что это не реальная бизнес-задача, а какая-то задротно-тренировочная     
         | 
|||
| 
    28
    
        Мультук    
     гуру 
    18.10.22 
            ✎
    17:26 
 | 
         
        (23) 
 
        Вопрос 1. Зачем тебе сейчас обычные формы ? Вопрос 2. Зачем тебе такие люди, которые уже на этапе приема на работу хотят странного? Я обычно не ленюсь глянуть "а как так можно", но смотреть данную задачу -- фи. P.S. А у стандартной кнопки "ОК" можно переопределить обработчик ? Ну или что-нибудь типа: В ПередЗаписью УстановитьПривРежим(Истина); Записать() Отказ = Истина;  | 
|||
| 
    29
    
        moonlight    
     18.10.22 
            ✎
    17:33 
 | 
         
        (28) Да мне они не нужны. Это задание необходимо выполнить на конфигурации УТ 2.3 )     
         | 
|||
| 
    30
    
        ptiz    
     18.10.22 
            ✎
    17:44 
 | 
         
        (21) Назначь для кнопки "ОК" свою процедуру, и в процедуре делай "Записать()".     
         | 
|||
| 
    31
    
        moonlight    
     18.10.22 
            ✎
    17:47 
 | 
         
        Такой вариант предполагал. Думал, может как то можно использовать метод УстановитьПривРежим можно как то заюзать при нажатии родной кнопки ОК.     
         | 
|||
| 
    32
    
        Фрэнки    
     18.10.22 
            ✎
    17:51 
 | 
         
        ---
 
        Вот полный текст задания: Для роли Полные права; на документ Заказ покупателя оставить право Просмотр. Создать возможность записи документа (фактически обход ограничения Роли) по кнопке «ОК» формы. (Непосредственное редактирование формы запрещено, только модуль формы). --- Т.е. получается, что нужно иметь скопированную роль Полные права и в ней убрать права с документа а затем каким-то образом программно вернуть права на документ, которые были выключены до того как?!  | 
|||
| 
    33
    
        moonlight    
     18.10.22 
            ✎
    17:54 
 | 
         
        Нет. В самой роли изначально на этот документ оставляем только право Просмотр. А процессе записи мы расширяем права, чтобы произвести запись     
         | 
|||
| 
    34
    
        Фрэнки    
     18.10.22 
            ✎
    17:56 
 | 
         
        и вообще странно, если форма документа заполнена и в наличии роль "только просмотр", то открытие формы будет "Только просмотр = истина"
 
        Ну даже если на конкретной кнопке будет указано, что Только просмотр = ложь Все остальные данные формы не изменятся и перезапись документа из формы не имеет нормального смысла. Мало того. При открытии обычной формы можно программно установить на всю форму и на отдельные элементы формы Только просмотр = Истина. Но если нет роли на запись объекта, то манипуляции с формой не смогут взломать отсутвие роли на объект.  | 
|||
| 
    35
    
        moonlight    
     18.10.22 
            ✎
    17:57 
 | 
         
        )))     
         | 
|||
| 
    36
    
        Фрэнки    
     18.10.22 
            ✎
    17:59 
 | 
         
        (33) извини за грубую форму
 
        Но мне кажется, что либо тебя разводят, либо нас ты разводишь. И смотрят, что ты в этом разводе будешь делать, насколько уверен в том, что если роли в текущем сеансе нет, то дать ее самому себе в текущем же сеансе не получится.  | 
|||
| 
    37
    
        Kassern    
     18.10.22 
            ✎
    18:01 
 | 
         
        (33)  Добавьте права на запись, но программно ограничьте эту возможность. И в зависимости от "расширения прав" регулируйте это программное ограничение.     
         | 
|||
| 
    38
    
        moonlight    
     18.10.22 
            ✎
    18:04 
 | 
         
        (36) Нет, я серьезно написал то, что было в одном из задании, потратил достаточно много времени и только после этого отписался сюда. Я уже им написал, чтобы дали дополнительные разъяснения. В принципе я уже понял, что не только мне это задание кажется странным.     
         | 
|||
| 
    39
    
        Фрэнки    
     18.10.22 
            ✎
    18:07 
 | 
         
        (37) Если добавить права на запись, то какого хххх писать, что из полных прав убрали _все_ , кроме права на просмотр на данный обюъект.
 
        Не надо ничего пытаться добавлять, а просто сказать, что задаватели такой тестовой задачи уху ели.  | 
|||
| 
    40
    
        Vaderonk    
     18.10.22 
            ✎
    18:13 
 | 
         
        (0) может я немного чего не понимаю, но почитай https://www.softpoint.ru/archive/article_id159.php - уж извиняюсь за ссыль на сторонний ресурс, но там описывают очень подробно все.     
         | 
|||
| 
    41
    
        Фрэнки    
     18.10.22 
            ✎
    18:20 
 | 
         
        (40) прикольно написано, но этот подход не будет работать на обычных формах (раз)
 
        И в задании ему установили ограничение, что все изменения нужно выполнить в модуле формы (два) Т.е. разрешение на запись в привилегированном модуле ему по условиям задачи не давали.  | 
|||
| 
    42
    
        rudnitskij    
     18.10.22 
            ✎
    19:14 
 | 
         
        (38) интересно, какая ЗП будет решившим эту задачу? 40 тыщ?     
         | 
|||
| 
    43
    
        rudnitskij    
     18.10.22 
            ✎
    19:17 
 | 
         
        (21) На ум приходит в модуле формы прямая запись данных в таблицу СКЛ с последующим вызовом метода "перечитать" на форме     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |