1с реквизит недоступный для редактирования

Создали новый вид цены в программе 1с: Управление Торговлей 11.4. Теперь его нужно изменить, но  поля неактивны и нельзя что-либо поменять.

Не редактируются реквизиты Вида Цены Ут11

Данное ограничение связано с  Подсистемой «Запрет редактирования реквизитов объектов», которая запрещает изменять некоторые реквизиты объектов, которые являются ключевыми и оказывают влияние на поведение других объектов. Данная

Если Вы  уверены, что изменение реквизитов не повлечет за собой негативных последствий и объект еще не используется, то можно разблокировать реквизиты для редактирования.

В данном случае Вид цены был только создан и нигде не используется. 

Проверяем доступна ли команда “Разрешить редактирование реквизитов “:

Разрешить редактирование реквизитов

Если Пользователи.РолиДоступны(«РедактированиеРеквизитовОбъектов»)

   И ПравоДоступа(«Редактирование», Ссылка.Метаданные())

   И НЕ ВсеРеквизитыБезПраваРедактирования Тогда

// Добавление команды

Команда = Форма.Команды.Добавить(«РазрешитьРедактированиеРеквизитовОбъекта»);

Если нет, то добавляем роль “РедактированиеРеквизитовОбъектов” и возможность редактирования данного объекта.

Появляется предупреждение о разблокировании реквизитов и необходимости проверить использование объекта. Если объект используется, то не рекомендуется разблокировать реквизиты и нужно нажать кнопку “Закрыть”.

Разблокирование реквизитов

Если же нажата кнопка “Разрешить редактирование”, то реквизиты на форме станут доступны для изменения:

Редактирование формы Виды Цен 

Внимание!!! Разблокирование реквизитов для редактирования Вы делаете на свой страх и риск.

Поделиться ссылкой:

Похожие записи

Показывать по
10
20
40
сообщений

Новая тема

Ответить

Piratik

Дата регистрации: 22.09.2009
Сообщений: 76

Добрый день. Подскажите почему я не могу отредактировать значение реквизита «Наименование» а точнее изменить количество вводимых символов. Свойства недоступны для редактирования. В чем причина. Заранее спасибо.<br> <br>http://imageshack.us/photo/my-images/853/21301898.jpg/

Рисовод

Дата регистрации: 26.12.2007
Сообщений: 25776

Prikum

активный пользователь

офлайн

Дата регистрации: 18.02.2002
Сообщений: 20842

Потому что надо редактировать не в диалоге, а сам реквизит.

Показывать по
10
20
40
сообщений

Добрый день! У меня огромная проблема. Конфигурация Бухгалтерия 3.0, есть пользователь с неполными правами (роль создавала сама). Пользователь создает счет на оплату покупателю, нажимает на поле надписи, где написано «Документ без НДС». Открывается общая форма цены и валют. Хочет выбрать тип цен, а он у этого пользователя недоступен для выбора. У пользователя права на счет на оплату и справочник «тип цен номенклатуры» есть. Искала по коду по доступности и толькопросмотру — нет ничего подобного. Более того, при открытии общей формы у объекта Элементы.ТипЦен.Доступность = Истина, а Элементы.ТипЦен.ТолькоПросмотр = ложь. Где еще можно поискать ограничение? Такое ощущение, что на что-то не хватает прав, а на что именно — непонятно

«права на счет на оплату и справочник «тип цен номенклатуры» есть» — какие права?

Добавление, редактирование…короче все, кроме удаления

А на общую форму «ФормаЦеныиВалюта» есть право просмотра?

на общей форме «ФормаЦеныИВалюты» есть еще реквизит «Вариант расчета НДС» — вот он доступен для редактирования, а тип цен нет

там еще есть Если ДокументБезНДС ИЛИ НДСНеВыделять Тогда

как это влияет на доступность поля Тип цен?

может я не понимаю, что вы хотите сказать) но это же доступность поля НДСВключенВСтоимость, а не доступность поля типцен

Чет я на НДСВключенВСтоимость зациклился, извиняюсь)

да ничего, у меня под конец рабочего дня тоже крыша потихоньку съезжает))

право Просмотр на нужный вид данных есть?

Да, там не только просмотр, там и редактирование тоже

«Если установлена низкая скорость соединения и не указывается текущая строка, то кэшируется форма выбора.» Может кэш попробуешь?

Низкая скорость точно не стоит, а еще я базу на свой комп перенесла. Сначала проблема была на компе у клиента, теперь на моем. Почищу кэш, но боюсь, что дело не в этом

Свойство «Редактирование» реквизита «ТипЦен» формы «ФормаЦеныИВалюта». В открывшемся окне редактирования ищем нашу роль и ставим напротив неё галочку.

Aleksandr N, Вы супер!!! Все получилось!!!

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Ermak
13.03.2013 13:38 Прочитано: 11274

Подскажите что я не так делаю, выдает ошибку

{Документ.Подписаный.Форма.ФормаДокумента.Форма(20)}: Поле объекта не обнаружено (Доступность)
Результат.Ответственный.Доступность = Ложь;

Код 1C v 8.х

 Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Форма1.Ссылка,
| Форма1.Ответственный
|ИЗ
| Документ.Форма1 КАК Форма1
|ГДЕ
| Форма1.Организация = &Организация
| И Форма1.Квартал = &Квартал";

Запрос.Параметры.Вставить("Организация", ЭлементыФормы.Организация.Значение);
Запрос.Параметры.Вставить("Квартал", ЭлементыФормы.Квартал.Значение);
Результат = Запрос.Выполнить().Выбрать();

Пока Результат.Следующий() Цикл
Результат.Ответственный.Доступность = Ложь;
КонецЦикла;

Ответственный тип Справочник

Yandex
Возможно, вас также заинтересует

Реклама на портале

E_Migachev
13.03.2013 13:56 Ответ № 1

так ты же это перебираешь результат запроса — в нем только выборка и нет ни какой доступности!

Ermak
13.03.2013 16:12 Ответ № 2

А как тогда можно сделать через запрос?

E_Migachev
13.03.2013 17:16 Ответ № 3

(2) Ermak, ни как… запрос служит только для получения данных…
А что ты хочешь ограничить, расскажи подробнее

Ermak
13.03.2013 17:19 Ответ № 4

я хочу при нажатии на кнопку в документе Подпись, в документе Документы.Форма1 реквизит Ответственный был не доступен для редактирования

DJ_Serega
13.03.2013 17:40 Ответ № 5

(4) Ermak, я так понял, если нажали на ПОДПИСЬ, то редактировать ответственного вообще нельзя?
Вижу выход только через дополнительный реквизит. При нажатии на ПОДПИСЬ устанавливать как истина, снимать доступность у открытого документа и при открытии проверять «доступно или нет»

Ermak
13.03.2013 17:51 Ответ № 6

Да вы правильно поняли, при нажатии вообще редактировать нельзя.
А можно на пример как через дополнительный реквизит

E_Migachev
13.03.2013 18:03 Ответ № 7

В модуле кнопки подпись напиши:
Код 1C v 8.х

 ЭлементыФормы.Ответсвенный.Доступность = Не РеквизитХраненияДоступностиБулево;   

создай РеквизитХраненияДоступностиБулево

Ermak
13.03.2013 19:34 Ответ № 8

а как обратиться к документу Документы.Форма1 так как кнопка подписи находится в Документы.Подпись

DJ_Serega
13.03.2013 22:08 Ответ № 9

Код 1C v 8.х

 
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Форма1.Ссылка КАК Документ
|ИЗ
| Документ.Форма1 КАК Форма1
|ГДЕ
| Форма1.Организация = &Организация
| И Форма1.Квартал = &Квартал"
;

Запрос.Параметры.Вставить("Организация", ЭлементыФормы.Организация.Значение);
Запрос.Параметры.Вставить("Квартал", ЭлементыФормы.Квартал.Значение);
Результат = Запрос.Выполнить().Выбрать();

Пока Результат.Следующий() Цикл
ДокументБлокировки = Результат.Документ.ПолучитьОбъект();
ДокументБлокировки.РеквизитХраненияДоступностиБулево = Истина;
ДокументБлокировки.Записать(РежимЗаписиДокумент.Запись);
КонецЦикла;

На корректность кода (если что) не обращайте внимания. Писал «от руки» *09 Но смысл думаю будет доставлен *17


Изменено 13.03.13 22:10:49

Ermak
14.03.2013 08:55 Ответ № 10

Не много код не понял, создал реквизит РеквизитХраненияДоступности в документе Форма1 и добавил код в документ Подпись, после нажатия на кнопку все равно можно редактировать документ Форма1.


Изменено 14.03.13 09:02:52

DJ_Serega
14.03.2013 18:44 Ответ № 11

(10) Ermak, а при открытии не забыл доступность устанавливать исходя из зна чения нового реквизита?
Пенечитай (7) E_Migachev,

Ermak
14.03.2013 19:17 Ответ № 12

(11) DJ_Serega, Я не понимаю, реквизит Ответственный находится в документе Форма1, а кнопка Подпись находится в документе Подпись, если я напиши он не поймет что за реквизит Ответственный.

DJ_Serega
14.03.2013 23:00 Ответ № 13

Приду домой напишу. А то с телефона сижу *07

E_Migachev
15.03.2013 00:11 Ответ № 14

(12) Ermak, Форма1 и Подпись это формы одного документа???

DJ_Serega
15.03.2013 02:00 Ответ № 15

(14) E_Migachev, та походу разные это документы
.(12) Ermak, тебе нужно получить объект документа ответственный и в нем установить запрет на изменение реквизита. И ПриОткрытии того (запрещенного) документа проверять на доступность изменения.
Что бы тебе помочь более детально, нам нужно знать как между собой связаны документ Подпись с документом Ответственный.

Ermak
15.03.2013 08:35 Ответ № 16

Если вы имеет это объединение то у них есть два одинаковый реквизита, это Квартал и Организация, по этим реквизитам я делал отбор в документе Форма1Код 1C v 8.х

 Запрос.Параметры.Вставить("Организация",  ЭлементыФормы.Организация.Значение);
Запрос.Параметры.Вставить("Квартал", ЭлементыФормы.Квартал.Значение);

смысл такой, устанавливаю данные в документе подпись для организации и квартал, он ищет в документ Форма1 такие же данные когда находит документы с этими же данными то делает реквизит ответственный не доступным.
Больше эти документы не чем не объединяются.

Ermak
15.03.2013 13:49 Ответ № 17

Всем спасибо я разобрался!
Кому нужно вот код

В Документы.Подпись

Код 1C v 8.х

 Процедура Кнопка1Нажатие(Элемент)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Форма1.Ссылка КАК Ссылка
|ИЗ
| Документ.Форма1 КАК Форма1
|ГДЕ
| Форма1.Организация = &Организация
| И Форма1.Квартал = &Квартал";

Запрос.Параметры.Вставить("Организация", ЭлементыФормы.Организация.Значение);
Запрос.Параметры.Вставить("Квартал", ЭлементыФормы.Квартал.Значение);
Результат = Запрос.Выполнить().Выбрать();

Пока Результат.Следующий() Цикл
ДокументБлокировки = Результат.Ссылка.ПолучитьОбъект();
ДокументБлокировки.РеквизитХраненияДоступности = Ложь;
ДокументБлокировки.Записать(РежимЗаписиДокумента.Запись);
КонецЦикла;
КонецПроцедуры

Документы.Форма1

Код 1C v 8.х

 Процедура ПриОткрытии()
ЭлементыФормы.Ответственный.Доступность = РеквизитХраненияДоступности;
КонецПроцедуры
Ermak
15.03.2013 13:56 Ответ № 18

А можно как нибудь через запрос сделать это действие

ЭлементыФорым…..Доступность = РеквизитХраненияДоступности;

чтобы каждый реквизит не прописывать.

Ermak
15.03.2013 17:06 Ответ № 19

Подскажите, тут я обращаюсь к документуКод 1C v 8.х

 "ВЫБРАТЬ
| Форма1.Ссылка
|ИЗ
| Документ.Форма1 КАК Форма1
|ГДЕ
| Форма1.Организация = &Организация
| И Форма1.Квартал = &Квартал
| И Форма1.Ссылка <> &Ссылка";

и использую ссылку

а если я буду обращаться к регистру накопления там же не ссылки как мне быть тогда?

Код 1C v 8.х

 "ВЫБРАТЬ
| Форма1.Организация,
| Форма1.Квартал,
| Форма1.Исполнитель,
| Форма1.Номенклатура,
| Форма1.Группа,
| Форма1.Подгруппа,
| Форма1.БазЕдиница,
| Форма1.Тип,
| Форма1.Количество,
| Форма1.Цена,
| Форма1.Сумма,
| Форма1.СуммаНДС
|ИЗ
| РегистрНакопления.Форма1 КАК Форма1
|ГДЕ
| Форма1.Организация = &Организация
| И Форма1.Квартал = &Квартал";

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

DJ_Serega
16.03.2013 03:44 Ответ № 20

(19) Ermak, через регистр можно либо через ссылку в измерении или реквизите либо через регистратор.
(18) Ermak, запрос только выбирает данные. Их можно только посмотреть. Что бы изменить, нужно получать объект.

DJ_Serega
16.03.2013 03:48 Ответ № 21

(17) Ermak, у тебя нюансик. По умолчанию реквизит доступности = ложь. А значит изменение всегда заблокировано. Лучше установить блокировку если реквизит приобретет истину. А то получается что в новых документах у тебя уже изменять нельзя.

Ermak
18.03.2013 08:56 Ответ № 22

(20) DJ_Serega, можно пример а то плохо понятно.
(21) DJ_Serega, точно я не заметил, а что вы имеете ввиду блокировку. У меня смысл был такой, я создаю документ Подпись, нажимаю там на кнопку и блокирую все документы с установленными параметрами Организация и Квартал, а почему новые теперь блокируются не понятно.

DJ_Serega
19.03.2013 00:35 Ответ № 23

(22) Ermak, по 21му теперь исправили и оно корректно? *17

(22) Ermak, с (20) DJ_Serega это по поводу (19) Ermak? Если «истина» *17 тогда где-то так:

Код 1C v 8.х

 
ЗапросБлокировка = Новый Запрос(
"ВЫБРАТЬ
| РегистрНакопления1.Регистратор КАК ДокументБлокировкиРегистратор,
| РегистрНакопления1.Измерение1 КАК ДокументБлокировкиИзмерение,
| РегистрНакопления1.Ресурс1 КАК ТутТолькоЧисло,
| РегистрНакопления1.Реквизит2 КАК ДокументБлокировкиРеквизит
|ИЗ
| РегистрНакопления.РегистрНакопления1 КАК РегистрНакопления1
|ГДЕ
| РегистрНакопления1.Регистратор.Номер = &Номер
| И РегистрНакопления1.Регистратор.Дата = &Дата"
);
ЗапросБлокировка.УстановитьПараметр("Номер", НомерПоиска);
ЗапросБлокировка.УстановитьПараметр("Дата", ДатаПоиска);

РезультатБлокировкаВыполнить = ЗапросБлокировка.Выполнить();
Если РезультатБлокировкаВыполнить.Пустой() Тогда
Предупреждение("Документы для блокировки не найдены.");
Возврат;
КонецЕсли;

РезультатБлокировка = РезультатБлокировкаВыполнить.Выбрать();
Пока РезультатБлокировка.Следующий() Цикл

Если НужныйДокумент = "Это регистратор" Тогда
ОбъектБлокировки = РезультатБлокировка.ДокументБлокировкиРегистратор.ПолучитьОбъект();
ОбъектБлокировки.РеквизитХраненияДоступности = Истина;
ОбъектБлокировки.Записать();
КонецЕсли;

Если НужныйДокумент = "Это Измерение" Тогда
ОбъектБлокировки = РезультатБлокировка.ДокументБлокировкиИзмерение.ПолучитьОбъект();
ОбъектБлокировки.РеквизитХраненияДоступности = Истина;
ОбъектБлокировки.Записать();
КонецЕсли;

Если НужныйДокумент = "Это Ресурс" Тогда
// Такого быть не может ;)
КонецЕсли;

Если НужныйДокумент = "Это реквизит" Тогда
ОбъектБлокировки = РезультатБлокировка.ДокументБлокировкиРеквизит.ПолучитьОбъект();
ОбъектБлокировки. РеквизитХраненияДоступности = Истина;
ОбъектБлокировки.Записать();
КонецЕсли;

КонецЦикла;

*09


Изменено 19.03.13 00:37:20 по причине: Очепятки ))

Ermak
20.03.2013 09:34 Ответ № 24

(23) DJ_Serega, по 21 я не исправил, не могу додумать как это сделать, можете подсказать

DJ_Serega
21.03.2013 00:02 Ответ № 25

(24) Ermak, вот ответ (7) E_Migachev

Ermak
22.03.2013 10:18 Ответ № 26

(25) DJ_Serega, я не понимаю этот кодКод 1C v 8.х

 	|	РегистрНакопления1.Измерение1 КАК ДокументБлокировкиИзмерение,
| РегистрНакопления1.Ресурс1 КАК ТутТолькоЧисло,
| РегистрНакопления1.Реквизит2 КАК ДокументБлокировкиРеквизит

Вы имеете ввиду поставить любое измерение и ресурс и реквизит? Мне нужно заблокировать полностью документ, чтобы его можно было только смотреть.


Изменено 22.03.13 10:18:51

DJ_Serega
25.03.2013 12:25 Ответ № 27

Ссылка на документ может быть там где ДокументБлокировки. Вы его таким образом получите для того что бы заблокировать.

Ermak
25.03.2013 12:30 Ответ № 28

че та я не много не понимаю, можете лучше примером показать

DJ_Serega
25.03.2013 22:51 Ответ № 29

(28) Ermak, я ж писал в (23) DJ_Serega.
Если нужный документ находится в измерении тогда «Это измерение», если в реквизите тогда «Это реквизит».
Допустим нужный документ для блокировки это Регистратор регистра. Тогда код по блокировке будет:
Код 1C v 8.х

 
Пока РезультатБлокировка.Следующий() Цикл

ОбъектБлокировки = РезультатБлокировка.ДокументБлокировкиРегистратор.ПолучитьОбъект();
ОбъектБлокировки.РеквизитХраненияДоступности = Истина;
ОбъектБлокировки.Записать();

КонецЦикла;

Ermak
26.03.2013 12:11 Ответ № 30

(29) DJ_Serega, Большое спасибо разобрался! Сделал не много по другому. )

DJ_Serega
26.03.2013 20:46 Ответ № 31

(30) Ermak, Главное что разобрался и сделал *02
Наша задача «помочь» выполнена *12

з.ы.: темку то можно и закрыть *17

Ermak
27.03.2013 09:05 Ответ № 32

Хорошо )

Ermak
27.03.2013 09:05 Ответ № 33

Вопрос закрыт!

Подсказка: Для быстрого поиска ответов — используйте ‘Поиск’

При отмене проведения делать формой доступной для редактирования

Автор Ученик_2014, 18 июл 2014, 07:36

0 Пользователей и 1 гость просматривают эту тему.

Доброго времени суток. Подскажите как сделать при нажатии на форме элемента «Провести» недоступной для редактирования ее элементы? А при отмене проведения — делать доступными.
Сейчас получилось только  при открытии проверить свойство Объекта. А если нажать кнопку провести — недоступным документ становится только если его закрыть и открыть снова.


вариантов множество, вот один,

в модуле формы, в событии после записи
проверяйте реквизит Проведен
если Проведен то ЭтаФорма.ТолькоПросмотр = Истина;
иначе ЭтаФорма.ТолькоПросмотр = Ложь;

а можно и вообще не проверять ни чего, а сразу написать такую конструкцию

ЭтаФорма.ТолькоПросмотр = Проведен;

если помогло нажмите: Спасибо!


в модуле формы в ПриОткрытии() и в ПослеЗаписи() пишем

ЭтаФорма.ТолькоПросмотр = ЭтотОбъект.Проведен;

Правда, чтобы разблокировать форму, надо снять документ с проведения из формы списка…

Получил помощь — скажи СПАСИБО.
Разобрался сам — расскажи другим.


Цитироватьв модуле формы в ПриОткрытии() …

да, да, там тоже.

но на самом деле, автору вопросу наверно не это надо, смысл закрывать редактирование формы? если пользователь ВСЕГДА сможет распровести документ и делать с ним что захочет?
Если автору надо, для простых операторов, запретить редактирование проведенных документов, то это надо решать с помощью настроек ролей (или вставлять проверку ролей в код модуля формы).
И соотвественно должна быть роль ответственного оператора (менеджера) у которого есть полные права на документ.

если помогло нажмите: Спасибо!


Доброго дня, коллеги!

Механизм расширений постоянно развивается и принципы работы с расширениями могут существенно меняться. Так произошло и с принципами заимствования формы в расширение. Если не следить за изменениями при каждом выходе новой версии платформы 1С, то можно “споткнуться” на простом примере!

Вопрос

Добрый день. У меня платформа 8.3.16.1296, в расширении в табличной части документа добавил реквизит Расш1_ПроцентСкидки, но в реквизитах формы расширения он не появляется. А мне нужно разместить его в элементах формы расширения. Что делаю неправильно? Даже если сохранить расширение, то все рано реквизит не появляется.

Расш1_ПроцентСкидки

(нажмите, чтобы увеличить картинку)

Ответ

Добрый день! Для этого необходимо выполнить явное добавление реквизита формы Объект в расширение:

Добавление реквизита формы Объект

Это нужно делать, начиная с версии платформы 8.3.14. Ранее (в версиях платформы до 8.3.14) при заимствовании формы заимствовались все объекты, необходимые для отображения формы. Теперь при заимствовании формы выполняется заимствование только элементов формы. Реквизиты, команды, параметры не заимствуются, отображаются светло-коричневым цветом (как на Вашем скриншоте) и недоступны для редактирования. Реквизиты, команды и параметры необходимо заимствовать явным образом при помощи указанной кнопки на командной панели.

Skip to content

1С, как добавить, изменить реквизит формы объекта через расширение

Как добавить, изменить реквизит формы через расширение

В новых версиях платформы, при изменении типовых форм, стандартные и новые реквизиты (добавленные в расширение) по умолчанию недоступны: их нельзя изменить, ни добавить в форму. Дело в том, что немного изменился механизм добавления реквизитов в расширение, для изменения типовых форм объектов.

Вам необходимо выполнить следующие действия:

  • В дереве метаданных нажать правой кнопкой мыши на реквизит -> «Добавить в расширение» -> выбрать расширение;

  • Перейти в расширение конфигурации, открыть форму, в которую планируем добавить (или изменить) реквизит -> в области справа выделить реквизит -> нажать правую кнопку мыши -> «Добавить реквизит»;

Почему в новой платформе изменился данный механизм?

Теперь связанные с формой реквизиты в дереве метаданных платформы не переносятся вместе с формой в расширение, а только отображаются как отражение основной конфигурации. Перенос реквизитов для их модификации проводится прямо из формы. Сделано это было для того, чтобы при изменении какого либо реквизита в стандартной конфигурации — расширение не теряло свою работоспособность.

Реквизиты, которые возможно изменить в форме выделяются черным цветом, а недоступные — серым. При этом при обновлении реквизиты в старых расширениях будут сразу доступны для редактирования.

Связанные статьи

Понравилась статья? Поделить с друзьями:
  • 1с роль редактирование реквизитов объектов
  • 330 км за сколько можно проехать на машине
  • 1с создать набор дополнительных реквизитов
  • 3327818953 реквизиты для перечисления 2021
  • 1с список стандартных реквизитов позволяет