1с неверные параметры началопериода
Обновлено: 07.07.2024
У меня не получается "найти" параметры НачалоПериода и КонецПериода в СКД, чтобы передать им соответствующие значения одноименных реквизитов отчета.
Я пытаюсь поймать параметры при помощи конструкции (в модуле формы):
Но выдается ошибка "Переменная не определена (НачалоПериода)" на первом этапе еще.
Что я делаю не так? В инете написано, что такая конструкция у всех работает. У меня нет.
P.S. При всем уважении к всем здесь присутствующим, мне хочется решить задачу именно в этом контексте. Спасибо!
__________________Помощь в написании контрольных, курсовых и дипломных работ здесь
Открытие формы данных Отчета СКД
Здравствуйте, возникла задача, при формировании отчета, имеется возможность открыть формы данных.
Обычные формы, отчет на СКД - вывод параметров на форму
Обычная форма, делаю отчет на СКД. Задаю параметры , на форме размещаю Табличное поле - В его.
Ввод параметров отчета через форму
Здравствуйте! Проблема такая, делаю базу данных, и нужно решить вот такую проблему. Параметры.
Подстановка параметров в запрос при вызове отчета
Есть запрос с параметрами. Пока эти параметры подставляются со специальной формы, где пользователи.
Формирование отчета в СКД
Добрый день. При создании отчета на СКД появились две проблемы. 1) Нужно, чтобы одна из колонок.
Настройка отчета на СКД
Здравствуйте! :) Есть отчет. В нем к примеру 2 ресурса - Количество и сумма. В настройках скд.
Настройка отчета СКД 1с 8.3
Здравствуйте. Сделал отчет в СКД. Настройка отчета во вложении. Во вложении также результат отчета.
Вывод отчета в СКД
есть отчет годовой план. колнки месяцы - тип справочник с номером соотв. порядку месяца в году.
Вывод отчета на скд
Здравствуйте. Пока сделала следующий запрос (может имеет смысл разбить на 2, не знаю, как.
Использование параметров - периодов в системе компоновки данных
Для многих отчетов необходимо дать возможность пользователю указывать период, за который необходимо получить отчет. Часто данные периоды требуется указывать не с точностью до секунды, а с точностью до дня. Для того чтобы пользователь имел возможность ввести в параметрах данных дату без времени, достаточно указать в описании параметра данных тип параметра Дата с указанием состава даты "Дата".
После этого пользователь сможет вводить в параметры данных только значения дат, без времени.
Для того чтобы введенные значения интерпретировалось в отчете как начало и конец дня следует в запросе использовать функции НачалоПериода() и КонецПериода() .
ВЫБРАТЬ
ПродажиОбороты.Контрагент,
ПродажиОбороты.Номенклатура,
ПродажиОбороты.КоличествоОборот,
ПродажиОбороты.СуммаОборот
ИЗ
РегистрНакопления.Продажи.Обороты(
<(НАЧАЛОПЕРИОДА(&ПериодНачало, ДЕНЬ))>,
<(КОНЕЦПЕРИОДА(&ПериодКонец, ДЕНЬ))>, , ) КАК ПродажиОбороты
В данном примере в качестве значений параметров виртуальной таблицы будут передаваться начало и конец дней, выбранных пользователем.
Использование стандартных периодов
Система компоновки данных позволяет использовать стандартные периоды для указания периода отчета.
Для того чтобы задействовать данную возможность следует добавить в схему компоновки данных параметр типа СтандартныйПериод , а в параметрах - датах указать соответствующие выражения и запретить их редактирование пользователем.
После такой доработки схемы компоновки пользователю будет доступен для редактирования только параметр Период , значения которого при помощи выражений будут помещены в параметры ПериодНачало и ПериодКонец .
Пользователь будет редактировать параметр в следующем виде:
Для показанного примера в качестве значения параметра ПериодНачала будет использоваться дата 01.01.2019 , а в качестве значения параметра ПериодКонец будет использоваться дата 31.01.2019 .
Реальные значения дат для стандартного периода определяются при исполнении отчета. Таким образом, если выполнять отчет с установленным периодом Этот месяц в январе 2020-го года, то отчет будет исполняться с 01.01.2020 по 31.01.2020 , а если выполнять в феврале 2020-го года, то с 01.02.2020 по 29.02.2020
Заметим, что даты начала и конца стандартного периода также содержат и время. Причем, начальная дата имеет время 00:00:00 , а конечная дата 23:59:59 , таким образом, в запросе не обязательно использовать функции НАЧАЛОПЕРИОДА и КОНЕЦПЕРИОДА .
Вот штатный отчет из УПП 1.3 , в конфигураторе и в штатной консоле СКД он открывается без проблем, но при загрузке в Вашу консоль СКД и затем переход в консоль запросов появляется ошибка:
Ошибка при вычислении параметра "ДатаПослеАктуальности"
: Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: : Процедура или функция с указанным именем не определена (ДОБАВИТЬКДАТЕ)
Можно ли доработать связке "Консоль СКД" <---> "Консоль запросов"?
В штатной консоли СКД, после перехода в консоль запросов, появляется закладка "Компоновка данных", на которой можно определять директивы компоновки данных (которые в фигурных скобках (если нужно, то я могу дать описание что за что отвечает)
А у вас этой закладки нет, но есть закладка "Итоги" или закладка "Построитель"
В приведённом примере "конфигурация не важна"
В любом отчете СКД в параметрах используйте "выражение" - ДОБАВИТЬКДАТЕ(Параметры.Период, "секунда", 1)
И Вы получите диагностику приведённую в моём постинге
Ошибка при вычислении параметров СКД: : Ошибка при вызове метода контекста (Выполнить): Ошибка компоновки макета: Ошибка в выражении: Неверные параметры "ДобавитьКДате"
К сожалению :-(
СКД работает либо с источником типа "Объект" (было бы классно, если бы ИР позволяло бы работать в таком варианте - если позволяет, подскажите плз где посмотреть пример такой работы), или с источником типа "Запрос" или "Объединение" (но они принципиально базируются на метаданных конфигурации).
Итак, для воспроизведения проблемы мы берём любую конфу, в которой есть хотя бы один простой периодический регистр сведений (хотя бы с одним измерением и хотя бы одним ресурсом).
Запускам приложение, переходим в консоль СКД ИР и проверяем релиз
Далее создаем отчет "Простой отчет" в котором (для простоты) сделаем все "ручками".
1. Создаем источник "ПростойРС" и переходим в конструктор запроса (обращаю внимания, что у нас сейчас запустился штатный конструктор СКД и из него будет запускаться штатный конструктор запроса).
В конструкторе запроса выбираем наш простой периодический регистр сведений (виртуальную таблицу срез последних (обращаем внимание, что закладки "Компоновка данных" и "Характеристики" присутствуют так как это "стандартный" конструктор запроса)
Говорим ОК и возвращаемся обратно в стандартный конструктор СКД
Теперь переходим на закладку "Параметры" и к параметру "Период" добавляем ещё один параметр "ДатаПослеАктуальности" с выражением СКД - ДобавитьКДате(&Период,"Секунда", 1)
И говорим ОК (возвращаемся в консоль СКД ИР)
Теперь я хучу внести изменения в запрос (например наложить какой-нибудь отбор. Я перехожу в окно запросы (я правильно всё делаю?) и двойным кликом щёлкаю на ветке "ПростойРС".
Я попадаю в консоль запросов (ИР) в котором вызываю контекстное меню конструктора запросов
Из которого я попадаю в Конструктор запросов в котором закладки "Итого" и "Построитель", но нет закладок "Компоновка данных" и "Характеристики".
Прикрепления: 2541045.jpg (128.4 Kb) · 6760529.jpg (110.0 Kb) · 6259945.jpg (110.8 Kb) · 6081054.jpg (85.0 Kb) · 5461303.jpg (202.8 Kb)
Итак, повторяю свой вопрос заданный выше - возможно ли доработать связку "Консоль СКД ИР" <---> "Конструктор запроса ИР" до полнофункциональной работай с СКД?
ПыСы. Но вполне возможно, что я где-то что-то делаю не так. Подскажите, я исправлюсь :-)
Описание ошибки:
Платформа 1С: Предприятие 8.3.16.1063. Клиент-серверный вариант работы базы. Конфигурация не указана, т.к., забегая вперед, не в ней проблема.
Столкнулся с проблемой при реализации отчета на СКД. При этом, как привычно - запрос для сбора данных тестировался с помощью обработки "Консоль запросов" для 1С 8. Удивительно, но получилось так, что выводимые данные результата запроса в консоли и реализованном отчете отличались. В консоли результат был верный, в СКД - не верный.
В частности, на примере, видно, что сумма из колонки "Полная оплата" в результате запроса консоли в результате отчета на СКД содержится в колонке "Без оплаты".
Было предположено, что возможно интерпретатор СКД и консоли все-таки по-разному воспринмают текст запроса. Т.е. СКД что-то еще проделывает с запросом, в результате чего получается, что в 1С 8 один и тот же запрос возвращает разные данные в консоли и СКД.
Ниже была получена еще одна подсказка, указывающая на проблему в моем случае и примерный вариант решения проблемы различия данных результата запроса в консоли и СКД
В моем случае "хитрым полем" оказалось не Минимум(), а Максимум() для поля с типом значений "Дата" (дата со временем): МАКСИМУМ(РасчетыСКонтрагентамиОбороты.Период) КАК Период
На скрине ниже видно, что СКД его не обрабатывает прямо совсем.
Вариант решения проблемы предполагался в том, чтобы заменить временную таблицу, т.к. именно временные таблицы СКД и преобразует, на вложенный запрос. И, как видно на скрине примера, как раз выражение Максимум() сдержится в тексте запроса, который помещается во временную таблицу. Как известно, вложенные запросы по методике - это наименне производительный результат для СКД, чем временные таблицы, но других очевидных вариантов не оставалось. Но вариант с вложенным запросом не решил проблему. Хотя некоторым помогает решить.
В моем запросе использовались таблицы оборотов регистров, но параметры в них не были указаны, т.к. подразумевалось, что выборка должна осуществляться за все время. Но, как отмечено в комментарии на скрине выше, СКД подставляет параметры &НачалоПериода и &КонецПериода все равно. Ситуацию усугубило (в плане поиска корня проблемы) то, что в используемом запросе уже использовались параметры с этими же названиями в других временных таблицах. После замены виртуальных таблиц оборотов регистров, на физическую таблицу, у которой нет виртуальных параметров, результат вывода данных в СКД стал таким же, как и в консоли запросов. Т.е. срабатывала ненужная выборка по периоду из-за одноименных параметров запроса &НачалоПериода и &КонецПериода и параметров виртуальной таблицы оборотов регистра накопления, хотя они явно и не указывались:
Хоть предыдущие варианты, кроме последнего, и не помогли решить конкретную проблему и не помогли, но их описание может помочь Вам в решении проблемы, т.к. они из наиболее встречающихся.
Читайте также: