Алгоритм: перебор месяцев в периоде #649156


#0 by extrim-style
Подскажите грамотный перебор месяцев в периоде. Начало перебора от начала периода, конец перебора - конец периода.
#1 by salvator
Для Сч=Месяц(ДатаНач) По Месяц(ДатаКон) Цикл
#2 by Maxus43
перебор где? зачем? задачу огласи, там ясней будет
#3 by Maxus43
года разные могут быть
#4 by salvator
Но тут возникает загвоздка, если даты в разных годах. В любом случае, каков вопрос - таков ответ ))
#5 by extrim-style
перебор помесячно
#6 by pessok
Для А = 0 По Месяцев Цикл
#7 by Maxus43
тоже :)
#8 by фросия
если там больше 12 мес- не по получится
#9 by extrim-style
не катит. см
#10 by c00Lo
Год(Дата1)*12 + Месяц(Дата1) по Год(Дата2)*12 + Месяц(Дата2)
#11 by Maxus43
#12 by Jstunner
Засунуть в запрос, добавить условия, сделать итоги по НАЧАЛОПЕРИОДА
#13 by Ayvengo
#14 by extrim-style
без запроса
#15 by Jstunner
почему?
#16 by extrim-style
потому
#17 by Jstunner
успехов
#18 by extrim-style
ну я изначально накатал сходу нечто похожее, но что-то мне кажется, что это попахивает г-кодом:
#19 by c00Lo
А в запрос что засовывать?))
#20 by Maxus43
норм впринципе, если работает. пока нет ответа на вопрос - нечего думать дальше
#21 by extrim-style
сразу не веришь? обосновывать обязательно?
#22 by c00Lo
А зачем перебор месяцев? колоночки чтоль сделать по месяцам?))
#23 by GROOVY
#24 by extrim-style
мне не интересно как повернуть задачу по-другому (этого и нельзя сделать). весь вопрос в
#25 by Ayvengo
Мой фэншуй говорит, что условие лучше сделать так: Хотя работать и так и так будет ;) КонечнаяДата = ДобавитьМесяц(КонечнаяДата); - тут цифры не хватает, смотри СП ДобавитьМесяц
#26 by Maxus43
значит норм всё у тебя, вон даже одобряет
#27 by extrim-style
а где выбор от начала периода по конец месяца, потом помесячно, и потом от начала последнего месяца до конца периода?
#28 by Ayvengo
мужиГ, ты уж додумай, идею то подбросили ;)
#29 by extrim-style
вся соль вопроса в и есть ощущение, что можно переписать покороче
#30 by GROOVY
Перебор месяцев в периоде это означает перебрать месяца в периоде: Январь, февраль, март и пр... Что такое "от начала последнего месяца до конца периода"?
#31 by extrim-style
период: 10.11.12 - 05.02.13. помесячно: 10.11.12 - 30.11.12, 01.12.12 - 31.12.12, 01.01.13-31.01.13, 01.02.13 - 05.02.13
#32 by Ayvengo
#33 by Ayvengo
Ну, видимо тебе еще нужно будет СовсемКонецПериода = КонецМесяца(КонецПериода) :D
#34 by extrim-style
мне нужно между НачалоПериода и КонецПериода, а не между НачалоМесяца(НачалоПериода) и КонецМесяца(КонецПериода)
#35 by Ayvengo
видимо мозг у Вас совсем не хочет работать :P
#36 by extrim-style
может и не хочет, сегодня же пятница. А что, я чёто не увидел в ?
#37 by extrim-style
неужели только у меня ощущение, что - это г-код?
#38 by Ayvengo
Добавь еще переменную КонецМесяцаНачалаПериода и условие на то, что КонецПериода > КонецМесяцаНачалаПериода. Думаю, что еще кучу вариантов придумать можно ;) Пятница - мозгоразжижайница О_О
#39 by extrim-style
оно и заметно)
#40 by hhhh
ну сделай как в   груви советует.
#41 by acsent
человеку просто за количество строк платят
#42 by extrim-style
было бы странно создавать сабж, если мне платят за количество строк...
#43 by extrim-style
там нет ответа на и
#44 by extrim-style
Так пойдет?
#45 by Ayvengo
#46 by Ayvengo
тьфу, ток в цикле < НачалоМесяца(КонецПериода)
#47 by extrim-style
неправильно, начальная дата должна в начало месяца становиться
#48 by Ayvengo
даже, если выбрано 5 января, тебе всегда нужно 1 января? Ну это ты и сам доработаешь ;)
#49 by extrim-style
#50 by extrim-style
я имел ввиду начало следующего месяца
#51 by Ayvengo
В цикле условие лучше по началу месяца для обоих значений делай, иначе что-нибудь да накосячится ;)
#52 by Ayvengo
кстати, КД = НачалоПериода - это верно?
#53 by extrim-style
именно так и писал, сейчас проверю обработкой
#54 by extrim-style
чёт неправильно
#55 by Ayvengo
отладчик в руки и тыц-тыц, танцы с бубном :)
#56 by extrim-style
угу. я уже бубню)
#57 by hhhh
ну вот если бы ты голову включил, то уже бы до было
#58 by extrim-style
у тебя первый месяц неправильно хочу, чтобы в осталось одно //действие
#59 by extrim-style
Апну. что-то не получается...
#60 by extrim-style
Переписал. Вроде работает. Но выглядит стрёмно.
#61 by extrim-style
+ не работает, если период 1 месяц
#62 by extrim-style
Все сдались? лузеры)
#63 by Рыцарь
Все домой ушли))
#64 by extrim-style
просто нужно признать, что задачка оказалась не по зубам)...
#65 by Goggy
А какая ваще задача решалась таким способом?
#66 by rphosts
задача скучная, ТС нормально не может сформулировать что ему нужно... да кому интересно при таком раскладе личное время тратить да ещё и в пятницу...
#67 by Goggy
+ может ваще можно было бы всё просто методом ВыборкаПериод = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Период", "ВСЕ"); решить и не париться?
#68 by extrim-style
Переформулирую. Есть период: 10.11.12 - 05.02.13. Необходимо в цикле пройти его помесячно. Для первого месяца начальная дата (НД) - начало периода, для последнего месяца конечная дата (КД) - конец периода: 10.11.12 - 30.11.12, 01.12.12 - 31.12.12, 01.01.13-31.01.13, 01.02.13 - 05.02.13. "Сообщить(""+НД+" - "+КД)" должно быть только 1 раз в цикле.
#69 by GROOVY
Издеваешься? Тебе что не написать гомнокод на 7 строк? 4 часа обсуждать на форуме...
#70 by extrim-style
не издеваюсь. чёт никак... буду признателен помощи
#71 by ЗлобнийМальчик
скажите, а Вы школу закончили???
#72 by extrim-style
возможно затупил. вот так случилось. школу закончил. буду признателен помощи.
#73 by extrim-style
вот. наваял еще г-код. зато с одним "Сообщить":
#74 by extrim-style
+ работает)
#75 by extrim-style
#76 by mistеr
Хочется, чтобы коротко и красиво? Ну вот: P.S. Не проверял. P.P.S. Количество строк Павел определил мастерски :)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С