|   |   | 
| 
 | Запись документа без наличия прав | ☑ | ||
|---|---|---|---|---|
| 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) На ум приходит в модуле формы прямая запись данных в таблицу СКЛ с последующим вызовом метода "перечитать" на форме     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |