Разрешение пользователям редактировать отдельные реквизиты документа без перепроведения или просто одни реквизиты разрешать, а другие запрещать.
Разрешение пользователям редактировать отдельные реквизиты документа без перепроведения или просто одни реквизиты разрешать, а другие запрещать.
Иногда необходимо разрешить редактирование некоторых реквизитов документа без перепроведения. Например: Комментарий, АдресКонтрагента, КонтактноеЛицо. Ещё бывает необходимым разрешить изменение отдельных реквизитов в закрытых документах. Например, поставить отметку о состоянии доставки и написать комментарий.
В модуле менеджера документа пишем функцию, которая определяет массив допустимых к редактированию реквизитов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// Возвращает массив имён реквизитов, разрешённых для изменнения без перепроведения. // Если получен параметр типа Массив, то имена реквизитов добавляются в него Функция ПолучитьМассивРеквизитовИзменяемыхБезПерепроведения(МассивРеквизитовДопустимыхКИзменению = Неопределено) Экспорт Если Не ТипЗнч(МассивРеквизитовДопустимыхКИзменению) = Тип(«Массив») Тогда МассивРеквизитовДопустимыхКИзменению = Новый Массив; КонецЕсли; //Типовые реквизиты МассивРеквизитовДопустимыхКИзменению.Добавить(«Грузополучатель»); МассивРеквизитовДопустимыхКИзменению.Добавить(«ДоверенностьНомер»); МассивРеквизитовДопустимыхКИзменению.Добавить(«ДоверенностьДата»); МассивРеквизитовДопустимыхКИзменению.Добавить(«ДоверенностьНомер»); МассивРеквизитовДопустимыхКИзменению.Добавить(«ДоверенностьВыдана»); МассивРеквизитовДопустимыхКИзменению.Добавить(«ДоверенностьЧерезКого»); МассивРеквизитовДопустимыхКИзменению.Добавить(«Комментарий»); МассивРеквизитовДопустимыхКИзменению.Добавить(«АдресДоставки»); //Добавленные реквизиты Возврат МассивРеквизитовДопустимыхКИзменению; КонецФункции |
В модуле ОбщегоНазначения пишем функции общие для всех документов.
// сравниваем реквизиты документа из базы данных с записываемым объектом // имена изменённых реквизитов запихываем в массив Функция ПолучитьСписокИзменённыхРеквизитов(ДокОбъект) Экспорт СписокИзменённыхРеквизитов = Новый Массив; Ссылка = ДокОбъект.Ссылка; мдОбъекта = ДокОбъект.Метаданные(); // сравниваем стандартные реквизиты Для Каждого Реквизит из мдОбъекта.СтандартныеРеквизиты Цикл Если ДокОбъект[Реквизит.Имя] <> Ссылка[Реквизит.Имя] Тогда СписокИзменённыхРеквизитов.Добавить(Реквизит.Имя); КонецЕсли; КонецЦикла; |
В модуле документа ПредЗаписью разрешаем запись без пререпроведения в случае, если были изменены только реквизиты, не вызывающие перепроведение.
РедактированиеЗаднимЧислом = Ложь; МассивРеквизитовДопустимыхКИзменению = Документы.РеализацияТоваровУслуг.ПолучитьМассивРеквизитовИзменяемыхБезПерепроведения(); СписокИзменённыхРеквизитов = ОбщегоНазначения.ПолучитьСписокИзменённыхРеквизитов(ЭтотОбъект); СписокИзменённыхРеквизитовВызывающихПерепроведение = ОбщегоНазначения.МожноЗаписыватьБезПерепроведения(ЭтотОбъект, МассивРеквизитовДопустимыхКИзменению, СписокИзменённыхРеквизитов); Если СписокИзменённыхРеквизитовВызывающихПерепроведение = «» И Проведен И СписокИзменённыхРеквизитов.Количество() > 0 Тогда РежимЗаписи = РежимЗаписиДокумента.Запись; ИначеЕсли НЕ РедактированиеЗаднимЧислом и Дата < НачалоДня(ТекущаяДата()) И Не РольДоступна(«ПравоАдминистрирования») Тогда Сообщить(«Недостаточно прав для проведения реализации « + Номер + » « + Строка(Дата) + » задним числом. Изменены реквизиты: « + СписокИзменённыхРеквизитовВызывающихПерепроведение); Отказ = Истина; КонецЕсли; |
Оцените статью:
Загрузка…
Если Вы заметили ошибку, то выделите ее мышью и нажмите Ctrl+Enter
Добрый день! Есть упр. форма, на ней реквизит. Подскажите, как программно изменить свойство редактирования реквизита? (свойства реквизита -> Редактирование) Буду благодарен за помощь.
присвоить? нет, не может быть всё так просто
Ну, когда нажимаешь Редактирование -> Открыть, там есть галочка вверху Редактирование, означающая, что редактирование разрешено для всех ролей. Вот как ее программно установить?
кажется я сейчас узнаю что-то очень новое про УФ.. где нажимаешь?
На кой фиг ее требуется менять программно?
видимо, нормальным путём не удаётся
Wobland, встаешь на любой реквизит упр. формы, правой кнопкой мыши — > Свойства -> Редактирование -> Открыть.
Менять нужно программно, чтобы потом не было проблем при обновлениях (если внести изменения в типовую форму, то они затираются при обновлениях).
о чём это говорит? или должно тебе сказать
вот Серера умеет подобные фокусы делать
«о чём это говорит? или должно тебе сказать» — ни о чем не говорит. В СП нет массы полезной информации, приходится постоянно в справку заглядывать или книги.
Тэги: 1С 8
Комментарии доступны только авторизированным пользователям
Создали новый вид цены в программе 1с: Управление Торговлей 11.4. Теперь его нужно изменить, но поля неактивны и нельзя что-либо поменять.
Данное ограничение связано с Подсистемой «Запрет редактирования реквизитов объектов», которая запрещает изменять некоторые реквизиты объектов, которые являются ключевыми и оказывают влияние на поведение других объектов. Данная
Если Вы уверены, что изменение реквизитов не повлечет за собой негативных последствий и объект еще не используется, то можно разблокировать реквизиты для редактирования.
В данном случае Вид цены был только создан и нигде не используется.
Проверяем доступна ли команда “Разрешить редактирование реквизитов “:
Если Пользователи.РолиДоступны(«РедактированиеРеквизитовОбъектов») И ПравоДоступа(«Редактирование», Ссылка.Метаданные()) И НЕ ВсеРеквизитыБезПраваРедактирования Тогда // Добавление команды Команда = Форма.Команды.Добавить(«РазрешитьРедактированиеРеквизитовОбъекта»); |
Если нет, то добавляем роль “РедактированиеРеквизитовОбъектов” и возможность редактирования данного объекта.
Появляется предупреждение о разблокировании реквизитов и необходимости проверить использование объекта. Если объект используется, то не рекомендуется разблокировать реквизиты и нужно нажать кнопку “Закрыть”.
Если же нажата кнопка “Разрешить редактирование”, то реквизиты на форме станут доступны для изменения:
Внимание!!! Разблокирование реквизитов для редактирования Вы делаете на свой страх и риск.
Поделиться ссылкой:
Похожие записи
1
2
Показывать по
10
20
40
сообщений
Новая тема
Ответить
gala2009
Дата регистрации: 11.03.2009
Сообщений: 319
Например, Пользователю с ролью Пользователь1 дать право на изменение реквизита Комментарий в записанных документах Реализация товаров и услуг. Для всех остальных реквизитов право на изменение должно быть закрыто.
StarS
Дата регистрации: 15.07.2003
Сообщений: 1623
Типовыми средствами или через «замочек с конфы снять»?
gala2009
Дата регистрации: 11.03.2009
Сообщений: 319
если типовыми невозможно (что приоритетно)<br>то кодом, все равно замок снят, новая роль создана
Денис (САМАРА)
Дата регистрации: 09.04.2008
Сообщений: 8351
Платформа 8.2 позволяет такое настроить в ролях. Реквизиты могут быть открыты на просмотр и редактирование.
gala2009
Дата регистрации: 11.03.2009
Сообщений: 319
С реквизитами пробовала, двумя способами, оба не сработали.<br>При настройке роли в Док-те РТиУ Реквизиты, а заодно и Табличные части ставлю на просмотр, реквизит Комментарий на просмотр и редактирование.<br>Но права на сам документ РТиУ перебивают все настройки прав отдельных реквизитов<br>1.Если у него галки на Чтение, Добавление, Изменение, Провендение, Просмотр, ВводПоСтроке (а у Комментария — редактирование) -<br>то в 1С не редактируеися ни одно поле, в тч и Комментарий<br> <br>2. Если в документе добавляем галку Редактирование, интер.измен,инт.пров, инт,отмена(а у всех реквизитов (кроме Комментария) просмотр), то в 1С редактируются все рквизиты, и кол-во и пр
Денис (САМАРА)
Дата регистрации: 09.04.2008
Сообщений: 8351
А для варианта №1 после снятия общего редактирования выставляли редактирование по-реквизитно?
Тимур15rus
Дата регистрации: 08.11.2008
Сообщений: 613
Ну когда все научатся сначала писать хотя бы версию платформы, о конфигурации уже не говорю.
gala2009
Дата регистрации: 11.03.2009
Сообщений: 319
платформа 8.2.13.219<br>релиз БП 2.0.29.10
gala2009
Дата регистрации: 11.03.2009
Сообщений: 319
> выставляли редактирование по-реквизитно?<br>да, все ревизиты после настройки прав документа только на просмотр (а точнее поставлены первые 7 галок)- стали тоже все на просмотр,<br>а в Комментарий захожу и добавляю еще Редактирование — в итоге он не редактируется, как и все остальные<br> <br>вообще заметила, что редактирование уже записанных и проведенных документов возможно только при галках на правах документа -Интерактивное изменение и Интерактивное проведение, то есть пробуем плясать от этого, и ограничивать только посмотром реквизиты и табличные части- оп! — правится все!
gala2009
Дата регистрации: 11.03.2009
Сообщений: 319
Да, хочу сказать, что экспериментировала с ролью Бухгалтер,<br>сейчас попробую на ПолныхПравах
-
Добрый день!
Скажите пожалуйста как можно дать доступ пользователю изменить определенному реквизиту справочника?
Спасибо! -
Offline
ТехБухПривет
Профессионал в 1С
Команда форума- Регистрация:
- 25 июн 2013
- Сообщения:
- 825
- Симпатии:
- 89
- Баллы:
- 54
Правильно ли я понял менять Определённый реквизит у справочника, но остальное трогать право не имеет?
Если так, то надо создавать отдельную роль(скопировать уже существующую для данного пользователя) и там прописывать данные ограничения.
Но учтите база станет не типовой и придётся переносить при каждом обновлении + вносить изменение вводимые в типовую роль.
Сначала задайтесь вопросом вы к этому готовы? -
Да правильно!
Но конфиг рукописная -
Offline
ТехБухПривет
Профессионал в 1С
Команда форума- Регистрация:
- 25 июн 2013
- Сообщения:
- 825
- Симпатии:
- 89
- Баллы:
- 54
ну если рукописная, то не вижу проблем)) выбираете необходимую роль F9 и препарируете правила доступа к необходимому справочнику со всем вниманием и усердием, а потом уже назначаете нужному пользователю(не путать роли в метаданных и роли назначаемые в администрировании пользователям — если разницу не видите — лучше не трогать)
-
так?
-
Offline
ТехБухПривет
Профессионал в 1С
Команда форума- Регистрация:
- 25 июн 2013
- Сообщения:
- 825
- Симпатии:
- 89
- Баллы:
- 54
Да только надеюсь это скопированная роль и переименованная иначе у всех пользователей у кого назначена данная роль будет применено данное правило… Ну и надеюсь правило про архивную копию вы соблюдаете
-
работает спасибо!
а насчет «архивную копию» какой архив нужен?— Объединение сообщений, 22 окт 2014 —
и еще как дать доступ смог создать и записать но после сохранение не смог изменить только наименование?
Последнее редактирование: 22 окт 2014 -
Offline
ТехБухПривет
Профессионал в 1С
Команда форума- Регистрация:
- 25 июн 2013
- Сообщения:
- 825
- Симпатии:
- 89
- Баллы:
- 54
всегда пожалуйста(плюсик лучшая награда)
Знаете старый добрый боян: Администраторы БД делятся на две категории: те кто ещё не делает копию и кто теперь делает копию…))) -
Скажите пожалуйста как дать доступ смог создать и записать но после сохранение не смог изменить только наименование?
-
Offline
ТехБухПривет
Профессионал в 1С
Команда форума- Регистрация:
- 25 июн 2013
- Сообщения:
- 825
- Симпатии:
- 89
- Баллы:
- 54
хм)) какой вопрос такой ответ: Редактирование…
-
как уберу галку с Редактирование то пользователь при создание не может Редактировать! Как быть?
-
Offline
Tiger86
Модераторы
Команда форума
Модератор- Регистрация:
- 24 мар 2011
- Сообщения:
- 6.407
- Симпатии:
- 108
- Баллы:
- 104
программно прописать, что если роль такая то и элемент записан, то запрет на редактирование )))
-
пример покажите пожалуйста
-
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 560
- Баллы:
- 204
Вот вам пример на коленке:
Если РольДоступна("ВашаРоль") И ЭтотОбъект.Записан() Тогда НужныйЭлемент.Доступность = ЛОЖЬ; КонецЕсли;
-
В реквизите Наименование недоступен Ограничение прав доступа на Редактирование,
где нужно записать этот код? -
Offline
Tiger86
Модераторы
Команда форума
Модератор- Регистрация:
- 24 мар 2011
- Сообщения:
- 6.407
- Симпатии:
- 108
- Баллы:
- 104
ну можно приоткрытии формы элемента сразу определиться с доступностью полей
-
Offline
ТехБухПривет
Профессионал в 1С
Команда форума- Регистрация:
- 25 июн 2013
- Сообщения:
- 825
- Симпатии:
- 89
- Баллы:
- 54
Предвидя вопрос отвечаю)):
Появится код формы при открытии — сделаете проверку
-
вот код
&НаКлиенте Процедура ПриОткрытии(Отказ) Если РольДоступна("Роль1") И ЭтотОбъект.Записан() Тогда НужныйЭлемент.Доступность = ЛОЖЬ; КонецЕсли; КонецПроцедуры
проверил и ошибки
{Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(5,30)}: Переменная не определена (ЭтотОбъект) Если РольДоступна("Роль1") И <<?>>ЭтотОбъект.Записан() Тогда (Проверка: Тонкий клиент) {Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(6,1)}: Переменная не определена (НужныйЭлемент) <<?>>НужныйЭлемент.Доступность = ЛОЖЬ; (Проверка: Тонкий клиент) {Справочник.Контрагенты.Форма.ФормаЭлемента.Форма(5,6)}: Процедура или функция с указанным именем не определена (РольДоступна) Если <<?>>РольДоступна("Роль1") И ЭтотОбъект.Записан() Тогда (Проверка: Тонкий клиент)
-
Offline
Tiger86
Модераторы
Команда форума
Модератор- Регистрация:
- 24 мар 2011
- Сообщения:
- 6.407
- Симпатии:
- 108
- Баллы:
- 104
ЭтотОбъект вроде для толстого клиента? для УФ наверное просто ОБъект
— Объединение сообщений, 24 окт 2014 —
ну и чтож вы как маленький, реквизиты то свои надо подпихивать.. вам же код для примера дали — адаптируйте под свои названия и нужды
0
1С 8.x : Как включить режим редактирования записей в списке?
В 8.1 для многих объектов (справочники, регистры сведений и т.п.) в свойствах можно было настроить способ редактирования записей/элементов: в диалоге или в списке или обоими способами
В 8.2 эту возможность убрали из целей производительности, Максим Радченко пишет в своей книге:
В версии 8.2 не поддерживается режим редактирования ссылочных данных информационной базы в списке. Данные можно редактировать только в форме.
При работе в режиме управляемого приложения свойство объекта конфигурации Способ редактирования игнорируется, и данные редактируются всегда в отдельной форме.
Это относится ко всем таблицам, источником данных которых является динамический список.
Если же таблица имеет другой источник данных (табличная часть, дерево значений и т.д.), то ее данные редактируются непосредственно в списке
В обычных формах, программно можно установить режим редактирования в списке
Код 1C v 8.х
ЭлементыФормы.СписокДоговорыПайщиков.СпособРедактирования = СпособРедактированияСписка.ВСписке;
// или
ЭлементыФормы.ДанныеФизЛиц.СпособРедактирования = СпособРедактированияСписка.ВСписке;
Для Регистра Сведений или Справочника — открыть палитру Свойства — закладка — представление — установить способ редактирования В Списке