Имя: Пароль:
1C
1С v8
Месяцы в периоде
0 Andrey2C
 
01.09.15
13:15
Здравствуйте. Подскажите,пожалуйста, как можно реализовать следующее. Задаем период допустим с 01.06.2015 по 31.08.2015 и в результате получаем записи вида:
Июнь 2015
Июль 2015
Август 2015
Форматировать период понятно как:
Формат(Период, "ДФ='ММММ гггг'");
А как это сделать за те месяцы которые входят в период?

Заранее благодарен за ответы.
1 Брегорьян
 
01.09.15
13:15
чо?
2 Джинн
 
01.09.15
13:16
ВЫБРАТЬ РАЗЛИЧНЫЕ
НАЧАЛОПЕРИОДА(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, МЕСЯЦ) КАК Период
    ИЗ
РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
3 ДенисЧ
 
01.09.15
13:16
картинка_с_британским_летчиком.пнг

что за запрос? где получаем?
Выражовывайтесь яснее...
4 Джинн
 
01.09.15
13:17
(2) + Ну и условие на вхождение даты в период
5 itlikbez
 
01.09.15
13:17
(0) Добавляй по одному месяцу к началу и выводи, пока не выведешь последний.
6 Andrey2C
 
01.09.15
13:53
(3) 2 поля на форме. В 1 поле начало периода, а во втором конец. И в цикле хочу получить все входящие в период месяцы. (5) Добавлять количество дней чтоли? Просто в каждом месяце количество дней разное.
7 Брегорьян
 
01.09.15
13:54
(6) добавляй месяц
8 Kondarat
 
01.09.15
14:06
ТекстЗапроса = "ВЫБРАТЬ
    |    НАЧАЛОПЕРИОДА(&НачалоПериода, МЕСЯЦ) КАК Период
    |ИТОГИ ПО
    |    Период ПЕРИОДАМИ(МЕСЯЦ, &НачалоПериода, &КонецПериода)";
    
    Запрос = Новый Запрос(ТекстЗапроса);
    Запрос.УстановитьПараметр("НачалоПериода",НачПериода);
    Запрос.УстановитьПараметр("КонецПериода",КонПериода);
    Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Период","Все");
    Пока Выборка.Следующий() Цикл
        Сообщить("Период = " + Выборка.Период);
    КонецЦикла;
9 itlikbez
 
01.09.15
14:14
(6) Добавлять надо секунду.

КонецМесяца(текдата)+1;
10 Andrey2C
 
01.09.15
14:22
(4) Спасибо сделал так:    ЗапросПоМесяцам = Новый Запрос;
                    ЗапросПоМесяцам.Текст =
                    "ВЫБРАТЬ РАЗЛИЧНЫЕ
                    |НАЧАЛОПЕРИОДА(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, МЕСЯЦ) КАК Период
                    | ИЗ
                    |РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
                    |ГДЕ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря >= &ДатаНачала
                    |И   РегламентированныйПроизводственныйКалендарь.ДатаКалендаря <= &ДатаКонца";
                    ЗапросПоМесяцам.УстановитьПараметр("ДатаНачала",ДатаНачала);
                    ЗапросПоМесяцам.УстановитьПараметр("ДатаКонца",ДатаКонца);
                    ВыборкаПоМесяцам = ЗапросПоМесяцам.Выполнить().Выбрать();
                    
                    Пока ВыборкаПоМесяцам.Следующий() Цикл
                         Сообщить(ВыборкаПоМесяцам.Период);
                    КонецЦикла; (8) Хотя и так тоже можно. Всем спасибо за ответы! Способов много короче. Чет сам не сообразил)
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn