При программном формировании отчета не находит параметры периода
НужныйОтчет = ВнешниеОтчеты.Создать(ИмяФайлаОтчета, ложь);
СхемаКомпоновкиДанных = НужныйОтчет.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
НачалоПериода = Настройки.ПараметрыДанных.Элементы.Найти("ДатаНачала");
НачалоПериода.Значение = НачалоДня(ТекущаяДата()-86400);
КонецПериода = Настройки.ПараметрыДанных.Элементы.Найти("ДатаОкончания");
КонецПериода.Значение = КонецДня(ТекущаяДата()-86400);
Программно формирую отчет, но почему-то не находит параметры ДатаНачала и ДатаОкончания.
В Настройки.ПараметрыДанных.Элементы нет этих параметров.
Почему может не находить эти параметры?
Прикрепленные файлы:
По теме из базы знаний
- Выгрузка-загрузка любых данных (и измененных) между похожими конфигурациями (ФАЙЛ, HTTP, COM) ЛЮБЫХ баз 1С 8.1-8.3 с обработкой и поиском данных по произвольным полям поиска
- Загрузка чеков ФНС в документы 1С:БП, 1С:УНФ, 1С:ERP, 1С:КА и 1С:УТ
- Программная корректировка при выводе отчета СКД
- Распространенные ошибки разработчиков, приводящие к проблемам производительности
- Модель СКД
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(1) Вариант 1 ;
Свойство "Использование" = истина
Свойство "Использование" = истина
НачалоПериода = Настройки.ПараметрыДанных.Элементы.Найти("ДатаНачала");
НачалоПериода.Значение = НачалоДня(ТекущаяДата()-86400);
НачалоПериода.Использование = Истина; /////ВОТ
///вариант 2
Попытка
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ДатаНачала", НачалоДня(ТекущаяДата()-86400)) ///Так эффективнее =)
Исключение
Конецпопытки;
Показать
(2)Так выводит ту же ошибку:
а так выводит ошибку:
по причине:
Ошибка создания набора данных "НаборДанных1"
по причине:
Ошибка при исполнении запроса набора данных
по причине:
{(19, 53)}: Не задано значение параметра "ДатаНачала"
AV_ПараметрыЦенообразования.Реализация.Дата МЕЖДУ <<?>>&ДатаНачала И &ДатаОкончания
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(527)}: Ошибка при вызове метода контекста (Вывести)
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);
по причине:
Ошибка вывода результата
по причине:
Ошибка при выводе результата
по причине:
Ошибка получения данных
по причине:
Ошибка создания набора данных "НаборДанных1"
по причине:
Ошибка при исполнении запроса набора данных
по причине:
{(19, 53)}: Не задано значение параметра "ДатаНачала"
AV_ПараметрыЦенообразования.Реализация.Дата МЕЖДУ <<?>>&ДатаНачала И &ДатаОкончания
КонецПериода = Настройки.ПараметрыДанных.Элементы.Найти("ДатаОкончания");
КонецПериода.Значение = КонецДня(ТекущаяДата()-86400);
КонецПериода.Использование = Истина;
а так выводит ошибку:
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);
по причине:
Ошибка создания набора данных "НаборДанных1"
по причине:
Ошибка при исполнении запроса набора данных
по причине:
{(19, 53)}: Не задано значение параметра "ДатаНачала"
AV_ПараметрыЦенообразования.Реализация.Дата МЕЖДУ <<?>>&ДатаНачала И &ДатаОкончания
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(527)}: Ошибка при вызове метода контекста (Вывести)
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);
по причине:
Ошибка вывода результата
по причине:
Ошибка при выводе результата
по причине:
Ошибка получения данных
по причине:
Ошибка создания набора данных "НаборДанных1"
по причине:
Ошибка при исполнении запроса набора данных
по причине:
{(19, 53)}: Не задано значение параметра "ДатаНачала"
AV_ПараметрыЦенообразования.Реализация.Дата МЕЖДУ <<?>>&ДатаНачала И &ДатаОкончания
(4)
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
КомпНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
НачалоПериода = КомпНастроек .ПараметрыДанных.Элементы.Найти("ДатаНачала");
НачалоПериода.Значение = НачалоДня(ТекущаяДата()-86400);
НачалоПериода.Использование = истина
КомпНастроек = Настройки.ПараметрыДанных.Элементы.Найти("ДатаОкончания");
КонецПериода.Значение = КонецДня(ТекущаяДата()-86400);
КонецПериода.Использование = истина
КомпНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
КомпНастроек.ЗагрузитьНастройки(Настройки);
Показать
(10)ок, тогда проще:
ЗначенияПараметровДанныхКомпоновкиДанных.УстановитьЗначениеПараметра (DataCompositionDataParameterValues.SetParameterValue)
ЗначенияПараметровДанныхКомпоновкиДанных (DataCompositionDataParameterValues)
УстановитьЗначениеПараметра (SetParameterValue)
Синтаксис:
УстановитьЗначениеПараметра(<Параметр>, <Значение>)
Параметры:
<Параметр> (обязательный)
Тип: Строка; ПараметрКомпоновкиДанных.
Имя параметра или параметр компоновки данных, значение которого нужно установить.
<Значение> (обязательный)
Значение, которое нужно установить.
Описание:
Устанавливает значение параметра и включает свойство Использование. Если параметр с указанным именем не найден, будет вызвано исключение.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
В вашем случае будет:
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ДатаНачала", НачалоДня(ТекущаяДата()-86400));
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ДатаОкончания", КонецДня(ТекущаяДата()-86400));
Пользуйтесь СП, всё остальное от лукавого.
ЗначенияПараметровДанныхКомпоновкиДанных.УстановитьЗначениеПараметра (DataCompositionDataParameterValues.SetParameterValue)
ЗначенияПараметровДанныхКомпоновкиДанных (DataCompositionDataParameterValues)
УстановитьЗначениеПараметра (SetParameterValue)
Синтаксис:
УстановитьЗначениеПараметра(<Параметр>, <Значение>)
Параметры:
<Параметр> (обязательный)
Тип: Строка; ПараметрКомпоновкиДанных.
Имя параметра или параметр компоновки данных, значение которого нужно установить.
<Значение> (обязательный)
Значение, которое нужно установить.
Описание:
Устанавливает значение параметра и включает свойство Использование. Если параметр с указанным именем не найден, будет вызвано исключение.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
В вашем случае будет:
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ДатаНачала", НачалоДня(ТекущаяДата()-86400));
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ДатаОкончания", КонецДня(ТекущаяДата()-86400));
Пользуйтесь СП, всё остальное от лукавого.
(17)ну раз действительно нет и есть в доступных, а так же не помогло:
Тогда тут не всё так однозначно) В конфигураторе нажимаете F1 в открывшейся справке нажимаете индекс и там вбиваете: ЗначенияПараметровДанныхКомпоновкиДанных
В найденной справке выбираем свойство элементы, потом в открывшейся справке выбираем "Тип: КоллекцияЗначенийПараметровКомпоновкиДанных" и там видим наличие метода "Добавить", читаем справку и делаем вывод, что нам нужно примерно следующее:
"ДобавлеямДичь" имеет свои свойства, возвращаемся в справку и смотрим какие типы возвращает этот метод "Добавить()":
Что-то из этого явно истина. Я бы на этом этапе воспользовался бы отладкой и узнал бы какой тип имеет это наша "ДобавлеямДичь" и опять таки вернулся бы в СП за расшифровкой и так далее и так далее. Если дойдёте до этого этапа и не сможете понять как действовать дальше, то укажите какой тип получите от определения "ДобавлеямДичь", будем мучиться дальше, ну а я поехал домой.
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ДатаНачала", НачалоДня(ТекущаяДата()-86400));
Тогда тут не всё так однозначно) В конфигураторе нажимаете F1 в открывшейся справке нажимаете индекс и там вбиваете: ЗначенияПараметровДанныхКомпоновкиДанных
В найденной справке выбираем свойство элементы, потом в открывшейся справке выбираем "Тип: КоллекцияЗначенийПараметровКомпоновкиДанных" и там видим наличие метода "Добавить", читаем справку и делаем вывод, что нам нужно примерно следующее:
ДобавлеямДичь = Настройки.ПараметрыДанных.Элементы.Добавить();
"ДобавлеямДичь" имеет свои свойства, возвращаемся в справку и смотрим какие типы возвращает этот метод "Добавить()":
Возвращаемое значение:
Тип: ЗначениеПараметраКомпоновкиДанных или ЗначениеПараметраНастроекКомпоновкиДанных
Что-то из этого явно истина. Я бы на этом этапе воспользовался бы отладкой и узнал бы какой тип имеет это наша "ДобавлеямДичь" и опять таки вернулся бы в СП за расшифровкой и так далее и так далее. Если дойдёте до этого этапа и не сможете понять как действовать дальше, то укажите какой тип получите от определения "ДобавлеямДичь", будем мучиться дальше, ну а я поехал домой.
(11)так?:
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
КомпНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
КомпНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
КомпНастроек.ЗагрузитьНастройки(Настройки);
(13)спасибо, так получилось:
НужныйОтчет = ВнешниеОтчеты.Создать(ИмяФайлаОтчета, ложь);
СхемаКомпоновкиДанных = НужныйОтчет.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
КомпНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
КомпНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
КомпНастроек.ЗагрузитьНастройки(Настройки);
Настройки = КомпНастроек.Настройки;
НачалоПериода = Настройки.ПараметрыДанных.Элементы.Найти("ДатаНачала");
НачалоПериода.Значение = НачалоДня(ТекущаяДата()-86400);
НачалоПериода.Использование = Истина;
КонецПериода = Настройки.ПараметрыДанных.Элементы.Найти("ДатаОкончания");
КонецПериода.Значение = КонецДня(ТекущаяДата()-86400);
КонецПериода.Использование = Истина;
Показать
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)