Форум программистов, компьютерный форум, киберфорум
1С: Типовые и стандартные решения
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.58/103: Рейтинг темы: голосов - 103, средняя оценка - 4.58
5 / 4 / 1
Регистрация: 24.08.2017
Сообщений: 112

Запрет редактирования поля

05.11.2018, 10:24. Показов 20325. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Есть поле выбора из перечислений, заполняем его при создании документа, после проведения изменить значение в этом поле нельзя ни при каких условиях. Подскажите пожалуйста, как это можно реализовать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.11.2018, 10:24
Ответы с готовыми решениями:

Поля нумерации: Запрет редактирования!
Доброго времени суток! Помогите пожалуйста поставить запрет на редактирование поля - нумерации документов. Конфигурация: Бухгалтерия...

Запрет редактирования документов
Здравствуйте, я как человек не особо разбирающийся в 1с не могу решить проблему помогите!!! Такая проблема продавец с правами...

Запрет редактирования документов пользователями
Добрый день. Имеется база УТ для Казахстана 3.0.2.19. Создал пользователей, загнал их в группу, группе назначил профиль "Менеджер по...

23
 Аватар для Loya
70 / 57 / 24
Регистрация: 06.12.2015
Сообщений: 306
05.11.2018, 11:08
ДядяВаня, без примера кода сложно, но вообще там наверняка должна быть процедура ПриИзменении() или ПриВыбореЗначения() или что-то в этом роде. Вот там и нужно делать проверку, например что-то вроде:
1C
1
2
3
Если Документ.Проведён Тогда
    Отказ = Истина;
КонецЕсли;
Но хочу заметить, что как правило, пользователю ничто не мешает распровести документ, изменить значение, а потом его провести обратно.
0
Эксперт 1С
6611 / 1760 / 642
Регистрация: 16.01.2015
Сообщений: 7,296
05.11.2018, 11:10
ДядяВаня,
1C
1
Элементы.ВашеПоле.Доступность = ?(Объект.Проведен,Ложь,Истина);
Чтобы поле стало недоступным сразу после проведения, вставить этот код в форме документа в Событии ПослеЗаписи.
Чтобы действовало и в дальнейшем, этот же код в форме документа в событие ПриОткрытии
0
5 / 4 / 1
Регистрация: 24.08.2017
Сообщений: 112
05.11.2018, 11:28  [ТС]
polax, а за что отвечает "?"
Цитата Сообщение от polax Посмотреть сообщение
Объект.Проведен,Ложь,Истина
и почему ложь и истина, а не какой-либо один параметр (ложь или истина)?
0
Эксперт 1С
6611 / 1760 / 642
Регистрация: 16.01.2015
Сообщений: 7,296
05.11.2018, 11:42
Лучший ответ Сообщение было отмечено ДядяВаня как решение

Решение

ДядяВаня,
1C
1
Элементы.ВашеПоле.Доступность = ?(Объект.Проведен,Ложь,Истина);
Просто краткая запись вот этого:
1C
1
2
3
4
5
Если Объект.Проведен Тогда
Элементы.ВашеПоле.Доступность = Ложь;
Иначе
Элементы.ВашеПоле.Доступность = Истина;
КонецЕсли;
Добавлено через 10 минут
? - Если
?(<Условие>,<Значение когда Условие выполняется>,<Значение когда Условие НЕ выполняется)
0
5 / 4 / 1
Регистрация: 24.08.2017
Сообщений: 112
05.11.2018, 13:19  [ТС]
polax, а можете подсказать как сделать аналогичную процедуру если документ просто записан?
0
Эксперт 1С
 Аватар для GreenkA
3065 / 2012 / 525
Регистрация: 25.06.2009
Сообщений: 6,964
05.11.2018, 13:26
ДядяВаня,
1C
1
2
3
4
5
Если Не Объект.Ссылка.Пустая() Тогда
Элементы.ВашеПоле.Доступность = Ложь;
Иначе
Элементы.ВашеПоле.Доступность = Истина;
КонецЕсли;
1
5 / 4 / 1
Регистрация: 24.08.2017
Сообщений: 112
05.11.2018, 13:30  [ТС]
GreenkA, проверку выполнять при открытии документа и после записи?
0
Эксперт 1С
 Аватар для GreenkA
3065 / 2012 / 525
Регистрация: 25.06.2009
Сообщений: 6,964
05.11.2018, 13:33
Цитата Сообщение от ДядяВаня Посмотреть сообщение
проверку выполнять при открытии документа и после записи?
лучше при открытии. Вдруг случайно сохранят, чтобы была возможность исправить ситуацию до закрытия формы.
0
5 / 4 / 1
Регистрация: 24.08.2017
Сообщений: 112
05.11.2018, 13:45  [ТС]
GreenkA, после записи документа поле становится недоступно, но если вновь открыть документ, то оно снова доступно для редактирования, почему?
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Процедура ПриОткрытии(Отказ)
    
    Если Объект.Проведен Тогда                   
        Элементы._Вид_Заказа.Доступность = Ложь;
    Иначе
        Элементы._Вид_Заказа.Доступность = Истина;
    КонецЕсли;
    
    Если Не Объект.Ссылка.Пустая() Тогда
        Элементы._Вид_Заказа.Доступность = Ложь;
    Иначе
        Элементы._Вид_Заказа.Доступность = Истина;
    КонецЕсли; 
    
КонецПроцедуры
0
Эксперт 1С
6611 / 1760 / 642
Регистрация: 16.01.2015
Сообщений: 7,296
05.11.2018, 13:46
Лучший ответ Сообщение было отмечено ДядяВаня как решение

Решение

Цитата Сообщение от ДядяВаня Посмотреть сообщение
проверку выполнять при открытии документа и после записи?
Если хотите, чтобы поле стало недоступным сразу после записи, то надо делать и в ПослеЗаписи. если не сделаете там, то поле станет недоступным только при повторном открытии
1
5 / 4 / 1
Регистрация: 24.08.2017
Сообщений: 112
05.11.2018, 13:49  [ТС]
polax, делал в процедурах после записи и при открытии
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
    
    Если Объект.Проведен Тогда
        Элементы._Вид_Заказа.Доступность = Ложь;
    Иначе
        Элементы._Вид_Заказа.Доступность = Истина;
    КонецЕсли;
    
    Если Не Объект.Ссылка.Пустая() Тогда
        Элементы._Вид_Заказа.Доступность = Ложь;
    Иначе
        Элементы._Вид_Заказа.Доступность = Истина;
    КонецЕсли;
    
КонецПроцедуры
 
Процедура ПриОткрытии()
    
    Если Объект.Проведен Тогда                   
        Элементы._Вид_Заказа.Доступность = Ложь;
    Иначе
        Элементы._Вид_Заказа.Доступность = Истина;
    КонецЕсли;
    
    Если Не Объект.Ссылка.Пустая() Тогда
        Элементы._Вид_Заказа.Доступность = Ложь;
    Иначе
        Элементы._Вид_Заказа.Доступность = Истина;
    КонецЕсли; 
    
КонецПроцедуры
В итоге почему-то в записанном и заново открытом документе поле все равно доступно для редактирования
0
Эксперт 1С
6611 / 1760 / 642
Регистрация: 16.01.2015
Сообщений: 7,296
05.11.2018, 13:51
ДядяВаня, Оставьте обработку только одного условия. И...если вы делаете недоступным поле уже при записи без проведения, то лишаете возможности редактирования этого поля навсегда и всех. Т.е. ошибся, записал и... исправить ошибку можешь только удалив док и создав его заново. Я бы все-таки оставил поле недоступным только у проведенного дока (снял с проводки, редактируй) или пусть недоступно уже просто при записи, но для всех, кроме пользователей с полными правами
0
Эксперт 1С
 Аватар для GreenkA
3065 / 2012 / 525
Регистрация: 25.06.2009
Сообщений: 6,964
05.11.2018, 13:53
ДядяВаня, а можно вашу базу? чисто ради интереса - протестила у себя ваш же код. Просто записанный/ проведенный вновь открытый - нормально отрабатывает, поле недоступно.
0
Эксперт 1С
6611 / 1760 / 642
Регистрация: 16.01.2015
Сообщений: 7,296
05.11.2018, 13:54
оставьте либо
1C
1
Если Объект.Проведен Тогда
(недоступно только при проведении)
либо
1C
1
Если Не Объект.Ссылка.Пустая() Тогда
(недоступно уже при записи без проведения)
0
5 / 4 / 1
Регистрация: 24.08.2017
Сообщений: 112
05.11.2018, 14:13  [ТС]
GreenkA, сделал как сказал polax, всё работает
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
    
    //Если Объект.Проведен Тогда
    //  Элементы._Вид_Заказа.Доступность = Ложь;
    //Иначе
    //  Элементы._Вид_Заказа.Доступность = Истина;
    //КонецЕсли;
    //
    Если Не Объект.Ссылка.Пустая() Тогда
        Элементы._Вид_Заказа.Доступность = Ложь;
    Иначе
        Элементы._Вид_Заказа.Доступность = Истина;
    КонецЕсли;
    
КонецПроцедуры
 
Процедура ПриОткрытии()
    
    //Если Объект.Проведен Тогда                   
    //  Элементы._Вид_Заказа.Доступность = Ложь;
    //Иначе
    //  Элементы._Вид_Заказа.Доступность = Истина;
    //КонецЕсли;
    
    Если Не Объект.Ссылка.Пустая() Тогда
        Элементы._Вид_Заказа.Доступность = Ложь;
    Иначе
        Элементы._Вид_Заказа.Доступность = Истина;
    КонецЕсли; 
    
КонецПроцедуры
Добавлено через 48 секунд
polax, GreenkA, Спасибо большое за помощь!
0
Эксперт 1С
6611 / 1760 / 642
Регистрация: 16.01.2015
Сообщений: 7,296
05.11.2018, 14:21
ДядяВаня, Так GreenkA как раз-таки имела в виду, что будет выбрано, что-то одно. Понимаете, ее код предусматривает, что предыдущего кода не надо. Отвлеченный пример, если мой код равнозначен "Я меняю авто резину на зимнюю, когда выпадет снег", то код Гринки - "Я меняю авто резину на зимнюю, когда станет холодно" . Согласитесь, ее код УЖЕ включает вариант с выпаданием снега и когда говорится вторая фраза, наличие условия первой фразы уже подразумевается само-собой )))))
0
5 / 4 / 1
Регистрация: 24.08.2017
Сообщений: 112
05.11.2018, 14:38  [ТС]
polax, короче, то ли я даун, то ли лыжи не едут. Работает только после записи документа, но при открытии все равно поле доступно для редактуры, почему не догоняю, добавил проверку на ЭтоНовый, тоже не пошла
1C
1
2
3
    Если Не ЭтотОбъект.ЭтоНовый() Тогда
        Элементы._Вид_Заказа.Доступность=Ложь;
    КонецЕсли;
0
Эксперт 1С
 Аватар для GreenkA
3065 / 2012 / 525
Регистрация: 25.06.2009
Сообщений: 6,964
05.11.2018, 14:40
ДядяВаня, базу в студию! или конфу)
0
5 / 4 / 1
Регистрация: 24.08.2017
Сообщений: 112
05.11.2018, 14:45  [ТС]
GreenkA, щас выгружу конфу и скину

Добавлено через 2 минуты
GreenkA, https://drive.google.com/open?... ogZu4sqFYI
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.11.2018, 14:45
Помогаю со студенческими работами здесь

Запрет редактирования формы
Как сделать что бы запретить любое редактирование существующего документа. Функция ТолькоПросмотр() накладывает запрет лишь на поля...

Запрет редактирования документов
Доброго времени суток! Есть две базы Основная и Перефийрийная, настроен полный обмен данными. Необходимо чтобы Перефирийная база...

Запрет редактирования документов
Доброго времени суток! 1C 8.1 Бухгалтерия Есть две базы Основная и Перефирийная, настроен полный обмен данными. Необходимо чтобы...

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

Автоматический запрет редактирования для пользователей УТ 10.3
Добый день. Подскажите пожалуйста: Конфигурация Управление торговлей, редакция 10.3 (10.3.13.2) Устанавливаю дату запрета на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru