Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Права на создание и редактирование
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
Veizdem
Каким образом можно присвоить право создавать новые элементы в справочнике, но при этом запретить их редактирование после создания. Возникла проблема - есть два отдела "материалисты" и "снабжение". Есть справочник номенклатуры. В отделе снабжения вместо создания новой номенклатуры при изменении единиц измерения начинают править старую, в итоге все документы у материалистов сходят с ума (например, были банки, стали литры). Так вот задача - запретить отделу снабжения редактировать номенклатуры, позволив при этом их создавать. Пробовал через права у групп - получается бред. При снятии галочки "Редактирование" автоматически снимается "добавление" ну и наоборот соответственно. Обычный интерфейс, 1С 8.2.
Agapov_Stas

 ! 

Правила, пункт 1!
 


Когда Вы добавляешь - то это и есть редактирование - как что тут не понятного ? faceoff.gif
Ardi
Может нужно "Интерактивное редактирование"?
Veizdem
Цитата(Agapov_Stas @ 17.07.14, 17:41) необходимо зарегистрироваться для просмотра ссылки
Когда Вы добавляешь - то это и есть редактирование - как что тут не понятного ? faceoff.gif


Вот в том то и суть, добавлять новое надо оставить, а править его после создания - запретить надо. А галочки снимаются обе сразу. Прежде чем тыкать faceoff.gif вникайте пожалуйста в суть вопроса или уточняйте, если что-то не ясно.

Цитата(Ardi @ 18.07.14, 6:16) необходимо зарегистрироваться для просмотра ссылки
Может нужно "Интерактивное редактирование"?


Да, именно интерактивное редактирование мне нужно запретить при повторном открытии элемента списка.


Но загвоздка в том, что там нет такого пункта.


необходимо зарегистрироваться для просмотра ссылки
Егор Динин
Цитата(Veizdem @ 18.07.14, 7:11) необходимо зарегистрироваться для просмотра ссылки
Но загвоздка в том, что там нет такого пункта.

Не всегда вопросы решаются расстановкой галочек...
Veizdem
Цитата(Егор Динин @ 18.07.14, 8:39) необходимо зарегистрироваться для просмотра ссылки
Не всегда вопросы решаются расстановкой галочек...


Да я уже понял что мне кодить придется... Вот не могу найти вообще понятие "интерактивное редактирование" в виде примера кода. Нашел конечно, но только объяснение, что это нельзя будет из формы править, а как программно задать - нет.

Единственный вариант вижу типа такого:

Если Группа = Снабжение Тогда
    ЗапрещенныеПоляФормы.Доступность = Ложь;
КонецЕсли;

И сунуть это все в процедуру "ПриПовторномОткрытии". Не уверен что именно в эту, но суть та же.

Даже скорее всего придется проверку делать, новый это элемент справочника или нет, а затем если не новый (уже записан в справочник и просто снова открывается его форма) - добавлять обработку на доступность полей и ставить там "Ложь".
DartRomanius
Цитата(Ardi @ 18.07.14, 6:16) необходимо зарегистрироваться для просмотра ссылки
Может нужно "Интерактивное редактирование"?


А в обычных формах это есть?
Petre
Цитата(Veizdem @ 18.07.14, 9:03) необходимо зарегистрироваться для просмотра ссылки
И сунуть это все в процедуру "ПриПовторномОткрытии". Не уверен что именно в эту, но суть та же.

ПередОткрытием с проверкой на ЭтоНовый().
Егор Динин
Подпиской перед записью проверить на ЭтоНовый
Veizdem
В общем пока искал решение - пришли, сказали что надо разрешить только определенным людям править, перечислили по пальцам кому именно. Всем спасибо за помощь. Решил вопрос так:
Процедура ПередОткрытием()
    
    Если НЕ ЭтоНовый() тогда
        Если СписокКомуМожно Тогда
            ЭлементыФормы.Единица.Доступность = Истина;
            ЭлементыФормы.БазоваяЕдиница.Доступность = Истина;
            ЭлементыФормы.ДопЕдиница.Доступность = Истина;
        Иначе
            ЭлементыФормы.Единица.Доступность = Ложь;
            ЭлементыФормы.БазоваяЕдиница.Доступность = Ложь;
            ЭлементыФормы.ДопЕдиница.Доступность = Ложь;
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры
Agapov_Stas
Цитата(Veizdem @ 18.07.14, 8:11) необходимо зарегистрироваться для просмотра ссылки
Вот в том то и суть, добавлять новое надо оставить, а править его после создания - запретить надо. А галочки снимаются обе сразу. Прежде чем тыкать вникайте пожалуйста в суть вопроса или уточняйте, если что-то не ясно.

Ну да ))) просто есть такое понятие как зависимое от другого )) нельзя запретить редактирование, но оставить создавать новое (на уровне ролей) т.к. это и ЕСТЬ РЕДАКТИРОВАНИЕ!
может стоит для начала мат часть подучить ?
ВЫ не можете запретить чтение объекта, но при этом разрешить ему РЕДАКТИРОВАНИЕ - как то не логично - не кажется?
а перед тем как показывать, что Вы умнее других и типо кто то не понял постановку вопроса - надо бы задуматься - а может ВЫ чего то не допоняли?
а Вас вопрос решается очень просто!
Вариант 1: При открытии вешается процедура которая проверяет на ЭтоНовый() - если он новый то

Если ЭтоНовый() Тогда ТолькоПросмотр = Ложь Иначе ТолькоПросмотр = Истина КонецЕсли

В модуле формы вешается вызов этой процедуры на событие после записи.
Соответственно если человек ее записал - то уже отредактировать не сможет!

Вариант 2: Вешается подписка на событие на собитые перед записью - и проверяется наличие ссылки у объекта - если ссылки нет - значит записывается новый объект - а если ссылка у объекта существует, то изменяется уже записанный объект в базу и отказ надо выставить в ИСТИНА
Егор Динин
Цитата(Agapov_Stas @ 18.07.14, 8:52) необходимо зарегистрироваться для просмотра ссылки
Ну да ))) просто есть такое понятие как зависимое от другого )) нельзя запретить редактирование, но оставить создавать новое (на уровне ролей) т.к. это и ЕСТЬ РЕДАКТИРОВАНИЕ! может стоит для начала мат часть подучить ?

Может не будем человека троллить? В мире вообще много нелогичного и в 1С в частности. Человек всё нормально объяснил, и хотел получить помощь.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.