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)


Прикрепления: 5553459.jpg (111.6 Kb) · 8235761.jpg (125.9 Kb) · 6229146.jpg (196.3 Kb) · 7274728.jpg (142.7 Kb) · 4820509.jpg (117.2 Kb)

И говорим ОК (возвращаемся в консоль СКД ИР)


Теперь я хучу внести изменения в запрос (например наложить какой-нибудь отбор. Я перехожу в окно запросы (я правильно всё делаю?) и двойным кликом щёлкаю на ветке "ПростойРС".


Я попадаю в консоль запросов (ИР) в котором вызываю контекстное меню конструктора запросов


Из которого я попадаю в Конструктор запросов в котором закладки "Итого" и "Построитель", но нет закладок "Компоновка данных" и "Характеристики".

Прикрепления: 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. Удивительно, но получилось так, что выводимые данные результата запроса в консоли и реализованном отчете отличались. В консоли результат был верный, в СКД - не верный.

В частности, на примере, видно, что сумма из колонки "Полная оплата" в результате запроса консоли в результате отчета на СКД содержится в колонке "Без оплаты".

1C 8 в консоли запросов и скд разные данные

Было предположено, что возможно интерпретатор СКД и консоли все-таки по-разному воспринмают текст запроса. Т.е. СКД что-то еще проделывает с запросом, в результате чего получается, что в 1С 8 один и тот же запрос возвращает разные данные в консоли и СКД.

1c 8 скд и консоль разные данные

Ниже была получена еще одна подсказка, указывающая на проблему в моем случае и примерный вариант решения проблемы различия данных результата запроса в консоли и СКД

1с 8 КонсольЗапросов И Отчет СКД выводят разные данные

В моем случае "хитрым полем" оказалось не Минимум(), а Максимум() для поля с типом значений "Дата" (дата со временем): МАКСИМУМ(РасчетыСКонтрагентамиОбороты.Период) КАК Период

На скрине ниже видно, что СКД его не обрабатывает прямо совсем.

1С 8 в консоли запросов данные правильные, а в СКД нет, не правильные

Вариант решения проблемы предполагался в том, чтобы заменить временную таблицу, т.к. именно временные таблицы СКД и преобразует, на вложенный запрос. И, как видно на скрине примера, как раз выражение Максимум() сдержится в тексте запроса, который помещается во временную таблицу. Как известно, вложенные запросы по методике - это наименне производительный результат для СКД, чем временные таблицы, но других очевидных вариантов не оставалось. Но вариант с вложенным запросом не решил проблему. Хотя некоторым помогает решить.

1C 8 Различаются результаты запроса и отчета в СКД

В моем запросе использовались таблицы оборотов регистров, но параметры в них не были указаны, т.к. подразумевалось, что выборка должна осуществляться за все время. Но, как отмечено в комментарии на скрине выше, СКД подставляет параметры &НачалоПериода и &КонецПериода все равно. Ситуацию усугубило (в плане поиска корня проблемы) то, что в используемом запросе уже использовались параметры с этими же названиями в других временных таблицах. После замены виртуальных таблиц оборотов регистров, на физическую таблицу, у которой нет виртуальных параметров, результат вывода данных в СКД стал таким же, как и в консоли запросов. Т.е. срабатывала ненужная выборка по периоду из-за одноименных параметров запроса &НачалоПериода и &КонецПериода и параметров виртуальной таблицы оборотов регистра накопления, хотя они явно и не указывались:

1С 8 почему разные данные результата запроса в СКД и консоли запросов

Хоть предыдущие варианты, кроме последнего, и не помогли решить конкретную проблему и не помогли, но их описание может помочь Вам в решении проблемы, т.к. они из наиболее встречающихся.

Читайте также: