Получить значение Реквизита тип: Перечисления НаКлиенте
Есть реквизит. ГодПоставки. Где необходимо указывать 4 цифры года. Если указать тип Дата, то приходится делать выбор какой-нибудь даты, чтобы в этом поле появилось четыре цифры года. Подумал, что может логичнее сделать перечисление? Со значениями на 5 лет вперед..? (Если честно, так и сделал пока..) Или есть способ лучше?
Если с перечислением работать, то получается при выборе текущего года надо заполнить табличную часть только оставшимися месяцами. Тогда не пойму, как получить текстовое представление выбранного значения Перечисления НаКлиенте...
Если с перечислением работать, то получается при выборе текущего года надо заполнить табличную часть только оставшимися месяцами. Тогда не пойму, как получить текстовое представление выбранного значения Перечисления НаКлиенте...
По теме из базы знаний
- Интеграция сервиса проверки идентификационных реквизитов юридических лиц по данным ЕГРН и 1С:Предприятие 8
- Обзор полезных методов БСП 3.1.4
- Универсальная загрузка данных формата Excel
- Консоль кода с поддержкой объявления процедур и функций, с дополнительными функциями отслеживания и вывода значений
- uniloadXLS - универсальная загрузка XLS с приведением ссылочных типов (open-source)
Найденные решения
(1)
Не логичнее. У реквизита объекта с типом дата установите формат "ДФ=yyyy", а на форме у этого реквизита для кнопки выбора поставьте - нет, а для Кнопка регулирования - да. Ну и в процедуре "ПриСозданииНаСервере", если это новый документ, установите Объект.Годпоставки = НачалоГода(ТекущаяДатаСеанса());
ИМХО так лучше.
может логичнее сделать перечисление?
Не логичнее. У реквизита объекта с типом дата установите формат "ДФ=yyyy", а на форме у этого реквизита для кнопки выбора поставьте - нет, а для Кнопка регулирования - да. Ну и в процедуре "ПриСозданииНаСервере", если это новый документ, установите Объект.Годпоставки = НачалоГода(ТекущаяДатаСеанса());
ИМХО так лучше.
(5)Зависит от задачи. Но, честно говоря, я не могу представить задачу с применением перечисления, кроме как в отчете группировать суммы по месяцам за несколько лет. Хотя и это можно сделать с Реквизитом ТЧ "Месяц" с типом "Дата", которому можно поставить формат реквизита "ДФ=ММММ", например.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Не логичнее. У реквизита объекта с типом дата установите формат "ДФ=yyyy", а на форме у этого реквизита для кнопки выбора поставьте - нет, а для Кнопка регулирования - да. Ну и в процедуре "ПриСозданииНаСервере", если это новый документ, установите Объект.Годпоставки = НачалоГода(ТекущаяДатаСеанса());
ИМХО так лучше.
может логичнее сделать перечисление?
Не логичнее. У реквизита объекта с типом дата установите формат "ДФ=yyyy", а на форме у этого реквизита для кнопки выбора поставьте - нет, а для Кнопка регулирования - да. Ну и в процедуре "ПриСозданииНаСервере", если это новый документ, установите Объект.Годпоставки = НачалоГода(ТекущаяДатаСеанса());
ИМХО так лучше.
(5)Зависит от задачи. Но, честно говоря, я не могу представить задачу с применением перечисления, кроме как в отчете группировать суммы по месяцам за несколько лет. Хотя и это можно сделать с Реквизитом ТЧ "Месяц" с типом "Дата", которому можно поставить формат реквизита "ДФ=ММММ", например.
(12)
Ну тогда можно и так, как пример:
Наверное так как-то. только нужно проверить и причесать. (Делал на коленке)
Распределяется
Ну тогда можно и так, как пример:
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ДатаНачала", Объект.ДатаНачала);
Запрос.УстановитьПараметр("РаспределяемаяСумма", Объект.Сумма);
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
Запрос.Текст =
"Выбрать
| ВЫРАЗИТЬ(&РаспределяемаяСумма / (РАЗНОСТЬДАТ(&ДатаНачала, КОНЕЦПЕРИОДА(&ДатаНачала, ГОД), МЕСЯЦ) + 1) КАК Число(10.2)) КАК РаспределеннаяСумма,
| РАЗНОСТЬДАТ(&ДатаНачала, КОНЕЦПЕРИОДА(&ДатаНачала, ГОД), МЕСЯЦ) + 1) КАК ЧислоМесяцев
|ИЗ Какой-тоНашДокумент
|ГДЕ Какой-тоНашДокумент.Ссылка = &Ссылка";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Данные = Выборка.Следующий();
для Счетчик = 0 по Данные.ЧислоМесяцев Цикл
НоваСтрока = Объект.ТЧ.Добавить();
НоваяСтрока.Месяц = ДобдавитьМесяц(Объект.ДатаНачала, Счетчик);
НоваяСтрока.Сумма = Данные.РаспределеннаяСумма;
КонецЦикла;
ПоказатьНаверное так как-то. только нужно проверить и причесать. (Делал на коленке)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот