Привязка поля ввода к отбору построителя отчета #311957


#0 by selenat
Пытаюсь во внешней обработке привязать к полю ввода отбор пострителя: ЭлементыФормы.Дата.Данные = "ВнешняяОбработкаОбъект.ПостроительОтчетаОтчет.Отбор.Дата.Значение"; В обоих случаях ругается: "Неправильный путь к данным". Не соображу как правильно написать...
#1 by Hadgehogs
И выключите пока сохранение настроек формы И убедитесь, что в ПостроительОтчетаОтчет.Отбор добавлено поле "Дата" методом
#2 by selenat
"ЭтотОбъект.ПостроительОтчетаОтчет.Отбор.Дата.Значение" не помогло - та же фигня. ПостроительОтчетаОтчет.Отбор.Добавить("Дата"); - не помогло (да и не могло помочь ИМХО). А сохранение настроек при чем Речь ведь о полях, доступных для отбора, они вряд ли завият от этого...
#3 by selenat
ошибка та же. Какие еще варианты?
#4 by selenat
ап
#5 by Hadgehogs
ПостроительОтчетаОтчет.Отбор.Добавить("Дата"); - что значит не помогло? В полях отбора должно присутствовать поле "Дата". Отладчиком остановитесь и вычислите ПостроительОтчетаОтчет.Отбор.Дата.Значение
#6 by selenat
в отладчике и так ПостроительОтчетаОтчет.ДоступныеПоля.Дата.Отбор = истина. Сдается мне, я просто код этот не туда сунул.
#7 by Hadgehogs
Высиислите ПостроительОтчетаОтчет.Отбор.Дата.Значение Вы просто могли поле "Дата" в отбор не добавить
#8 by selenat
хых. Помогло вроде Добавить. Странно, вроде проверял тока что. Щас еще потестирую. Спсибо!
#9 by Hadgehogs
Судя по имени переменной ПостроительОтчетаОтчет вы отчет строили КонструкторомВыходнойФормы, который сохраняет все значения при выходе и загружает их при входе. На время отладки это лучше выключать
#10 by selenat
да, конструкторм. на время отладки? а потом что? сдается мне, что это Добавить нужно просто вставить после восстановления настройки. Очень интересно, этого я смотрю мало.Ибо использование у отбор.Дата = ложь... Не очень все-таки хорошо об этом написано в проф. разработке. Ничего не сказано про необходимость добавлять программно в отбор перед тем как привязывать к полю ввода. Да и про использование = истина ничего не сказано...
#11 by selenat
Сделал так: при открытии после восстановления настроек идет    Если ПостроительОтчетаОтчет.Отбор.Найти("Дата") = Неопределено Тогда    КонецЕсли;     Кто как думает - нормально или можно было красивее сделать?
#12 by Hadgehogs
Нормуль
#13 by selenat
ок. Сделал еще при открытии формы настройки    НастройкаОтбора.Добавить("Дата",Ложь); Чтоб в ТП отбора в форме настройки не показывать...
#14 by selenat
Еще вопрос. Поле Дата на форме у меня имеет состав Дата. Видимо при выполнении состав сбивается на "дата и время". Пытаюсь сделать ПостроительОтчетаОтчет.Отбор.Дата.ТипЗначения = Новый ОписаниеТипов("Дата",,, Новый КвалификаторыДаты(ЧастиДаты.Дата)); или ПостроительОтчетаОтчет.Отбор.Дата.ТипЗначения.КвалификаторыДаты.ЧастиДаты = ЧастиДаты.Дата; Ошибок не выдает, но дата все равно имеет состав "дата и время".
#15 by selenat
ап
#16 by selenat
+14 вру. Этот код вообще по ошибке вылетает: "поле объекта недоступно для записи".
#17 by selenat
ап
#18 by selenat
Сделал    ПостроительОтчетаОтчет.ДоступныеПоля.Найти("Дата").ТипЗначения = Новый ОписаниеТипов("Дата",,, Новый КвалификаторыДаты(ЧастиДаты.Дата)); и убрал восстановление настройки - состав стал нормальным. Теперь еще надо будет конецДня дате присвоить перед выполнением..
#19 by selenat
а вот конецДня присвоить не получается...
#20 by selenat
т.е. получается интересно. Состав поля ввода зависит от данных поля. Чтобы в поле можно было вводить только дату, нужно, чтоб состав значения, которое присваиваем полю ввода был дата. Но в этом случае мы уже не можем в построитель отчета передать дату с учетом времени (конец дня). Так получается?
#21 by selenat
ап
#22 by selenat
ап
#23 by Hadgehogs
Вот честно, никогда не устанавливал дату через отбор, все жестко через параметры.
#24 by selenat
ну я вконце концов тоже так сделал, просто интересно было. Вроде как по смыслу удобно было бы, если дата пользователем не задана, то соответствующий параметр вирт. таблицы остается пустым - вроде как соотвтетствует идеологии настраиваемости постороителя.
#25 by Hadgehogs
Нехорошее подозрение, покажите код запроса...
#26 by selenat
#27 by selenat
+26 соотвтетственно первым параметром вирт. таблицы хотелось поставить {&Дата}
#28 by selenat
+27 и при этом, чтоб интерактивно она выбиралась без времени, а остатки брались на конец дня...
#29 by Hadgehogs
Я уж подумал, что вы ДатаНач, ДатаКон в ГДЕ используете, а не в параметрах виртуальной таблицы. А зачем вообще если уже есть РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, {Склад, СЕРИЯНОМЕНКЛАТУРЫ.* КАК ИНР}) КАК ТоварыНаСкладахОстатки А Время в дате мне убрать не удалось...
#30 by selenat
а чтобы отбор по этим полям был для пользователя на первом уровне (удобства ради, поскольку это основные настройки, которые предполагается использовать), а не в составе Серии...
#31 by selenat
+30, понятно, что в принципе отбор и так можно было делать по всем полям СерияНоменклатуры...
#32 by selenat
время убрать не удалось - все как я рассказывал в ?
#33 by Hadgehogs
Угу
#34 by selenat
абыдно. Ну да ладно. И параметром сойдет...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С