Как сделать поле недоступным для редактирования 1с
В 1С:Бухгалтерии 2.0 (или любой другой конфигурации) может возникнуть следующая проблема: возможность создания и редактирования элементов справочника Номенклатура должны быть не у всех пользователей программы. Для решения этой проблемы можно внести изменения в типовую роль Бухгалтер, обязательную для запуска системы и поэтому установленной у всех пользователей. Но изменение типовой роли может привести к трудностям при обновлении релиза конфигурации, поэтому данное решение не является приемлемым. В 1с запрет редактирования документа или справочника можно сделать гораздо проще.
Как реализовать в 1с запрет редактирования документа или справочника
Рассмотрим решение данной задачи без изменения типовых ролей. Суть его будет заключаться в создании и использовании своих, не типовых, объектов метаданных:
1. В конфигурации создадим новую, не типовую, роль. Назовем ее Номенклатура. Никакие галочки в ней проставлять не нужно, требуется только ее наличие;
2. Добавим в конфигурацию еще один общий модуль. Можно назвать его, к примеру, НастройкиДоступа. Если в вашей базе уже есть не типовой модуль, то можно использовать его;
3. Добавим в конфигурацию еще одну подписку на событие, назовем ее ПередЗаписьюНоменклатураНастройкиДоступа. В настройках подписки укажем тип данных источника — справочник Номенклатура. Выберем нужное событие для подписки (в нашем случае ПередЗаписью). В поле Источник укажем созданный вами общий модуль. Туда автоматически будет добавлена новая процедура, обрабатывающая событие данной подписки;
4. В этой процедуре пишем следующие строки кода:
Данный программный код проверяет наличие у пользователя роли Номенклатура и разрешает или запрещает запись элемента справочника.
5. Установим роль Номенклатура тем пользователям, которым должны иметь возможность записи элементов справочника, теперь никто кроме них не сможет вносить изменения в справочник.
На основании данного алгоритма можно реализовать ограничения на запись любых документов или справочников. Для этого можно использовать одну или несколько не типовых ролей.
Собственно вопрос в следующем. Имеется некий документ, на управляемых формах. Когда документ проведен, т.е. после того как нажали кнопку Провести, все поля документа, включая таб. части, должны стать недоступными для редактирования, форма документа при этом не закрывается.
В модуле документа в ОбработкеПроведения() недоступны интерактивные операции, т.е. операции с формой, да и как то это неправильно из модуля документа работать с его формой.
Если кто сталкивался, подскажите, пжл.
Как в 1С 8.1 учебная версия Конфигурирование сделать запрет проведения документа с пустыми незаполненными поля
Как в 1С 8.1 учебная версия Конфигурирование сделать запрет проведения документа с пустыми.
Как сделать недоступными поля
Доброго времени суток! Подскажите, пожалуйста, нужно сделать так, чтобы при выборе из списка.
Универсальная программа для создания, редактирования и проведения тестов
Тема не новая в рассмотрении и вполне уже заезженная. В мире(то бишь в интернете, есть куча.
Изменить значение реквизитов ТЧ документа по событию проведения другого документа
Здравствуйте.В собственной конфе 1С 8.3 есть документ "ОбъектныйГрафик" с ТЧ "Задания". Также есть.
Доступность - свойство элементов формы. Проведение - объекта. В форме доступно свойство объекта "Проведен". По нему и регулируйте доступность в подходящем событии формы.
Мне понятно, для каких объектов, какие свойства доступны. Вопрос как раз в том, какое именно событие для открытой формы может "подловить" момент проведения документа. Звучит как то плохо конечно, но по-другому не придумал, как выразится. А остальное то элементарно, если Объект Проведен, тогда обойти в цикле элементы формы, да и установить им свойство доступность в ЛОЖЬ.
ПриЗаписи() и ПриОткрытии() вставляешь процедуру УстановитьДоступностьЭлементовФормы()
Спасибо, но все равно немного не то. У меня сейчас ПриОткрытии() формы документа уже анализируется
Когда я закрываю и открываю этот вновь созданный документ, тогда все ОК, стреляет обработка ПриОткрытии(), вышеуказанный кусок кода делает поля формы недоступными. Да, кнопки действительно доступны, но это не суть, нужно только поля "закрыть".
Необходимо запретить редактирование строк табличного поля документа добавленных ранее.
Пример: Пользователи ежедневно добавляют в документ строки с данными, нужно чтобы позже они не могли изменять уже введенные данные.
Для реализации этого, необходимо в ранее добавленных ячейках установить ТолькоПросмотр=Истина
Пример табличного поля:
Похожие FAQ
Еще в этой же категории
Как обновить динамический список или реквизит на форме клиента? 22
Если вы, открыв форму справочника или документа, выполнили некоторое действие, код который должен изменить состояние данных в динамических списках или значение реквизита. Данные изменены, но в открытой форме осталось все как было, можно конечно закр Динамический список ~ Как на управляемой форме разместить список регистра сведений с отбором? 18
Решение рассмотрено для элемента справочника (Контрагент и регистр КонтактнаяИнформация) 1. Создание реквизита: Добавляем новый реквизит формы (. не путать с реквизитом справочника . ) с типом " ДинамическийСписок" В поле " Основная табли Как установить параметр динамического списка? 16
Когда используете для вывода данных динамический список и произвольный запрос, то бывают ситуации когда надо указать параметр используемый в этом запросе. Ниже пример вывода данных регистра сведений в карточке клиента Для вывода используется исп Форма ~ Программное создание таблицы значений с условным оформлением 12
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Поле выбора ~ Заполнение списка значений в элементе поле выбора на форме 10
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип - Произвольный, Использование - Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Посмотреть все в категории Работа с Формой (Диалог) и её элементами
Добрый день!
Нужно, чтобы пользователь с определенной ролью не мог редактировать некоторые поля на форме.
Нашел в свойствах документа, вкладка "Права" внизу "Ограничение доступа к данным".
Там нужно выбрать поле и написать некий запрос, вот вопрос в том что в нем писать?
Варианты вроде Если РольДоступна("МояРоль") Тогда или просто РольДоступна("МояРоль") не работают.
- Вопрос задан более трёх лет назад
- 7342 просмотра
"Ограничение доступа к данным" во вкладке "Права" - это реализация механизма RLS (ограничение прав на уровне записей). Там можно настроить доступ к отдельным элементам (записям) таблицы документа или справочника. Т.е. не к отдельным реквизитам документа, а к отдельным документам, отобранным в запросе.
Вам можно просто использовать РольДоступна("МояРоль") в событие формы "При открытии" для управления доступностью отдельных элементов формы, где "МояРоль" - это роль, которой вы хотите дать право доступа к реквизитам.
Запрос писать не обязательно. Для выбранной роли и поля установите галочки требуемых прав. Если вам нужно запретить редактирование, то достаточно поставить чтение и просмотр.
gunsmyth gunsmyth
RLS буду стараться не использовать, чтобы не терять в производительности, ну и архитектурно это не очень правильно.
Вам можно просто использовать РольДоступна("МояРоль") в событие формы "При открытии" для управления доступностью отдельных элементов формы, где "МояРоль" - это роль, которой вы хотите дать право доступа к реквизитам.
>>>Я вот про эту форму говорил:
И я про нее говорил. RLS вам не нужен, в данном случае. Достаточно галочками права отметить.
В функционале программного комплекса 1С есть важная опция «Дата запрета изменения». В рамках заданного временного отрезка эта функция запрещает редактирование документов. Данный запрет устанавливается в отношении всей программы, индивидуально для каждого пользователя или конкретных организаций. В этой статье рассмотрим возможности установления и снятия «Даты запрета изменений» для конфигурации 1С:Бухгалтерия предприятия ред. 3.0.
Опция «Дата запрета изменения» доступна только пользователю, имеющему права администратора, или пользователю, которому заранее разрешён доступ к этой опции.
Ежемесячно бухгалтеры выполняют закрытие месяца в программном комплексе 1С:Бухгалтерия предприятия 8.3 , осуществляет проверку данных и итогов. Существует опасность, что любой сотрудник после открытия документа прошлого периода может некорректно выйти из него, перепровести или изменить. В такой ситуации произойдёт изменение последовательности документов. После этого бухгалтер будет вынужден осуществить запуск процедуры перепроведения, и цифры закрытого периода уже будут разниться с результатами в налоговых и бухгалтерских отчётах.
Для исключения подобных рисков существует опция «Дата запрета изменений». Благодаря ей 1С не даёт возможности откорректировать документацию закрытого периода.
Чтобы пользователь не смог что-либо отредактировать, в программном комплексе 1С:Бухгалтерия 8.3 следует зайти в раздел «Администрирование», во вкладку «Настройки пользователей и прав».
Далее открываем опцию «Даты запрета изменения». Выполняем установку флажка. Он означает, что запрет на редактирование документов прошлого периода будет включён.
Если нажать на гиперссылку «Настроить», открывается панель, где можно будет отредактировать дату запрета. Затем необходимо выбрать, для кого мы будем устанавливать запрет: для всех либо только для определённых пользователей. Исходя из того, что вам необходимо, перейдите на соответствующую вкладку.
Если выбран флаг «Для всех пользователей», то устанавливается «Общая дата» в поле «Дата запрета». Под ограничение подпадут все объекты, подсистемы и пользователи программы.
Когда требуется задать различные даты для каждого объекта или раздела, это выполняется с помощью опции «Другие способы указания даты запрета». Она находится внизу используемого окна. Возможны три состояния этой настройки: «По разделам и объектам», «Общая дата» и «По разделам».
Если будет выбрано «Указывать дату запрета» − «По разделам», запустится панель, где должна быть выполнена настройка разделов учёта, благодаря которой возможно поставить запрет на выбранный раздел.
Если в пункте «Указывать дату запрета» выбрать «По разделам и объектам», то, используя кнопку «Подобрать», необходимо указать ту организацию, для которой будем устанавливать дату из открывшегося списка.
После подбора необходимых компаний из списка, для каждой из них устанавливается своя дата запрета. Отменить произведённые настройки можно клавишей «Отключить».
Чтобы запретить изменение данных конкретным сотрудникам, пользующимся программой, открываем вкладку «По пользователям». Изначальная установка задана «Для всех пользователей». Выбрать сотрудников из перечня для персональных настроек можно, нажав клавишу «Подобрать».
Также в программном комплексе 1С:Бухгалтерия предприятия ред. 3.0 имеется возможность автоматической установки даты.
При этом 1С предлагает выбрать один из следующих вариантов: конец прошлого года, квартала, месяца, недели или установить дату запрета на предыдущий день. Конкретная дата определится программным комплексом автоматически. Опцией можно воспользоваться в общей или индивидуальной настройке.
Начало действия даты запрета возможно отсрочить. Воспользовавшись функцией, укажите, через сколько дней ограничения вступят в силу.
Итог: в программах 1С предоставляются удобные возможности для работы бухгалтеров в виде функции «Даты запрета редактирования данных». При правильной её настройке обеспечивается сохранность уже проведённых в прошлом периоде документов.
Читайте также: