Запретить редактирования поля в справочнике Должность если на ней работают.

1. Artem1995amyr 23.04.18 03:50 Сейчас в теме
Получается только во всех должностях сделать поле не активным.
Скриншот:
https://yadi.sk/i/T-vIWYXZ3UfPYp
+
По теме из базы знаний
Найденные решения
8. platon_ 10 23.04.18 10:15 Сейчас в теме
Привет. Смотри.
У тебя запрос всегда возвращает Истину, так не надо. Проверяй запрос на
Запрос.Выполнить().Пустой()

Если пустой, тогда истина (редактировать можно)
Если не пустой, тогда редактировать нельзя.

и при открытии пропиши
ЭлементыФормы.ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией.Доступность = НеРаботаютНаДолжности();
+
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Artem1995amyr 23.04.18 03:52 Сейчас в теме
(1) Что то типо того что я написал выше .
+
3. THEBESTolo4b 10 23.04.18 06:58 Сейчас в теме
(1) и как правило сидит Бух и долбит справочник, потому что зайти не может в него, и вызывает программиста так как не работает программа у неё, а все потому что, кто то не вывел сообщение "справочник занят идите в опу" и бух уже бы не возмущалась
+
4. Artem1995amyr 23.04.18 08:39 Сейчас в теме
Функция РаботаютНаДолжности()
	
	  	//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	РаботникиОрганизацийСрезПоследних.Должность
		|ИЗ
		|	РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних
		|ГДЕ
		|	РаботникиОрганизацийСрезПоследних.Должность = &Должность";
	
	Запрос.УстановитьПараметр("Должность", Должность);
	
	Выборка = Запрос.Выполнить().Выбрать();
	
Возврат Истина;
		
	
КонецФункции
Показать
+
5. Artem1995amyr 23.04.18 08:41 Сейчас в теме
Процедура ПриОткрытии()

Если РаботаютНаДолжности() Тогда
ЭлементыФормы.ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией.Доступность = Ложь;
КонецЕсли;



КонецПроцедуры


И вот еще кусок Кода
+
6. Artem1995amyr 23.04.18 09:31 Сейчас в теме
Ошибка таится где то рядом
+
7. Artem1995amyr 23.04.18 10:05 Сейчас в теме
То есть по факту в новой должности поле должно быть активно.
+
8. platon_ 10 23.04.18 10:15 Сейчас в теме
Привет. Смотри.
У тебя запрос всегда возвращает Истину, так не надо. Проверяй запрос на
Запрос.Выполнить().Пустой()

Если пустой, тогда истина (редактировать можно)
Если не пустой, тогда редактировать нельзя.

и при открытии пропиши
ЭлементыФормы.ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией.Доступность = НеРаботаютНаДолжности();
+
9. Artem1995amyr 23.04.18 10:48 Сейчас в теме
Не вышло)
Прикрепленные файлы:
+
10. platon_ 10 23.04.18 11:27 Сейчас в теме
(9) так на оборот. Истина возвращается если не работает. Поменяй)
+
11. Artem1995amyr 24.04.18 02:19 Сейчас в теме
(10) Если местами поменять получаются во всех должностях поде активно.
+
12. Artem1995amyr 24.04.18 02:41 Сейчас в теме
Постоянно с этими запросами беда
Прикрепленные файлы:
+
13. Artem1995amyr 24.04.18 02:52 Сейчас в теме
Отбой мой косяк все заработало)
+
14. Artem1995amyr 24.04.18 02:53 Сейчас в теме
Результат и выборка вообще были лишними
+
15. Artem1995amyr 24.04.18 04:02 Сейчас в теме
Функция РаботаютНаДолжности(ЭтаФорма)
		
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	РаботникиОрганизацийСрезПоследних.Должность
		|ИЗ
		|	РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних
		|ГДЕ
		|	РаботникиОрганизацийСрезПоследних.Должность = &Должность";
	
	  Запрос.УстановитьПараметр("Должность", ЭтаФорма.Ссылка);
	  	  
	  Если Запрос.Выполнить().Пустой() Тогда
      Возврат Истина;
  Иначе 	 
	  Возврат Ложь;
	  КонецЕсли;
	  
	  
		
	
КонецФункции
Показать

Вот конечный результат.
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот