Как-то не задавался вопросом, но один заказчик обратил внимание...
Если мы в отчете СКД задаем параметр с типом дата и выводим его в пользовательские настройки, то он становится типом СтандартнаяДатаНачала и в списке выбора фигурируют "Начало того", "Начало сего"... Если же отчет предполагает выбор даты на конец дня(да мы можем установить его в выражении и скрыть время в параметрах редактирования), то у пользователя может возникнуть когнитивный диссонанс - типа "В настройках указано начало дня! WTF!!!!"
Можно ли в СКД у параметра дата убрать эти "Начала" и оставить только дату? Пока решение нашел только через программное изменение, но такое решение не очень нравится. Есть ли нормальное решение?
2.
user705522_constantin_h
3715.10.20 23:16 Сейчас в теме
(1)Вы неправильно поняли. Это не название параметра, а конкретное значение. Значение конец 1С не предлагает. Можете значением выбрать ПроизвольнаяДата, тогда дата будет пустой и вы её будете задавать вручную. Можете устанавливать значения параметров в процедуре ПриКомпоновкеРезультата.
Если же отчет предполагает выбор даты на конец дня
Через строчку читаете?
(2) Это понятно... я к тому, что не нашел штатного механизма убрать выбор предлагаемых значений.
при компоновке результата уже поздно менять.
я делаю манипуляции в ПослеЗаполненияПанелиБыстрыхНастроек
(5) Вот как пример, есть отчет по контролю изменения цен. Он выводит изменения цен за конкретный день. На начало дня он просто не имеет никакого смысла, т.к. он будет просто пустой.
Если в отчете требуется дата со временем, тут вопросов нет. Если же я убираю время, то и видеть не хочу эти "Начала".
Могу предложить так http://prntscr.com/v0bmqx Но это неполноценное решение. Потому что первом входе в поле все равно открывается этот список выбора. И как это отключить не понятно.
(9) Примерно так и делаю, только в событии ПослеЗаполненияПанелиБыстрыхНастроек.
Ну или в ПриОбновленииСоставаПользовательскихНастроекНаСервере, если своя форма отчета.
создайте перечисление и назовите его значения как хотите и обрабатывайте полученное значение в модуле объекта отчета прикомпоновке.. если нужна произвольная дата - флаг на форме или выбор определенного значения перечисления - скрыть перечисление и показать поле ввода даты
вот такой вот простенький алгоритм
(11) вы не понимаете... т.к. нет стандартной даты окончания, я добиваюсь того, чтобы этого списка выбора вообще не было.
вопрос - можно ли этого добиться без кода?
(12) так вам же сказали без списка выбора тип не стандартная дата а просто дата, в названии параметра ставите "на конец даты" а в выражениии приводите КонецПериода(Дата, "День") на память точно не помню
(16) а кажись понял - никогда не обращал внимания - что же вы дальше не показали скрин - там две кнопки - флажок выбора из списка и флажок выбора даты. Ну если совсем запарится то своя форма со своим полем выбора типа Дата - тогда стандартной даты быть не должно а так впервые слушу что кого-то это напрягло - пусть нажимает на кнопку выбора даты а не выбора списка... у того у кого когнитивный диссонанс пусть привыкает такова жизнь концом периода может быть начало дня).. а когда он с этой мыслью свыкнется откройте тайну что период можно задавать меньше а можно меньше или равно то есть не включая или включая границу и меньше равно 23:59:59 тоже самое что меньше начала следующего дня
(17) переделывать общую форму отчетов желания нет.
на самом деле заказчик - перфекционист. при сбросе настроек на стандартные должна подставляться текущая дата. это можно сделать выбрав в настройках начало текущего дня. только и отображаться он будет так же. кодом данную проблему решил. думал, что может быть чего-то не знаю...
на сколько понимаю, настройками решения нет.
(18) посмотрите тип стандартный период там конец дня у даты окончания выбирается автоматически, если нет также программно легче сделать, может это вашего перфекциониста устроит
Я так понимаю, средствами СКД сделать ничего не выйдет, т.к. элементы рисует платформа в расширении формы отчета (курить метод СоздатьЭлементыФормыПользовательскихНастроек). Так что подход в (3) самый оптимальный.