помогите найти количество дней в месяце

Форум 1С: Одинэс.Ру

Найти!

помогите найти количество дней в месяце

Antidot
01.06.2009 - 08:37
мне нужно узнать сколько дней в месяце, за который формируется отчет, т.е. если за январь, то 31, если за февраль, то 28, или может быть есть для этого какая либо функция?
вообще сначала идет запрос по РегиструНакопления ОстаткиИОбороты с периодичностью = день, нужно после выполнения запроса еще найти и количество дней в месяце
К списку тем 1 > К списку форумов

Интересные темы

odines.ru
21.11.2024 - 22:50
Смотри также:
Печать на матричном принтере (рулонная бумага)
Консоль запросов проясните, господа
Закрытие 21 счета

Re: помогите найти количество дней в месяце

Uho
1 - 01.06.2009 - 08:59
День(КонецМесяца(Дата))

Re: помогите найти количество дней в месяце

Antidot
2 - 01.06.2009 - 09:10
пишет сообщение (преобразование к числу типа дата не может быть выполнено)

Re: помогите найти количество дней в месяце

Antidot
3 - 01.06.2009 - 09:18
отчет:
Макет = ОтчетОбъект.ПолучитьМакет("НулевыеОстатки");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОстаткиНоменклатурыОстаткиИОбороты.Номенклатура КАК Номенклатура,
| ПРЕДСТАВЛЕНИЕ(ОстаткиНоменклатурыОстаткиИОбороты.Номенклатура),
| ОстаткиНоменклатурыОстаткиИОбороты.Период КАК Период,
| 0 КАК КоличествоНулевыхДней,
| ОстаткиНоменклатурыОстаткиИОбороты.КоличествоКонечныйОстаток КАК Остаток
|ИЗ
| РегистрНакопления.ОстаткиНоменклатуры.ОстаткиИОбороты(&Нач, &Кон, День, ДвиженияИГраницыПериода, ) КАК ОстаткиНоменклатурыОстаткиИОбороты
|ИТОГИ
| СУММА(КоличествоНулевыхДней)
|ПО
| Номенклатура";
 
Запрос.УстановитьПараметр("Кон", Кон);
Запрос.УстановитьПараметр("Нач", Нач);
 
Результат = Запрос.Выполнить();
 
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьНоменклатура = Макет.ПолучитьОбласть("Номенклатура");
ОбластьПериод = Макет.ПолучитьОбласть("Период");
 
ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();
 
ВыборкаНоменклатура = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    КоличествоНулевыхДней=0;
    КоличествоДнейВМесяце = День(КонецМесяца(ВыборкаНоменклатура.Период));
    
Пока ВыборкаНоменклатура.Следующий() Цикл
 
ОбластьНоменклатура.Параметры.Заполнить(ВыборкаНоменклатура);
ТабДок.Вывести(ОбластьНоменклатура, ВыборкаНоменклатура.Уровень());
 
ВыборкаПериод = ВыборкаНоменклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        
Пока ВыборкаПериод.Следующий() Цикл
//посчитаем количество дней, когда товар был на складе
//вставка
Если ВыборкаПериод.Остаток =0 Тогда
КоличествоНулевыхДней=КоличествоНулевыхДней+1;
КонецЕсли;
//конец вставка
ОбластьПериод.Параметры.Заполнить(ВыборкаПериод);
ОбластьПериод.Параметры.КоличествоНулевыхДней=КоличествоНулевыхДней;
ТабДок.Вывести(ОбластьПериод, ВыборкаПериод.Уровень());
КонецЦикла;
//Сообщить(КоличествоНулевыхДней);
КонецЦикла;
 
ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Вывести(ОбластьПодвалТаблицы);
ТабДок.Вывести(ОбластьПодвал);
 
//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ
КонецПроцедуры

Re: помогите найти количество дней в месяце

Kras
4 - 01.06.2009 - 09:20
2-Antidot > Параметр Дата в функции КонецМесяца() должен иметь тип "Дата"

Re: помогите найти количество дней в месяце

Kras
5 - 01.06.2009 - 09:30
3-Antidot >
...
ВыборкаНоменклатура = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    КоличествоНулевыхДней=0;
    КоличествоДнейВМесяце = День(КонецМесяца(ВыборкаНоменклатура.Период));
...
 
Посмотри в отладчике, какое значение имеет "ВыборкаНоменклатура.Период" в этот момент?

Интересные темы

odines.ru
21.11.2024 - 22:50
Смотри также:
Простой вопрос по 8!!
Вылетает восьмерка, может кто знает как победить напасть.
Расчет ЕСН за прошлый период

Re: помогите найти количество дней в месяце

Antidot
6 - 01.06.2009 - 09:30
а он какого типа, строка получается чтоли?

Re: помогите найти количество дней в месяце

Antidot
7 - 01.06.2009 - 09:33
КоличествоДнейВМесяце = День(КонецМесяца(Дата(ВыборкаНоменклатура.Период)));
тоже самое пишет

Re: помогите найти количество дней в месяце

Kras
8 - 01.06.2009 - 09:34
6-Antidot > а ты посмотри, посмотри... :))))
Там никакого значение быть не может... как ты думаешь, почему?

Re: помогите найти количество дней в месяце

Kras
9 - 01.06.2009 - 09:35
7-Antidot > блин, тебе отладчик в руки для чего дали? :(

Re: помогите найти количество дней в месяце

Antidot
10 - 01.06.2009 - 09:36
Тип значения пишется Неопределено

Re: помогите найти количество дней в месяце

Antidot
11 - 01.06.2009 - 09:38
блин, ну получается потому что мы не спозиционировались методом Следующий(), но а если это начать делать в цикле, то как это получится?

Re: помогите найти количество дней в месяце

Kras
12 - 01.06.2009 - 09:46
11-Antidot > у тебя в период только один месяц попадает?
Если нет, сделай группировку по месяцам.

Re: помогите найти количество дней в месяце

Antidot
13 - 01.06.2009 - 09:49
отчет формируется за месяц.
 

Re: помогите найти количество дней в месяце

Kras
14 - 01.06.2009 - 09:52
13-Antidot > Тады
...
КоличествоДнейВМесяце = День(КонецМесяца(Кон));
...

Re: помогите найти количество дней в месяце

Antidot
15 - 01.06.2009 - 09:58
а где эту строку добавить? я уже везде пробовал,все равно ошибка черт возьми :-( а вообще есть один недостаток в этом - если даты будут оставаться не заполненными, то будет ошибка

Re: помогите найти количество дней в месяце

Kras
16 - 01.06.2009 - 10:00
15-Antidot > если даты будут оставаться не заполненными
 
А ты говоришь, что только один месяц...
Если даты будут незаполеными, это уже не один месяц получается...

Re: помогите найти количество дней в месяце

Antidot
17 - 01.06.2009 - 10:03
согласен, ну просто если это писать, что нужно еще и обработку незаполненных полей делать, но все же, ничего не пойму, пишу просто : Сообщить(Кон);, уже где только не писал, выдает ошибку, кон то должен иметь значение

Re: помогите найти количество дней в месяце

Kras
18 - 01.06.2009 - 10:06
17-Antidot > как тогда ты уствнавливаешь параметр запроса в строке
...
Запрос.УстановитьПараметр("Кон", Кон);
...
????
Кон - это значение типа "Дата"

Re: помогите найти количество дней в месяце

Kras
19 - 01.06.2009 - 10:09
(+18) проверь буквы русские/английские

Re: помогите найти количество дней в месяце

Antidot
20 - 01.06.2009 - 10:20
извиняюсь, все получилось, но в отчет не выходит строка:
правильно ли я накатал:
Пока ВыборкаНоменклатура.Следующий() Цикл
 

ОбластьНоменклатура.Параметры.Заполнить(ВыборкаНоменклатура);
ТабДок.Вывести(ОбластьНоменклатура, ВыборкаНоменклатура.Уровень());
 
ВыборкаПериод = ВыборкаНоменклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
 
Пока ВыборкаПериод.Следующий() Цикл
//посчитаем количество дней, когда товар был на складе
//вставка
 

Если ВыборкаПериод.Остаток > 0 Тогда
Кол=ВыборкаПериод.КоличествоНулевыхДней+1;
   КонецЕсли;
КоличествоНулевыхДней = КоличествоДнейВМесяце-Кол;;
//конец вставка
ОбластьПериод.Параметры.Заполнить(ВыборкаПериод);
//ОбластьПериод.Параметры.КоличествоНулевыхДней=КоличествоНулевыхДней;
ТабДок.Вывести(ОбластьПериод, ВыборкаПериод.Уровень());
КонецЦикла;
 
КонецЦикла;
вот в отладчике все нормально, но почему то в отчет не выходит КоличествоНулевыхДней

Re: помогите найти количество дней в месяце

Antidot
21 - 01.06.2009 - 10:21
отчет должен вывести номенклатуру и количество дней, когда товара было = 0 в регистре накопления

Re: помогите найти количество дней в месяце

Kras
22 - 01.06.2009 - 10:22
20-Antidot >
Потому что у тебя эта строка закоментирована ;))))

Re: помогите найти количество дней в месяце

Antidot
23 - 01.06.2009 - 22:04
Если эту строку не закомментировать, то отчет выводит эти дни, но, не в том месте где нужно, т.е. примерно так получается:
-"Стойка"
           30
           30
-"Аммортизатор"
           30
           30
 
А хотелось бы так:
Стойка    30
Аммортизатор 30

Re: помогите найти количество дней в месяце

МимохожийОднако
24 - 02.06.2009 - 03:49
Группировка нужна

Re: помогите найти количество дней в месяце

Lexusss
25 - 02.06.2009 - 05:16
Бредовый отчет бредово сделан. Все это получается одним запросом без всякой обработки в тексте.
Вешается в качестве одной из настроек консоли отчетов.
Что то наподобии писал в посте 14
https://odines.ru/thread1621.html#2357789

Re: помогите найти количество дней в месяце

J_Silver
26 - 02.06.2009 - 20:59
Функция в запросе РАЗНОСТЬДАТ поможет. Кидай туда параметрами началомесяца и конецмесяца.
К списку тем 1 > К списку форумов

Добавить новое сообщение

Ваше имя:
Тема сообщения:
Сообщение:
« Перенос справочников Туплю со штрихкодом. »
© 2009 Форум 1С: Одинэс.Ру