Параметр период не работает 1с

Обновлено: 06.07.2024

Особенности работы с объектом НастройкаПериода

В данном разделе рассмотрены особенности работы с объектом НастройкаПериода . Рассматриваются как работа объекта в табличных полях, отображающих "хронологические" динамические списки (свойство СтандартныйПериод), так и использование этого объекта для предоставления пользователю возможности, например, задавать интервал отчета, период за который нужно обработать данные и т.д.

Диалог Настройка периода

По умолчанию диалог Настройка периода имеет две закладки, которые позволяют выставлять промежуток времени в двух режимах, с использованием разных подходов. Диалог вызывается по команде "Установить интервал дат" в табличном поле или при вызове метода Редактировать() объекта НастройкаПериода .

Закладка "Интервал" дает возможность установить отдельно начало и окончание временного промежутка, причем в привязке к рабочему периоду. Например, задавая интервал "с начала недели по конец месяца", пользователь задает промежуток времени, который определяется по рабочей дате. Т.е. задавая один и тот же интервал в разные дни, пользователь задает разные результирующие интервалы, в общем случае, разной протяженности. Этот подход удобен для динамических списков и отчетов имеющих оперативный характер (текущие продажи, текущие расчеты с контрагентами и т.п.).

Закладка "Период" дает возможность установить размер периода (месяц, квартал, год) и привязать его к той или иной точке времени, в том числе к рабочей дате. Например, Февраль 2003, 1-ый квартал 2004, текущий, т.е. соответствующий текущей дате, квартал. Этот подход более удобен для анализа финансовых показателей прошлого или текущего периода. Например, когда рабочая дата уже Апрель 2004 года, некоторое время еще важно анализировать и корректировать данные первого квартала 2004 года.

На обеих закладках есть возможность установить произвольный период - любые дату начала и окончания периода.

В связи с тем, что интервалы времени на разных закладках задаются по-разному, не всегда можно однозначно отразить период заданный на одной закладке в терминах другой закладки. Например, если в 31-го марта 2004 года задать на закладке "Интервал" промежуток "с начала года по конец месяца" (т.е. промежуток с 01.01.2004 по 31.03.2004), то в терминах закладки "Период" это можно воспринять как "текущий месяц с начала года", "текущий квартал", "текущая дата с начала квартала" и "текущая дата с начала года". С такой неоднозначностью может быть связано то, что простое переключение между закладками приведет к тому, что не изменившись по сути на текущий момент времени, период будет задан уже другим способом.

Использование в динамических списках

Ряд списков динамического просмотра данных содержат такие предопределенные поля, как Дата или Период. В табличных полях таких динамических списков, помимо обычной установки отбора через диалог "Отбор и сортировка", существует стандартная команда "Установить интервал дат". Эта команда дает возможность пользователю не только задать произвольный диапазон просмотра данных, но и задать стандартные интервалы в более удобных терминах - неделя, месяц, квартал, год, а также задать период в привязке к текущей дате.

Команда вызывает диалог "Настройка периода", который является средством интерактивного управления объектом НастройкаПериода. Этот диалог позволяет запомнить стандартную настройку периода, которая будет использоваться для списка при открытии формы. При работе с настройкой периода следует помнить, что установка отбора по дате через окно "Отбор и сортировка" и через окно "Настройка периода" выполняют действия над одним и тем же элементом отбора динамического списка. В некоторых случаях для отбора по дате может быть задан такой диапазон, который не может быть адекватно отражен диалогом Настройка периода.

Особенностью диалога "Настройка периода", появляющегося в динамических списках, является также то, что в диалоге имеется флажок "Использовать эту настройку периода при открытии". Установка этого флажка приводит к тому, что при нажатии OK настройка периода будет сохранена для текущего списка и использована при следующем открытии формы.

Использование в отчетах

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

При работе с этим объектом в случае, когда в элементах управления формы используются даты с квалификатором типа Дата (без времени), следует учитывать следующие особенности.

  1. Для того чтобы использовать третий параметр метода УстановитьПериод() (т.е. параметр "Предпочтительно использовать рабочий период"), необходимо запомнить в каком режиме пользователь настроил период - с привязкой к рабочему периоду (например, текущий месяц) или как абсолютный период (например, Апрель 2004). Привязка настройки к рабочему периоду происходит неявно, когда пользователь использует закладку Интервал, или явно - при установке флажка "Рабочий период" на закладке "Период". И в том и в другом случае привязка к рабочему периоду приводит к тому, что свойство ЗначениеПериода получает значение даты "начала отсчета" ( ' 00010101 ' ). Таким образом, для определения того, что использована привязка к рабочему периоду, достаточно сравнить ЗначениеПериода и ' 00010101 ' .
  2. При установке периода (метод УстановитьПериод()) необходимо приводить дату окончания к концу дня, но только в том случае, если в качестве даты окончания не задана дата начала отсчета. Эта особенность связана с тем, что дата начала отсчета ' 00010101 0:00:00 ' воспринимается объектом НастройкаПериода особым образом. Если ее задать в качестве даты окончания, это будет означать, что ограничение не установлено. Но дата ' 00010101 23:59:59 ' , как, впрочем, любая дата с ненулевым временем, уже не является "датой начала отсчета".
  3. Для сохранения заданной пользователем настройки периода между сеансами работы формы можно использовать способность объекта НастройкаПериода сохраняться и восстанавливаться (например, при помощи функций глобального контекста СохранитьЗначение, ВосстановитьЗначение).

Эти особенности проиллюстрированы в демонстрационной конфигурации "Примеры ИТС" на примере формы обработки ПримерИнтернетПочты (закладка формы "Отчет по контрагенту").

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

Использование параметров - периодов в системе компоновки данных

Для многих отчетов необходимо дать возможность пользователю указывать период, за который необходимо получить отчет. Часто данные периоды требуется указывать не с точностью до секунды, а с точностью до дня. Для того чтобы пользователь имел возможность ввести в параметрах данных дату без времени, достаточно указать в описании параметра данных тип параметра Дата с указанием состава даты "Дата".



После этого пользователь сможет вводить в параметры данных только значения дат, без времени.


Для того чтобы введенные значения интерпретировалось в отчете как начало и конец дня следует в запросе использовать функции НачалоПериода() и КонецПериода() .

ВЫБРАТЬ
ПродажиОбороты.Контрагент,
ПродажиОбороты.Номенклатура,
ПродажиОбороты.КоличествоОборот,
ПродажиОбороты.СуммаОборот
ИЗ
РегистрНакопления.Продажи.Обороты(
<(НАЧАЛОПЕРИОДА(&ПериодНачало, ДЕНЬ))>,
<(КОНЕЦПЕРИОДА(&ПериодКонец, ДЕНЬ))>, , ) КАК ПродажиОбороты

В данном примере в качестве значений параметров виртуальной таблицы будут передаваться начало и конец дней, выбранных пользователем.

Использование стандартных периодов

Система компоновки данных позволяет использовать стандартные периоды для указания периода отчета.

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


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

Пользователь будет редактировать параметр в следующем виде:


Для показанного примера в качестве значения параметра ПериодНачала будет использоваться дата 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 , таким образом, в запросе не обязательно использовать функции НАЧАЛОПЕРИОДА и КОНЕЦПЕРИОДА .

Electronic Software Distribution

(0) я просто в шоке от таких публикаций. А сделайте еще публикации с "ПоказатьВопрос" и "ПоказатьПредупреждение". А еще можно вообще весь СП выложить.

(1) Adeptus, лучше, но не канает в УФ )))

А еще и обработку скачивать с 2мя реквизитами и 12ю строками текста - вообще превосходно.

Я вот так сделал:
- в обработке определено 2 реквизита Дата1 и Дата2
- в УФ форме добавлена кнопка и команда формы

. по-моему просто и удобно

Anna_arbuz; AlisultanovZakir; YA_420766153; Vil1983; BotMan4; Acort; criptid; SadrA; user706520_bichkov; buy_sale; link_l; sapervodichka; transt; N1LL; sanfoto; igormiro; DrAku1a; as-lubava; MenZurKa; wowik; user623969_dusa; cheburashka; Nigelist; AlMedvedev; ekomova; MRAK; nikivr; AlkB; ehcore; unichkin; free-lancer-2018; dj_serega; mnemchinov; RSConsulting; nick_krsk; + 35 – Ответить (5) Nuuq, спасибо! Изменил немного код для использования в режиме модальности:
Anna_arbuz; Egovigor; AlisultanovZakir; nissti; tolyan_ekb; assa; Marka_; hydra88; buy_sale; SadrA; link_l; sapervodichka; as-lubava; Sonnya1909; ncd.art; KotBegemot77; matashin; m_aster; user620387_niols; testnv0; wowik; DimaShustov; user1090556; vre; Vida; klinval; cheburashka; Xershi; nekitsazon; &rew; dour-dead; MRAK; zemochka; Craig; irvin12345; + 35 – Ответить (8) ehcore, Сначала сделал то же самое, а потом увидел ваш комментарий.
Ваш вариант все равно лучше, тк не везде есть общая форма выбора периода, а в моём случае - выбирает дату а не период (ЗУП ГУ)

Спасибо большое! Как раз нужна обработка, используемая в БУХ и ЗУП. Так вот общей формы "ВыборСтандартногоПериода", которая есть в БУХ, в ЗУПе нет, а "ВыборПериода" - что-то не осилила, как его прикрутить. Он в ЗУП для ПФР только, так-то везде месяц и все..
В обычных формах я всегда вот так использую

а в управляемых впервые делаю. Спасибо!

Использовал код (8). И обнаружил странное поведение формы. Если открыть форму, не выбирать период, закрыть форму - все ок. А вот если выбрать период, и закрыть форму - то при закрытии программа заходить в "Процедура ВыполнитьПослеВыбораПериода(Результат, Параметры) Экспорт", почему. Отличие хорошая разработка! Удобно пример кода, очень благодарить!

Просмотры 48967

Загрузки 68

Рейтинг 19

Создание 26.06.14 11:52

Обновление 26.06.14 11:52

№ Публикации 289236

Конфигурация Конфигурации 1cv8

Операционная система Windows

Вид учета Не имеет значения

Доступ к файлу Абонемент ($m)

Код открыт Не указано

Перенос данных КА 1.1 / УПП 1.3 => БП 3.0 (перенос остатков, документов и справочников из "1С:Комплексная автоматизация 1.1" / УПП 1.3 в "1С:Бухгалтерия 3.0")

См. также

Альтернативный способ добавления элементов и реквизитов на формы Промо

Предлагаю альтернативный вариант добавления динамически создаваемых элементов и реквизитов на форму.

1 стартмани

09.09.2019 18021 35 bmk74 7

Выделение текущей строки в отчете (сделать сразу во всех отчетах и ничего не сломать)

Как за 10 минут упростить работу с отчётами программистам и пользователям. Добавить ВО ВСЕ ОТЧЁТЫ механизм автоматического выделения текущей строки отчёта (той, на которой установлен курсор). И ПРИ ЭТОМ НИЧЕГО НЕ СЛОМАТЬ.

1 стартмани

17.10.2021 2841 6 Патриот 48

Самые красивые шахматы для 1С на управляемых формах

Здравствуйте, представляем Вашему вниманию классическую игру – Шахматы! Написана игра средствами 1С, на управляемых формах. Программный код представляет собой с аккуратностью составленную систему, содержащую лаконичные логические приемы и описательные имена переменных, объектов и функций. Программа полностью отлажена и многократно протестирована. Оригинальный авторский дизайн фигур, иконок и кнопок приятен глазу. Игра содержит большое количество функций, настроек и режимов игры, включая сетевую игру, тренировку с ботом или игру на двоих. Не упустите возможность найти ряд технических решений, применимых для реализации различных задач, а также поиграть в вечную игру с отличным оформлением! Желающие научиться программировать на управляемых формах могут многое почерпнуть в этой конфигурации.

5 стартмани

18.02.2021 5754 13 compmir 30

Интерактивная справка по объектам 1С (подключаемое расширение)

База знаний, подключаемая к объектам основной базы. Пополняется интерактивно, формируется в виде статей прямо в 1С (текст, картинки, таблицы, ссылки). Есть возможность прикрепления файлов, привязки к объектам 1С, возможности рейтинга и комментирования пользователями.

3 стартмани

29.09.2020 16015 84 sapervodichka 47

Расширенная настройка динамического списка УФ Промо

Открывая управляемую форму выбора и не увидев там видимых в форме списка элементов, часто хочется узнать причину их отсутствия там, т. е. какой наложен отбор. Но стандартная настройка списка управляемой формы показывает только пользовательские настройки, скрывая от пользователя фиксированный отбор. Предлагаю вам расширение конфигурации с расширенной настройкой динамического списка, отображающей пользователю кроме пользовательских настроек еще фиксированные.

Стандартный период в 1С – это общий объект, который можно использовать и при работе с управляемой формой, и при работе с компоновкой данных. В этой статье разберем, как работать со стандартным периодом на управляемой форме и в СКД.

Стандартный период в 1С на управляемой форме

На управляемой форме можно создать реквизит с типом Стандартный период, и поместить этот реквизит на саму форму в виде поля ввода.

Стандартный период 1С

Теперь, если пользователь нажмет на кнопку «…» поля ввода стандартного периода, то откроется окно «Выберете период».

Стандартный период 1С

В этом окне можно выбрать любой период, и поместить его в поле ввода.

Стандартный период 1С

Как нам, после того как будет выбран период, получить дату начала и дату конца периода? Для этого следует воспользоваться свойствами ДатаНачала и ДатаОкончания объекта СтандартныйПериод.

Напомню, что Период – это реквизит формы (см. первый скрин).

Стандартный период 1С

Стандартный период можно создать в коде при помощи конструктора Новый.

Если мы сделаем так, то создадим пустой стандартный период (с пустыми датами). Также можно создать стандартный период с уже заранее определенными датами.

Ещё, можно создать стандартный период по варианту. Например, создадим стандартный период вчерашней даты.

ВариантСтандартногоПериода – системное перечисление, которое содержит разные варианты стандартного периода. Посмотреть на все значения этого перечисления можно в синтакс-помощнике (Системные перечисления – Разные – Варианта стандартного периода).

Созданную при помощи конструктора Новый переменную типа СтандартныйПериод, можно, как вариант, присвоить реквизиту формы такого же типа.

 Стандартный период 1С

Стандартный период 1С в СКД

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

У нас получится такой вот несложный запрос в наборе данных.

Стандартный период 1С в СКД

Со следующим набором параметров.

Стандартный период 1С в СКД

Если мы всё так и оставим, эти параметры у нас перейдут и в настройку.

Стандартный период 1С в СКД

И в форму отчета.

Стандартный период 1С в СКД

Возможно, вас такой вариант и устроит, а можно заменить эти даты стандартным периодом.

Для этого в схеме компоновки данных нужно создать параметр с типом СтандартныйПериод.

Стандартный период 1С в СКД

А в поле Выражение для параметров ДатаНачала и ДатаОкончания получать дату начала и дату окончания параметра с типом СтандартныйПериод:

А также, у параметров с датами необходимо установить флаги у поля Ограничение доступности, чтобы их не было видно на форме отчёта.

Стандартный период 1С в СКД

Чтобы поле Период отобразилось на форме отчёта, следует установить свойство Включать в пользовательские настройки соответствующему параметру на закладке Настройки.

Стандартный период 1С в СКД

Ну и также, не забудем выбрать поля у детальных записей.

Стандартный период 1С в СКД

После всех этих настроек, на форме отчета должно появиться поле Период, в котором можно выбрать разные варианты периодов.

Стандартный период 1С в СКД

Программировать в 1С за 11 шагов

  1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  2. Научитесь понимать архитектуру 1С;
  3. Станете писать код на языке 1С;
  4. Освоите основные приемы программирования;
  5. Закрепите полученные знания при помощи задачника

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

Основы разработки в 1С такси

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


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

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