Создали новый вид цены в программе 1с: Управление Торговлей 11.4. Теперь его нужно изменить, но поля неактивны и нельзя что-либо поменять.
Данное ограничение связано с Подсистемой «Запрет редактирования реквизитов объектов», которая запрещает изменять некоторые реквизиты объектов, которые являются ключевыми и оказывают влияние на поведение других объектов. Данная
Если Вы уверены, что изменение реквизитов не повлечет за собой негативных последствий и объект еще не используется, то можно разблокировать реквизиты для редактирования.
В данном случае Вид цены был только создан и нигде не используется.
Проверяем доступна ли команда “Разрешить редактирование реквизитов “:
Если Пользователи.РолиДоступны(«РедактированиеРеквизитовОбъектов») И ПравоДоступа(«Редактирование», Ссылка.Метаданные()) И НЕ ВсеРеквизитыБезПраваРедактирования Тогда // Добавление команды Команда = Форма.Команды.Добавить(«РазрешитьРедактированиеРеквизитовОбъекта»); |
Если нет, то добавляем роль “РедактированиеРеквизитовОбъектов” и возможность редактирования данного объекта.
Появляется предупреждение о разблокировании реквизитов и необходимости проверить использование объекта. Если объект используется, то не рекомендуется разблокировать реквизиты и нужно нажать кнопку “Закрыть”.
Если же нажата кнопка “Разрешить редактирование”, то реквизиты на форме станут доступны для изменения:
Внимание!!! Разблокирование реквизитов для редактирования Вы делаете на свой страх и риск.
Поделиться ссылкой:
Похожие записи
Разрешение пользователям редактировать отдельные реквизиты документа без перепроведения или просто одни реквизиты разрешать, а другие запрещать.
Разрешение пользователям редактировать отдельные реквизиты документа без перепроведения или просто одни реквизиты разрешать, а другие запрещать.
Иногда необходимо разрешить редактирование некоторых реквизитов документа без перепроведения. Например: Комментарий, АдресКонтрагента, КонтактноеЛицо. Ещё бывает необходимым разрешить изменение отдельных реквизитов в закрытых документах. Например, поставить отметку о состоянии доставки и написать комментарий.
В модуле менеджера документа пишем функцию, которая определяет массив допустимых к редактированию реквизитов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// Возвращает массив имён реквизитов, разрешённых для изменнения без перепроведения. // Если получен параметр типа Массив, то имена реквизитов добавляются в него Функция ПолучитьМассивРеквизитовИзменяемыхБезПерепроведения(МассивРеквизитовДопустимыхКИзменению = Неопределено) Экспорт Если Не ТипЗнч(МассивРеквизитовДопустимыхКИзменению) = Тип(«Массив») Тогда МассивРеквизитовДопустимыхКИзменению = Новый Массив; КонецЕсли; //Типовые реквизиты МассивРеквизитовДопустимыхКИзменению.Добавить(«Грузополучатель»); МассивРеквизитовДопустимыхКИзменению.Добавить(«ДоверенностьНомер»); МассивРеквизитовДопустимыхКИзменению.Добавить(«ДоверенностьДата»); МассивРеквизитовДопустимыхКИзменению.Добавить(«ДоверенностьНомер»); МассивРеквизитовДопустимыхКИзменению.Добавить(«ДоверенностьВыдана»); МассивРеквизитовДопустимыхКИзменению.Добавить(«ДоверенностьЧерезКого»); МассивРеквизитовДопустимыхКИзменению.Добавить(«Комментарий»); МассивРеквизитовДопустимыхКИзменению.Добавить(«АдресДоставки»); //Добавленные реквизиты Возврат МассивРеквизитовДопустимыхКИзменению; КонецФункции |
В модуле ОбщегоНазначения пишем функции общие для всех документов.
// сравниваем реквизиты документа из базы данных с записываемым объектом // имена изменённых реквизитов запихываем в массив Функция ПолучитьСписокИзменённыхРеквизитов(ДокОбъект) Экспорт СписокИзменённыхРеквизитов = Новый Массив; Ссылка = ДокОбъект.Ссылка; мдОбъекта = ДокОбъект.Метаданные(); // сравниваем стандартные реквизиты Для Каждого Реквизит из мдОбъекта.СтандартныеРеквизиты Цикл Если ДокОбъект[Реквизит.Имя] <> Ссылка[Реквизит.Имя] Тогда СписокИзменённыхРеквизитов.Добавить(Реквизит.Имя); КонецЕсли; КонецЦикла; |
В модуле документа ПредЗаписью разрешаем запись без пререпроведения в случае, если были изменены только реквизиты, не вызывающие перепроведение.
РедактированиеЗаднимЧислом = Ложь; МассивРеквизитовДопустимыхКИзменению = Документы.РеализацияТоваровУслуг.ПолучитьМассивРеквизитовИзменяемыхБезПерепроведения(); СписокИзменённыхРеквизитов = ОбщегоНазначения.ПолучитьСписокИзменённыхРеквизитов(ЭтотОбъект); СписокИзменённыхРеквизитовВызывающихПерепроведение = ОбщегоНазначения.МожноЗаписыватьБезПерепроведения(ЭтотОбъект, МассивРеквизитовДопустимыхКИзменению, СписокИзменённыхРеквизитов); Если СписокИзменённыхРеквизитовВызывающихПерепроведение = «» И Проведен И СписокИзменённыхРеквизитов.Количество() > 0 Тогда РежимЗаписи = РежимЗаписиДокумента.Запись; ИначеЕсли НЕ РедактированиеЗаднимЧислом и Дата < НачалоДня(ТекущаяДата()) И Не РольДоступна(«ПравоАдминистрирования») Тогда Сообщить(«Недостаточно прав для проведения реализации « + Номер + » « + Строка(Дата) + » задним числом. Изменены реквизиты: « + СписокИзменённыхРеквизитовВызывающихПерепроведение); Отказ = Истина; КонецЕсли; |
Оцените статью:
Загрузка…
Если Вы заметили ошибку, то выделите ее мышью и нажмите Ctrl+Enter
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>сейчас попробую на ПолныхПравах
Уважаемые специалисты, подскажите пожалуйста, в конфигурации по умолчанию блокируется редактирование реквизитов справочникв (номеклатура, склады), для начала редактирования надо в меню выбрать «Разрешить редактирование реквизитов», а как сделать так, чтобы сразу можно было все менять? Только зайти в менеджер и исправить ПолучитьБлокируемыеРеквизитыОбъекта? А более щадящего способа нет? Для чего это нужно — иногда требуется пройтись по ряду элементов и в них что-то поменять (у каждого свое). В этом случае каждый раз нажимать «Разрешить редактирование реквизитов» — немножко утомительно.
Есть обработки для группового редактирования. По идее, в инструментах разработчика что-то подходящее должно быть.
спасибо за совет, но я меняю у у каждого элемента — свои свойства, то есть не всем присвоить например группу, а к примеру установка настроек сегмента номенклатуры — у каждого сегмента — свои условия в СКД. Изменения — не групповые, а индивидуальные.
у тебя идет типовое открытие формы элемента, допустим. При открытии или перед открытием (где-то там) идет обращение к процедуре менеджера. Как тут можно отказаться от открытия формы? Использовать свою в обработке. Затратно? — Да. Использованием групповой, но указывая ей в отборе конкретную ссылку на элемент, получал доступ ко всем реквизитам элемента, минуя типовые механизмы, прошитые в его обычной форме.
спасибо, я понял, но в моем случае мне надо получить доступ к кнопке Настройки у сегмента номенклатуры, которой (кнопки) в групповой обработке нет.
В модуле менеджера справочников есть
спасибо, я его нашел, но ищется способ, не требующий изменений в объекты.
В итоге нашел способ — программно открыть форму и программно же нажать кнопку Настройки.
Тэги: 1С 8
Комментарии доступны только авторизированным пользователям