Отображение состояния документа на форме документа
Хочу сделать на форме отражение состояния документа (Проведен/Не проведен/Удален)
Попытался это изобразить так создал: форму добавил текстовый реквизит ЭлементСостояния и в модуле формы написал код:
Но чтото нихрена не работает, Значение не является значением объектного типа (Текст)
может кто делал у себя нечто подобное, помогите разобраться. Версия 8.3.21
Попытался это изобразить так создал: форму добавил текстовый реквизит ЭлементСостояния и в модуле формы написал код:
&НаСервере
Процедура ОбновитьСостояниеДокумента()
Если Объект.Проведен Тогда
ЭлементСостояния.Текст = "Проведен";
ЭлементСостояния.ЦветФона = Новый Цвет(0, 255, 0); // Зеленый фон
ИначеЕсли Объект.ПометкаУдаления Тогда
ЭлементСостояния.Текст = "Удален";
ЭлементСостояния.ЦветФона = Новый Цвет(255, 0, 0); // Красный фон
Иначе
ЭлементСостояния.Текст = "Не проведен";
ЭлементСостояния.ЦветФона = Новый Цвет(255, 255, 0); // Желтый фон
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ОбновитьСостояниеДокумента();
КонецПроцедуры
&НаКлиенте
Процедура ПриИзмененииСостояния(ИзмененныеДанные)
ОбновитьСостояниеДокумента();
КонецПроцедуры
ПоказатьНо чтото нихрена не работает, Значение не является значением объектного типа (Текст)
может кто делал у себя нечто подобное, помогите разобраться. Версия 8.3.21
По теме из базы знаний
- Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2/3.0
- Отображение состояний документов
- Модель состояния для MVC
- Остатки на складе в документе Приобретение товаров и услуг
- [УТ11.5] Картинка (признак) проведенности на форме документа (расширение) - три версии
Найденные решения
Кое что поправил
Жду замечаний.
/////////// +Добавление на форму Элемента Состояния Документа ("Проведен" / "Не проведен" / "Удален")
&НаКлиенте
Процедура ОбновитьСостояниеДокумента()
Если Объект.Проведен Тогда
Элементы.ЭлементСостояния.Заголовок = "Проведен";
Элементы.ЭлементСостояния.ЦветТекста = Новый Цвет(0, 150, 70); // Зеленый
Элементы.ЭлементСостояния.ЦветРамки = Новый Цвет(0, 150, 70); // Зеленый
ИначеЕсли Объект.ПометкаУдаления Тогда
Элементы.ЭлементСостояния.Заголовок = "Удалён";
Элементы.ЭлементСостояния.ЦветТекста = Новый Цвет(255, 0, 0); // Красный
Элементы.ЭлементСостояния.ЦветРамки = Новый Цвет(255, 0, 0); // Красный
Иначе
Элементы.ЭлементСостояния.Заголовок = "Не проведен";
Элементы.ЭлементСостояния.ЦветТекста = Новый Цвет(0, 0, 0); // черный
Элементы.ЭлементСостояния.ЦветРамки = Новый Цвет(0, 0, 0); // черный
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СозданиеЭлементаСостояния()
Элемент = ЭтаФорма.Элементы.Добавить("ЭлементСостояния", Тип("ДекорацияФормы"), ЭтаФорма.Элементы.Группа1 ); //"Группа1" обычно это группа с Номером и Датой документа
Элемент.Заголовок = "Состояние документа";
Элемент.Рамка = Новый Рамка(ТипРамкиЭлементаУправления.Одинарная, 2);
Элемент.Ширина = 13;
Элемент.ГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Центр;
Элемент.Шрифт = Новый Шрифт(,,Истина,,,,); //Полужирный
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
СозданиеЭлементаСостояния(); //Вставлено для понимания свойств элемента, можно нарисовать в ручную
ОбновитьСостояниеДокумента();
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
ОбновитьСостояниеДокумента();
КонецПроцедуры ПоказатьЖду замечаний.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Уже и Вселенная подсказывает, что нет такого свойства "Текст", но мы настойчивые!
Джуниорская болезнь - путать реквизит формы с элементом формы.
Джуниорская болезнь - путать реквизит формы с элементом формы.
переделал вот так, вроде работает,
Но мне не нравится, как-то коряво через заголовок.
Может кто подскажет более красивый способ?
Процедура ОбновитьСостояниеДокумента()
Если Объект.Проведен Тогда
Элементы.ЭлементСостояния.Заголовок = "Проведен";
Элементы.ЭлементСостояния.ЦветТекстаЗаголовка = Новый Цвет(50, 205, 50);
ИначеЕсли Объект.ПометкаУдаления Тогда
Элементы.ЭлементСостояния.Заголовок = "Удален";
Элементы.ЭлементСостояния.ЦветТекстаЗаголовка = Новый Цвет(255, 0, 0);
Иначе
Элементы.ЭлементСостояния.Заголовок = "Не проведен";
Элементы.ЭлементСостояния.ЦветТекстаЗаголовка = Новый Цвет(0, 0, 0);
КонецЕсли;
КонецПроцедуры ПоказатьНо мне не нравится, как-то коряво через заголовок.
Может кто подскажет более красивый способ?
В итоге получилось вот так:
/////////// +Добавление на форму Элемента Состояния ("Проведен" / "Не проведен" / "Удален")
&НаСервере
Процедура ОбновитьСостояниеДокумента()
Если Объект.Проведен Тогда
Элементы.ЭлементСостояния.Заголовок = "Проведен";
Элементы.ЭлементСостояния.ЦветТекста = Новый Цвет(0, 150, 70); // Зеленый
Элементы.ЭлементСостояния.ЦветРамки = Новый Цвет(0, 150, 70); // Зеленый
ИначеЕсли Объект.ПометкаУдаления Тогда
Элементы.ЭлементСостояния.Заголовок = "Удалён";
Элементы.ЭлементСостояния.ЦветТекста = Новый Цвет(255, 0, 0); // Красный
Элементы.ЭлементСостояния.ЦветРамки = Новый Цвет(255, 0, 0); // Красный
Иначе
Элементы.ЭлементСостояния.Заголовок = "Не проведен";
Элементы.ЭлементСостояния.ЦветТекста = Новый Цвет(0, 0, 0); // черный
Элементы.ЭлементСостояния.ЦветРамки = Новый Цвет(0, 0, 0); // черный
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СозданиеЭлементаСостояния()
Элемент = ЭтаФорма.Элементы.Добавить("ЭлементСостояния", Тип("ДекорацияФормы"), ЭтаФорма.Элементы.Группа1 ); //"Группа1" обычно это группа с Номером и Датой документа
Элемент.Заголовок = "Состояние документа";
Элемент.Рамка = Новый Рамка(ТипРамкиЭлементаУправления.Одинарная, 2);
Элемент.Ширина = 13;
Элемент.ГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Центр;
Элемент.Шрифт = Новый Шрифт(,,Истина,,,,); //Полужирный
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
СозданиеЭлементаСостояния();
ОбновитьСостояниеДокумента();
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
ОбновитьСостояниеДокумента();
КонецПроцедуры Показать
(17) Снимай галочку со своего правильного ответа.
Нахрена ты на сервер-то лезешь при изменении, чудик?
И почему формируешь элемент именно ПриОткрытии() Чтобы с клиента на сервер слазить?
И раз уж ты залез в модуль формы основной конфигурации - то нахрена тебе вообще программно создавать элемент формы? Нарисуй его сразу на форме, и не парь моск.
Нахрена ты на сервер-то лезешь при изменении, чудик?
И почему формируешь элемент именно ПриОткрытии() Чтобы с клиента на сервер слазить?
И раз уж ты залез в модуль формы основной конфигурации - то нахрена тебе вообще программно создавать элемент формы? Нарисуй его сразу на форме, и не парь моск.
(21) Так тебе советуют где его надо исправить. А ты в ответ - что? Хамишь, типа "предложи свой вариант раз такой умный". Вместо того, чтобы разобраться - а на что же такое тебе намекают этими подсказками?
Ну не хочешь советов и подсказок - ну и хрен с тобой.
Спрашивай у всех сразу правильные варианты, и тогда никогда не поймешь почему они правильные, а твои нет. Это лучший путь обучения, ящщетаю.
Ну не хочешь советов и подсказок - ну и хрен с тобой.
Спрашивай у всех сразу правильные варианты, и тогда никогда не поймешь почему они правильные, а твои нет. Это лучший путь обучения, ящщетаю.
Кое что поправил
Жду замечаний.
/////////// +Добавление на форму Элемента Состояния Документа ("Проведен" / "Не проведен" / "Удален")
&НаКлиенте
Процедура ОбновитьСостояниеДокумента()
Если Объект.Проведен Тогда
Элементы.ЭлементСостояния.Заголовок = "Проведен";
Элементы.ЭлементСостояния.ЦветТекста = Новый Цвет(0, 150, 70); // Зеленый
Элементы.ЭлементСостояния.ЦветРамки = Новый Цвет(0, 150, 70); // Зеленый
ИначеЕсли Объект.ПометкаУдаления Тогда
Элементы.ЭлементСостояния.Заголовок = "Удалён";
Элементы.ЭлементСостояния.ЦветТекста = Новый Цвет(255, 0, 0); // Красный
Элементы.ЭлементСостояния.ЦветРамки = Новый Цвет(255, 0, 0); // Красный
Иначе
Элементы.ЭлементСостояния.Заголовок = "Не проведен";
Элементы.ЭлементСостояния.ЦветТекста = Новый Цвет(0, 0, 0); // черный
Элементы.ЭлементСостояния.ЦветРамки = Новый Цвет(0, 0, 0); // черный
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СозданиеЭлементаСостояния()
Элемент = ЭтаФорма.Элементы.Добавить("ЭлементСостояния", Тип("ДекорацияФормы"), ЭтаФорма.Элементы.Группа1 ); //"Группа1" обычно это группа с Номером и Датой документа
Элемент.Заголовок = "Состояние документа";
Элемент.Рамка = Новый Рамка(ТипРамкиЭлементаУправления.Одинарная, 2);
Элемент.Ширина = 13;
Элемент.ГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Центр;
Элемент.Шрифт = Новый Шрифт(,,Истина,,,,); //Полужирный
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
СозданиеЭлементаСостояния(); //Вставлено для понимания свойств элемента, можно нарисовать в ручную
ОбновитьСостояниеДокумента();
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
ОбновитьСостояниеДокумента();
КонецПроцедуры ПоказатьЖду замечаний.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот
