Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 07:30

Проверить значение элемента формы типа булево.

Автор Bark, 24 сен 2019, 16:03

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

Bark

Всем доброго дня.
Прошу помочь с задачей.Работаю в ЗУП 2.5. Требуется создать отметку у сотрудника, по которой всплывало бы напоминание пользователю при увольнении.
Мои действия:
1)В справочник "ФизическиеЛица" добавил реквизит типа булево "Отметка"
2)Добавил в Форму "ФормаЭлемента" справочника "ФизическиеЛица" флажок "Отметка" и подцепил к нему реквизит.
3)В документе "УвольнениеИзОрганизаций" в модуле формы элемента добавляю код (прописываю в процедуре РаботникиОрганизацииСотрудникОбработкаВыбора, чтобы сообщение появилось при выборе сотрудника):
  Ссылка = Справочники.ФизическиеЛица.ПолучитьФорму("ФормаЭлемента");
Флаг = Ссылка.ЭлементыФормы.Отметка.Значение;
если Флаг = истина тогда
Предупреждение("!");
КонецЕсли;


И тут появляется ошибка:

Поле объекта недоступно для записи (Ссылка)
Ссылка = Справочники.ФизическиеЛица.ПолучитьФорму("ФормаЭлемента");

Пробовал разными методами с ПолучитьОбъект(), но выскакивает то же.
Как получить элемент "Отметка" из справочника ФизЛица и проверить его на заполнение/истину?
Спасибо за помощь.


wise

(0) Вам ЭТО - "Ссылка = Справочники.ФизическиеЛица.ПолучитьФорму("ФормаЭлемента");" НЕ НАДО..!
ПРОСТО перебирайте СВОИХ физ.лиц и получайте значение реквизита... (справочник "ФизическиеЛица" добавил реквизит типа булево "Отметка")
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Bark

Цитата: wise от 24 сен 2019, 17:12
(0) Вам ЭТО - "Ссылка = Справочники.ФизическиеЛица.ПолучитьФорму("ФормаЭлемента");" НЕ НАДО..!
ПРОСТО перебирайте СВОИХ физ.лиц и получайте значение реквизита... (справочник "ФизическиеЛица" добавил реквизит типа булево "Отметка")
Благодарю за ответ. Разобрался.

Решение для таких же как и я:

Перенес флажок в справочник "СотрудникиОрганизации"

  Выборка = Справочники.СотрудникиОрганизаций.Выбрать();
Пока Выборка.Следующий() = 1 Цикл
Метка = Выборка.Отметка;
Сотр = Выборка.Физлицо;
если ДанныеСтроки.Физлицо = Сотр тогда
если Метка = истина тогда
Предупреждение("да");
иначе
Предупреждение("нет");
КонецЕсли
конецЕсли
КонецЦикла;


Уверен, что можно потолковей, выслушаю любые предложения.

Еще раз спасибо.

antoneus

Оптимизирую код, недорого :)

Отметку в физлице оставляем, при выборе сотрудника пишем:

Если ДанныеСтроки.Физлицо.Отметка тогда
        Предупреждение("да");
    Иначе
        Предупреждение("нет");
КонецЕсли;

Bark

Я дурачелло.

Как обычно, вместо самого простого ищу как бы посложней).

Спасибо.

wise

(3) а в ОДНУ строку?? :P
Предупреждение(Строка(ДанныеСтроки.Физлицо.Отметка));
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск