Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 сен 2021, 21:05

Перечисления и выбор

Автор cobra77777, 07 янв 2017, 18:35

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

cobra77777

Здравствуйте!

Управляемая форма (8.3.9.1818)

Изучаю 1С. Не судите строго. Возникла задачка.

   Есть форма документа, в Табл.части несколько полей Статус, Принтер, Инв.№, Сер.№. Статус - Перечисление-Статус имеет 3 варианта выбора: принтер, монитор, сканер., и есть Справочник->Техника (сюда переносится сломанный принтер или монитор) с группами Принтер с подгруппой "в ремонт", и Монитор с подгруппой "в ремонт".       
   Задача: необходимо при выборе из Справочника-> Техника определенного значения "Принтера" или "Монитора" чтобы статус автоматически становился Принтер или Монитор.
Накидал конечно, а как в ТЧ сделать...:(

&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
    Если Объект.Принтер = ПредопределенноеЗначение("Перечисление.Статус.Принтер") Тогда
      Объект.Статус = Принтер";
    КонецЕсли;
КонецПроцедуры





sertak


Для Каждого СтрокаТЧ Из Объект.МояТЧ Цикл
    Если СтрокаТЧ.Принтер = ПредопределенноеЗначение("Перечисление.Статус.Принтер") Тогда
        СтрокаТЧ.Статус = "Принтер";
    КонецЕсли;
КонецЦикла;

cobra77777

а как можно переделать такой код на новый (до этого у меня был):

&НаКлиенте
Процедура ТабличнаяЧастьПринтерПриИзменении(Элемент)
   ТекущиеДанные = Элементы.ТабличнаяЧасть.ТекущиеДанные;
   ТекущиеДанные.ИнвентарныйНомер = ПолучитьЗначениеРеквизитаСсылки(ТекущиеДанные.Принтер,"ИнвентарныйНомер");
   ТекущиеДанные.ЗаводскойНомер = ПолучитьЗначениеРеквизитаСсылки(ТекущиеДанные.Принтер,"СерийныйНомер");
   ТекущиеДанные.Причина = ПолучитьЗначениеРеквизитаСсылки(ТекущиеДанные.Принтер,"Причина");
КонецПроцедуры

&НАСервереБезКонтекста
Функция ПолучитьЗначениеРеквизитаСсылки(СсылкаНаОбъект,ИмяРеквизита)
   Возврат СсылкаНаОбъект[ИмяРеквизита];
КонецФункции

sertak

Не очень понимаю назначение всех полей, но привожу пример по аналогии с вашим кодом:

Если ТекущиеДанные.Принтер = ПредопределенноеЗначение("Перечисление.Статус.Принтер") Тогда
    ТекущиеДанные.Статус = "Принтер";
КонецЕсли;

cobra77777

Не совсем работает как надо, но всё равно Спасибо.

Теги:

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

Рейтинг@Mail.ru Rambler's Top100

Поиск