1с разделить период на месяцы

Обновлено: 05.07.2024

создание периода в отчете
Все привет! Подскажите пожалуйста, как в отчете сделать выбор по периоду? от даты1 до даты2. не.

Вывод сумм в отчете ДДС не по неделям, а по дням периода
Здравствуйте! Помогите, пожалуйста, видоизменить отчет. Собственно об отчете: 1. Имеется отчет.

Период из запроса разбить на начало периода и конец периода
есть запрос "выбрать оборотыпродажи. период как период из продажиобороты " на выходе имеем.

Месяцы
Берем временной промежуток (10 лет) с 2010 по 2020 год Вопрос сколько в этом промежутке месяцев.

ikarus_283, какая у вас конфигурация? И выложите текст запроса, при выполнении которого получается ВыборкаПрямыеЗатраты. ikarus_283, очень много кода вывода в макет. Надеюсь, идею вы поймете и найдете, где/что изменить в коде: можно в запросе выставить в "параметрах виртуальной таблицы" периодичность - Запись, тогда появится поле Период в таблице. Выбрав это поле измените его на выражение - НачалоПериода(ХозрасчетныйОбороты.Период, МЕСЯЦ). Далее надо сделать итоги по этому полю.
Тогда при обходе выборки: сначала вы будете выбирать:
Здесь вы будете выводить шапку таблицы и обнулять все поля подсчета сумм, которые выводятся в таблице. Т.е. для каждой группировки по периоду(месяцу) у вас будет своя таблица.
Далее в цикле обхода этой выборки:
И здесь в обходе выборки циклом выводите строки таблицы с подсчетом сумм и т.п.

в этом коде столько условий что смотря на него, застрелиться хочется.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

года и месяцы
В общем у меня в задаче говорится за какое время арендаторы смогут выкупит квартиру при.

Дни и Месяцы
Подскажите пожалуйста, есть 2 даты, НачДата и КонДата, если дата с 1.03.14 по 15.03.14 - это будет.


Месяцы времени года
В меню выберается время года (например лето или зима) а в мемо выводятся месяцы соответствующие.

Времена года и месяцы
Написать программу, которая выводит на экран приглашение: «Введите месяц», вводит с клавиатуры.


1С 8.3 Разбить период по подпериодам (месяц, неделя, день, квартал)


Аналоги типовой функции РазложитьНаПериоды (запросом или через цикл). Методы использовались для разбиения периода в нетиповых решениях. Делят любой период (между начальной и конечной датой) по нужным отрезкам: месяц, неделя, день, квартал.

&НаСервере
Функция ЗапросомРазбитьПериодНаПодпериоды ( Знач НачДата , Знач КонДата )

// например НачДата 05.05.2021, КонДата 27.09.2021

Запрос = Новый Запрос ( "ВЫБРАТЬ
| НАЧАЛОПЕРИОДА(&НачДата, МЕСЯЦ) КАК Период
|ИТОГИ ПО
| Период ПЕРИОДАМИ(МЕСЯЦ, &НачДата, &КонДата)" );

Запрос . УстановитьПараметр ( "НачДата" , НачДата );
Запрос . УстановитьПараметр ( "КонДата" , КонДата );

РезультатЗапроса = Запрос . Выполнить ();
Если Не РезультатЗапроса . Пустой () Тогда // Такая проверка рекомендуется фирмой 1С
Записи = РезультатЗапроса . Выбрать ( ОбходРезультатаЗапроса . ПоГруппировкам , "Период" , "ВСЕ" );

// Обход результата запроса по каждой записи в полученной выборке
Пока Записи . Следующий () Цикл
Сообщить ( Записи . Период );
// 01.05.2021 0:00:00
// 01.06.2021 0:00:00
// 01.07.2021 0:00:00
// 01.08.2021 0:00:00
// 01.09.2021 0:00:00

//Год_Даты = СокрЛП(Год(Записи.Период)); // 2 021
//Месяц_Даты = СокрЛП(Месяц(Записи.Период)); // 9
//Сообщить(Год_Даты+" "+Месяц_Даты);
КонецЦикла;

Иначе // Например: Сообщить("Данные отсутствуют!");
КонецЕсли;

&НаСервере
Функция РазбитьПериодНаПодпериоды ( Знач НачДата , Знач КонДата , УровеньДетализации )

ТаблицаДат = Новый ТаблицаЗначений ;
ТаблицаДат . Колонки . Добавить ( "НачДата" );
ТаблицаДат . Колонки . Добавить ( "КонДата" );

ПервыйОбходЦикла = Истина;
Если УровеньДетализации = "День" Тогда


Пока НачДата <= КонДата Цикл
Если ПервыйОбходЦикла Тогда
Если КонецДня ( НачДата ) >= КонДата Тогда
НоваяСтрока = ТаблицаДат . Добавить ();
НоваяСтрока . НачДата = НачДата ;
НоваяСтрока . КонДата = КонДата ;
Прервать;
Иначе
НоваяСтрока = ТаблицаДат . Добавить ();
НоваяСтрока . НачДата = НачДата ;
НоваяСтрока . КонДата = КонецДня ( НачДата );
КонецЕсли;
Иначе
Если КонецДня ( НачДата ) >= КонДата Тогда
НоваяСтрока = ТаблицаДат . Добавить ();
НоваяСтрока . НачДата = НачалоДня ( НачДата );
НоваяСтрока . КонДата = КонДата ;
Прервать;
Иначе
НоваяСтрока = ТаблицаДат . Добавить ();
НоваяСтрока . НачДата = НачалоДня ( НачДата );
НоваяСтрока . КонДата = КонецДня ( НачДата );
КонецЕсли;
КонецЕсли;
НачДата = КонецДня ( НачДата )+ 1 ;
ПервыйОбходЦикла = Ложь;
КонецЦикла;

Пока НачДата <= КонДата Цикл
Если ПервыйОбходЦикла Тогда
Если КонецНедели ( НачДата ) >= КонДата Тогда
НоваяСтрока = ТаблицаДат . Добавить ();
НоваяСтрока . НачДата = НачДата ;
НоваяСтрока . КонДата = КонДата ;

Прервать;
Иначе
НоваяСтрока = ТаблицаДат . Добавить ();
НоваяСтрока . НачДата = НачДата ;
НоваяСтрока . КонДата = КонецНедели ( НачДата );
КонецЕсли;
Иначе
Если КонецНедели ( НачДата ) >= КонДата Тогда
НоваяСтрока = ТаблицаДат . Добавить ();
НоваяСтрока . НачДата = НачалоНедели ( НачДата );
НоваяСтрока . КонДата = КонДата ;
Прервать;
Иначе
НоваяСтрока = ТаблицаДат . Добавить ();
НоваяСтрока . НачДата = НачалоНедели ( НачДата );
НоваяСтрока . КонДата = КонецНедели ( НачДата );
КонецЕсли;
КонецЕсли;
НачДата = КонецНедели ( НачДата )+ 1 ;
ПервыйОбходЦикла = Ложь;
КонецЦикла;

В запросе задаем период отборки. Отчет на основании запроса. Как выводить в отчете период отборки?
В запросе задаем период отборки. Отчет на основании запроса. Как выводить в отчете период отборки.

Дата по рабочим дням в запросе
Добрый день. УТ 10 В документе Реализация добавлен реквизит.


Сортировка по дням рождения в запросе
Добрый день. SELECT DateSerial(Year(Date()), Month(), Day()) AS Дни, Сотрудники.ДеньРождения.

Уточните, что имеется в виду? "Монстро запрос" даже анализировать не хочется. есть период с 01.01.2013 по 04.04.2013, нужно чтобы в запросе вывелось 01.01.2013, 02.01.2013, 03.01.2013, 04.01.2013. к сожалению тоже не мой. А так задача состоит в том что строится отчет за период где по дням можно посмотреть занят номер или нет 1. Для конструкции ИТОГИ есть возможность указания доп. параметра ПЕРИОДАМИ.
2. В типовых конфигурациях есть регистр сведений РегламентированныйПроизводственныйКалендарь, можно выбирать дни из него. вар 1 (топор): в цикле загони в таблицу дни между границами, таблицу сунь в запрос;
вар 2 (по конкретным обстоятельствам): если по этим периодам будешь выбирать с оборотного регистра - можно указать переодичность в запросе у самого регистра (см.скрин);
вар 3.
" по дням можно посмотреть занят номер или нет" - уточни более детально, что делаешь запросом

Перекрестная таблица в СКД тут вот должно получиться то что в итоге. Вторая картинка

Добавлено через 11 часов 21 минуту

вот это результирующий запрос который у меня получился 1. Для конструкции ИТОГИ есть возможность указания доп. параметра ПЕРИОДАМИ.
2. В типовых конфигурациях есть регистр сведений РегламентированныйПроизводственныйКалендарь, можно выбирать дни из него. Joker_vad, Странно, что Вы не прислушались к верному совету. Если нужны дни, а РС.РегламентированныйПроизводственныйКалендарь отсутствует, создайте ТЗ с датами и включите в источники СКД Странно, что Вы не прислушались к верному совету. Если нужны дни, а РС.РегламентированныйПроизводственныйКалендарь отсутствует, создайте ТЗ с датами и включите в источники СКД честно не знаю как это сделать. В виртуальной таблице использовать итоги нельзя. А как еще это прикрутить понять не могу ЛЕВОЕ СОЕДИНЕНИЕ с датами по периоду День или ещё по какой - это по структуре данных уж соображать. ЕстьНАЛЛ и ВЫБОР КОГДА довершат дело.


Разбить период на подпериоды
Здравствуйте, столкнулся с такой проблемой, есть период с 1.10.16 по 31.10.16, он разбит в таблице.

Разбить некий временной период
Задача, подскажите в каком двигаться на майскле: Есть некий временной интервал t0, t1 : TIME.


Разбить период дат на заданные периоды
Добрый день всем! Задан период дат типа 01.01.2020 - 31.05.2020 Необходимо разбить его на.

Аналог типовой функции РазложитьНаПериоды(ДатаНачала = '00010101', ДатаОкончания = '00010101') , только релизовано на языке запросов. Не удалось найти готового решения, поэтому выкладываю запрос по разбиению периода на помесячные интервалы тут.

Обновление от 22/08/2012 - сокращен текст запроса, спасибо Mu_meson //infostart.me/profile/48163/

архив с текстом запроса и сохраненная версия для "Универсальной консоли отчетов"

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

(16) давайте я поясню свою мысль.

Предложенное вами решение без должного основания использует зависимости:
1) от наличия в составе конфигурации такого объекта как регистр сведений "РегламентированныйПроизводственныйКалендарь";
2) от его правильной заполненности на нужный период.
Если первая зависимость легко проверяется (при попытке использовать этот метод в конфигурации без календаря, вы просто получите ошибку), то вторая зависимость неприятнее. При частичной заполненности календаря вы получите ошибку в отчете, которую еще потребуется поискать.

Кроме того, используемый принцип совершенно зря перебирает все даты периода, когда из месяца требуется только одна запись. То есть работает в 30 раз медленнее возможного.

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

Кстати, если уж настаиваете на использовании календаря, могу предложить вот такой вариант из одного запроса:

Он короче и более универсальный - легко вид периода (день, месяц, год, квартал) поменять.

А вообще в свете вопроса (15) можно было бы и конкурс объявить на решение этой задачи без календаря.

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