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

Как решить данную проблему ?

Автор cobra77777, 11 мая 2015, 18:35

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

cobra77777

Управляемая форма.
Всем добрый вечер! Сделал поле переключатель который имеет два положения "Рабочий" и "Не рабочий". При выборе одного из переключателя, и затем после нажатия "Провести и закрыть" в рабочей области на форме не появляется надпись "Рабочий" или "Не рабочий". Как можно решить данную проблему?

Заранее всем спасибо.

enniskillen

Вот здесь можно прочитать про использование этого элемента.

Во вложении конфигурация, в которой при проведении документа в форме списка появляется выбранное состояние.

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

cobra77777

Да всё понятно разобрался. Спасибо большое.
А если немного усложнить есть код(рабочий).

&НаКлиенте
Процедура СостояниеПриИзменении(Элемент)
   
   Если Объект.Состояние = 0 Тогда
     Элементы.ДатаНеРаботы.Доступность = Ложь;
   ИначеЕсли Объект.Состояние = 1 Тогда
      Элементы.ДатаНеРаботы.Доступность = Истина;
   КонецЕсли;   
   
КонецПроцедуры

Добавил дату см.вложенный.рис. Вот как здесь реализовать, чтобы появлялась надпись РАБОЧИЙ (в рабочей области) при "ПРОВЕСТИ и закрыть".

enniskillen

Если бы приложили конфигурацию было бы проще разобраться. Но если нет возможности, то проверьте какой тип имеет реквизит "Состояние" и какой список значений задан в свойстве "Список выбора" элемента формы "Состояние". Судя по приведенному коду список выбора будет выглядеть так:
ЗначениеПредставление
0Рабочий
1Нерабочий

Представление не записывается в реквизит "Состояние". В реквизит записывается "Значение". Если у реквизита "Состояние" тип "Число", то на форме списка вы должны видеть "0" или "1". Если вы не видите ничего, то скорее всего тип реквизита "Состояние" отличен от "Число", например, "Строка". При записи числа в строку получается пустое значение (ваша ситуация).

Возможные решения:

  • Изменить тип реквизита "Состояние" на "Число". Но тогда в форме списка будут значения "0" или "1".
  • Отредактировать список выбора. Сделать значения равными "Рабочий" и "Нерабочий" как в конфигурации, которую я выкладывал выше. Но тогда нужно отредактировать код. Вместо " Если Объект.Состояние = 0" проверять " Если Объект.Состояние = "Рабочий" ". У реквизита "Состояние" обязательно установить тип "Строка".
  • Сделать еще один реквизит с типом "Строка". При проведении документа записывать в него необходимое значение. Использовать этот реквизит для вывода на форму, а стандартный скрыть.

cobra77777

Да у меня Значение 0,1.Я выбираю 2-ой вариант. 
enniskillen спасибо большое за Хелп. 

Добавлено: 12 мая 2015, 19:05


Возникла небольшая проблема т.е. если установили дату, а потом сразу перешли и установили в положение "Рабочий" как можно это сделать автоматически Очистить "дату выхода из строя" (см.влож.рис.).

Спасибо.

enniskillen

Обработать событие ПриИзменении для переключателя. И там прописать, что если значение переключателя рабочий, то дата равна пустой дате.

cobra77777

Цитата: enniskillen от 12 мая 2015, 21:27
Обработать событие ПриИзменении для переключателя. И там прописать, что если значение переключателя рабочий, то дата равна пустой дате.
Да. А как прописать "дата равна пустой дате" ???
Процедура СостояниеПриИзменении(Элемент)
   
   //Рабочий
   Если Объект.Состояние = 0 Тогда
     Элементы.ДатаВыходаИзСтроя.Доступность = Ложь;
    Я ТАК ПОНИМАЮ СЮДА НУЖНО ПРОПИСАТЬ КОД.
     //Не рабочий
   ИначеЕсли Объект.Состояние = 1 Тогда
      Элементы.ДатаВыходаИзСтроя.Доступность = Истина;
   КонецЕсли;   
   
КонецПроцедуры

enniskillen

Если вы уже поменяли значения в списке выбора на "Рабочий" и "Нерабочий", то будет выглядеть так:

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

cobra77777

Спасибо большое. Всё работает.

Теги:

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

Рейтинг@Mail.ru

Поиск