Количество рабочих дней, календарных , между двумя датами в запросе #735905


#0 by СвинТуз
Обычная задача. Есть дата отгрузки. Есть число дней отсрочки. Рабочих. Как в запросе определить дату начала просрочки?
#1 by СвинТуз
праздники можно игнорировать
#2 by tixis
регалментированныйпроизводственныйкалендарь есть в конфе?
#3 by yavasya
регламентированный производствееный календарь
#4 by СвинТуз
нет
#5 by yavasya
или свой календарь напиши
#6 by vicof
Производственный календарь берем и отбираем рабочие и предпраздничные даты. Потом складываем. Соединяем с таблицей дат отгрузок. ПРофит.
#7 by tixis
что за конфа?
#8 by PR
Красиво никак. Потому что рабочих дней может быть пару дней в году, то есть непонятно, за какой период брать производственный календарь. Если некрасиво, то брать с запасом, например, дней в два раз больше + 30, чем по календарю.
#9 by Злопчинский
Извините за нескромный вопрос ламера... если в запросе надо определить дату начала просрочки - то нафига это делать в запросе? если это тупо никак не связано с выборкой и фильтрацией данных...
#10 by Злопчинский
а с учетом того что острочки могут быть такие что отсрочка уже есть, а произв.календарь еще постановлением правительства не утвержден
#11 by СвинТуз
вот думаю ) как раз с календарем можно и праздники учитывать хочу ... нужно тупо выкинуть 6-ки и 7-ки если отсрочка делится на 7 без остатка на самом деле все прозаично. хуже если от деления есть остаток
#12 by vicof
Ничо не прозаично. А если семерка - рабочий день, выпавший на вс?
#13 by СвинТуз
на самом деле таким путем получить дату начала просрочки тоже не легко ...
#14 by PR
Если только 6 и 7, то проще, но логика на самом деле та же
#15 by СвинТуз
да уже работает
#16 by and2
ВЫБРАТЬ ПЕРВЫЕ 22     ДанныеПроизводственногоКалендаря.Дата ИЗ     РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДанныеПроизводственногоКалендаря
#17 by PR
+ Только брать тогда не производственный календарь, а определять дни недели в интервале от и до.
#18 by PR
А если отсрочка 30 дней? А если реализация 29 декабря?
#19 by СвинТуз
не думаю что это то вам нужно дату подвинуть например на 14 дней
#20 by СвинТуз
получить то число рабочих между двумя датами просто а вот подвинуть будет сложнее
#21 by and2
вот если отсрочка 1.5 года - то возможна проблема. организационная
#22 by and2
тогда, как нормальные пацаны, пиши дату отсрочки в БД
#23 by PR
Кстати, да, это вернее всего, если не страдать фигней
#24 by kumena
напоминает задачу на спеца по бухучету. >> Красиво никак. ошибаешься рома, есть красивый способ. сдвиг легко делается в запросе, надо только голову приложить.
#25 by kumena
+24 решается через производственный календарь
#26 by kumena
программист, умеющий писать такой запрос на какую зарплату тянет по твоему?
#27 by Biker
В ут 11 сделано так, раб дни пронумерованы, прибавляешь к номеру даты отгрузки кол-во дней отсрочки и  ищешь по полученному номеру дату.
#28 by kumena
браво!
#29 by kumena
до такой идеи я сам дошел, когда была необходимость, УТ я не занимаюсь совсем.
#30 by kumena
но ты зря написал, испортил интригу )))
#31 by СвинТуз
не совсем понял ) а если год сменяется? спс подумаю )
#32 by СвинТуз
нумерация видимо в календаре?
#33 by PR
Что делать с датой 29 декабря и отсрочкой 40 жней?
#34 by PR
+ дней
#35 by Biker
ну да, рег свед там по каждому году календарь если год меняется делай проверку суммы на макс номер  раб дней.
#36 by Biker
и тебе испортил интригу
#37 by PR
В запросе делай проверку? А если отсрочка 3000 дней? А если 300000 дней? А если производственный календарь не заполнен? Что-то красоты не очень наблюдается.
#38 by СвинТуз
проще начать календарь , например, с 2010 и считать сплошняком для торговли так можно сделать
#39 by PR
Красивее с 0 года тогда уж
#40 by PR
А номер даты отгрузки как определяется? В два захода что ли делается получается?
#41 by СвинТуз
а если прогнать до 2100 то можно не париться с заполнением самописка два видимо но это проще чем выбором работать
#42 by Biker
все делал через вложеный запрос к регистру ничего вернет , значит календарь не заполнен, о чем и сообщается юзеру.
#43 by СвинТуз
долго не будет к тому времени когда дойдет в запросе до просрочки таблица сильно в размерах ужмется
#44 by Biker
это производственный календарь , у нас выходные правительство любит двигать.
#45 by СвинТуз
а вообще прикольно качаю торговлю 11 загляну
#46 by СвинТуз
это лучше чем ничего )))
#47 by СвинТуз
сейчас вообще отбрасывают только 6-ки и 7-ки причем это делается в цикле а если в СКД нужно будет загнать? ) нужно наращивать систему спс за идею
#48 by Biker
это как-то крива , грузи календарь отсюда хотя-бы В скд загоняй - разрешаю.
#49 by PR
6 и 7 можно в запросе посчитать через день недели.
#50 by СвинТуз
я и посчитал только когда сдвижка не кратная 7 как мозги прогреваться стали
#51 by ssh2006
Пример запроса по нумерации рабочих дней производственного календаря, интервал три года. ГДЕ     Календарь.ДатаКалендаря МЕЖДУ НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(&ТекущаяДата, ГОД, -1), ГОД) И КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&ТекущаяДата, ГОД, 1), ГОД) ;
#52 by СвинТуз
не правильно это так прогу напрягать
#53 by PR
Если день недели даты отгрузки + остаток от деления отсрочки на 7 <= 5, то прибавляем остаток от деления отсрочки на 7, иначе остаток от деления отсрочки на 7 + 2
#54 by СвинТуз
ну смотри сначала нужно проверить куда стартовая попала так? потом добавить целое от деления *2 потом сдвинуть тоже не очень красиво то что получалось в три приема меня и тормознуло
#55 by СвинТуз
хотя можно первый опустить ? )
#56 by PR
Еще раз. Берем Цел(отсрочка / 7) * 5, прибавляем . Всё.
#57 by kumena
>> А если отсрочка 3000 дней? А если 300000 дней? А если производственный календарь не заполнен? облажался что можно сделать так признайся. 8 или 82 года это не нормальные отсрочки?
#58 by kumena
бывают еще праздники, и переносы выходных, так это что лажа.
#59 by kumena
+57 для сроков более года прописывают конкретные даты, т.к. количество рабочих дней там не предсказуемо, ввиду изменения производственного календаря. а до года способ через календарь самое то.
#60 by PR
Еще раз. Я говорю про то, что красоты не получается.
#61 by PR
Что значит лажа? Это вариант исключительно для случая с исключением 6 и 7.
#62 by PR
Отсрочка 40 дней и дата 28 декабря, будут прописывать конкретную дату?
#63 by tixis
красиво получается, пример решение задачи на спеца по бух
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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