Получить значение Реквизита тип: Перечисления НаКлиенте

1. user824565 08.07.24 12:46 Сейчас в теме
Есть реквизит. ГодПоставки. Где необходимо указывать 4 цифры года. Если указать тип Дата, то приходится делать выбор какой-нибудь даты, чтобы в этом поле появилось четыре цифры года. Подумал, что может логичнее сделать перечисление? Со значениями на 5 лет вперед..? (Если честно, так и сделал пока..) Или есть способ лучше?
Если с перечислением работать, то получается при выборе текущего года надо заполнить табличную часть только оставшимися месяцами. Тогда не пойму, как получить текстовое представление выбранного значения Перечисления НаКлиенте...
По теме из базы знаний
Найденные решения
2. LeeAreHim 08.07.24 13:35 Сейчас в теме
(1)
может логичнее сделать перечисление?

Не логичнее. У реквизита объекта с типом дата установите формат "ДФ=yyyy", а на форме у этого реквизита для кнопки выбора поставьте - нет, а для Кнопка регулирования - да. Ну и в процедуре "ПриСозданииНаСервере", если это новый документ, установите Объект.Годпоставки = НачалоГода(ТекущаяДатаСеанса());
ИМХО так лучше.
3. Alex_E 2364 08.07.24 13:44 Сейчас в теме
(1)
огда не пойму, как получить текстовое представление выбранного значения Перечисления НаКлиенте...
Посмотрите описание ПредопределенноеЗначение
6. LeeAreHim 08.07.24 14:15 Сейчас в теме
(5)Зависит от задачи. Но, честно говоря, я не могу представить задачу с применением перечисления, кроме как в отчете группировать суммы по месяцам за несколько лет. Хотя и это можно сделать с Реквизитом ТЧ "Месяц" с типом "Дата", которому можно поставить формат реквизита "ДФ=ММММ", например.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. LeeAreHim 08.07.24 13:35 Сейчас в теме
(1)
может логичнее сделать перечисление?

Не логичнее. У реквизита объекта с типом дата установите формат "ДФ=yyyy", а на форме у этого реквизита для кнопки выбора поставьте - нет, а для Кнопка регулирования - да. Ну и в процедуре "ПриСозданииНаСервере", если это новый документ, установите Объект.Годпоставки = НачалоГода(ТекущаяДатаСеанса());
ИМХО так лучше.
3. Alex_E 2364 08.07.24 13:44 Сейчас в теме
(1)
огда не пойму, как получить текстовое представление выбранного значения Перечисления НаКлиенте...
Посмотрите описание ПредопределенноеЗначение
4. user824565 08.07.24 13:58 Сейчас в теме
В шапке выбирается год. А ТабличнаяЧасть заполняется месяцами. (2 колонки: месяц и сумма). Опять же "подмывает" сделать Перечислением... Или что посоветуете?
5. user824565 08.07.24 13:59 Сейчас в теме
У реквизита ТЧ "Месяц" сделать Тип: Перечисление... имею в виду
6. LeeAreHim 08.07.24 14:15 Сейчас в теме
(5)Зависит от задачи. Но, честно говоря, я не могу представить задачу с применением перечисления, кроме как в отчете группировать суммы по месяцам за несколько лет. Хотя и это можно сделать с Реквизитом ТЧ "Месяц" с типом "Дата", которому можно поставить формат реквизита "ДФ=ММММ", например.
13. user824565 08.07.24 14:46 Сейчас в теме
7. spacecraft 08.07.24 14:21 Сейчас в теме
очень странная постановка задачи.
Посмотрите, как сделано в ЗУП ввод периода "Месяц Год".
8. user824565 08.07.24 14:26 Сейчас в теме
(7) Та не... ничего странного. В шапке документа ставится год, в ТЧ заполняется помесячный бюджет.
В шапке выбрали текущий год, заполнились только последние месяца и сотрудник проставляет суммы. Если будущие года, то заполняется ТЧ всеми 12-ю месяцами...
9. spacecraft 08.07.24 14:27 Сейчас в теме
(8)
Если будущие года, то заполняется ТЧ всеми 12-ю месяцами...

а если будущая пятилетка?
11. LeeAreHim 08.07.24 14:30 Сейчас в теме
(9)
а если будущая пятилетка?
Не мешайте человеку строить велосипед и разбрасывать грабли.
(8)
сотрудник проставляет суммы.
сам заполняет суммы или автоматом распределяется определенная сумма?
12. user824565 08.07.24 14:45 Сейчас в теме
(11) Распределяется, но может и в ручную откорректировать
14. LeeAreHim 08.07.24 15:20 Сейчас в теме
(12)
Распределяется

Ну тогда можно и так, как пример:
 
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ДатаНачала", Объект.ДатаНачала);
Запрос.УстановитьПараметр("РаспределяемаяСумма", Объект.Сумма);
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
Запрос.Текст = 
"Выбрать
|    ВЫРАЗИТЬ(&РаспределяемаяСумма / (РАЗНОСТЬДАТ(&ДатаНачала, КОНЕЦПЕРИОДА(&ДатаНачала, ГОД), МЕСЯЦ) + 1) КАК Число(10.2)) КАК РаспределеннаяСумма,
|    РАЗНОСТЬДАТ(&ДатаНачала, КОНЕЦПЕРИОДА(&ДатаНачала, ГОД), МЕСЯЦ) + 1) КАК ЧислоМесяцев
|ИЗ Какой-тоНашДокумент
|ГДЕ Какой-тоНашДокумент.Ссылка = &Ссылка";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Данные = Выборка.Следующий();
для Счетчик = 0 по Данные.ЧислоМесяцев Цикл
НоваСтрока = Объект.ТЧ.Добавить();
НоваяСтрока.Месяц = ДобдавитьМесяц(Объект.ДатаНачала, Счетчик);
НоваяСтрока.Сумма = Данные.РаспределеннаяСумма;
КонецЦикла;
Показать

Наверное так как-то. только нужно проверить и причесать. (Делал на коленке)
10. user824565 08.07.24 14:28 Сейчас в теме
только на год... без вариантов...
Оставьте свое сообщение

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