#0
by tciban
Уважаемые коллеги! подскажите как в запросе получить новую дату путем прибавления к ней некоторого количества рабочих дней! Суть проблемы проста как мир - есть документы отгрузки (с датами :)), в документах есть договор, в договоре - поле отсрочки в рабочих днях. Есть Регламентированный Производственный Календарь. Нужно получить в отчете СКД даты истечения отсрочки. Буду благодарен за пример кода или ссылку на оный!
#4
by tciban
Люди накрученные запросы пишут, по пять виртуалных таблиц вычисляют , а у вас так просто - поставить условия да и все. Что то я видно не понимаю ни в запросах ни в программировании вовсе. Не предоставите ли любезно образчик запроса?
#6
by SSSSS_AAAAA
В запросах нормальные люди ничего к специфическим датам, Дкоими, в частности, являются и рабочие, не прибавляют. Жаты вообще не вычисляют, а используют таблицы с календарями, на которые и накладывают нужные условия.
#7
by FIXXXL
мож проще при проведении документа эту дату писать в свой регистр? и его цеплять в запрос в договоре срок отсрочки менять ведь нельзя?
#9
by tciban
Ох-хо-хо... Это ж еще надо скачать и установить erp! А я для УПП 1.2 делаю :( Можно вас попросить любезно скинуть мне на почту текст помянутого вами метода?
#10
by FIXXXL
ну сваргань таблицу, обсчитай и сунь ее в набор данных СКД или временную в запрос, в СКД уже финальную таблицу
#11
by svsvsv
В УПП 1.3 (может и в УПП 1.2 тоже) есть такой регистр - РегламентированныйПроивзодственныйКалендарь. ВЫБРАТЬ ПЕРВЫЕ 5 //ЗДЕСЬ НУЖНО ПОСТАВИТЬ КОЛ-ВО ДНЕЙ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК ДатаКалендаря ИЗ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь Как то так.
#15
by kumena
технология вообще такая, нужно сделать таблицу с пронумерованными днями. сделав соединение по дате узнаем номер дня, а к номеру дня прибавим количество дней и узнаем нужный день.
#24
by FIXXXL
в каждой строке отчета Дата и Число из таблицы с рабочими днями надо выдернуть начиная с Дата столько строк с "1", сколько в Число и потом просуммировать "1" наверное можно в запросе, но в пятницу неохота думать :)
#32
by svsvsv
В последней таблице надо не РАЗНОСТЬДАТ использовать, нужно более сложный запрос писать, сейчас пока не твремени
#36
by ELEA26
праздники надо учитывать или нет? От этого зависит - только производственный календарь или можно без него.
#38
by tciban
Все классно, заработало! Правда не очень быстро... Исходный запрос, в котором получаю документы возникновения долга, выполняется за 1 183 мс, а с расчетом дат - 170 474 мс :(
#39
by Ildarovich
Посмотрите статью . В ней похожая задача и достаточно экономный по времени метод прибавления рабочих дней, а также ссылки на множество других публикаций по тому же вопросу. Проблема запроса в в том, что неэкономные соединения делаются для всех заданных дат, а нужно, как уже говорилось в и как сделано в статье по ссылке, сначала получить единую таблицу пронумерованных подряд рабочих дней, а затем работать уже с ней - находить по заданной дате номер рабочего дня, прибавлять к этому номеру число дней отсрочки и по прибавленному номеру находить обратно искомую дату. В итоге время работы запроса должно очень сильно сократиться из-за однократности использования тэта-соединения.
#40
by tciban
Это был первый вариант, но при отгрузке в нерабочие дни он не рассчитывает даты. Кстати, документы я получаю по вашему алгоритму из Огромное вам за него спасибо!!!
#41
by tciban
Кстати, померял в консоле запросов оба варианта на выборке документов с начала декабря - получилось что у SoulPower быстрее чем алгоритм Игронова
#42
by tciban
Сергей! Раз уж Вы заглянули сюда - вопросик по Вашему алгоритму - почему резко увеличивается время выполнения когда добавляю в настройках СКД группировку по Контрагент.ОсновнойМенеджерПокупателя с иерархией? Так и должно быть или же есть способ, что бы работало быстрее?
#43
by Fragster
В новых БСП в этом РС есть хорошее измерение РабочихДнейСНачалаГода или как-то так... тогда не надо считать сумму, а можно просто прибавить нужное количество (ну, и немного поизвращаться с переходом через границу года)
#46
by Fragster
может я пропустил, но где в этой ветке указание на то, какая версия БСП, или хотя бы какая версия типового решения используется?
#48
by Fragster
а, нашел. ну, тогда только суммировать. но я бы не в два раза больше запас делал, а в 15 дней на каждый год + 2 на каждую неделю.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Перенос данных из ЗиК 2.3 в ЗУП 3.1 нет данных НДФЛ
- Разная выборка полей в СКД под разные пользователи
- Магия обмена 1с...
- ЗУП 3 Начисление зарплаты отображение подвала табличных частей
- ЗУП3.0/ERP Где указывается минимальный размер пособия по уходу за ребёнком?
- v7: Подскажите аналог MS Agent (анимированные персонажи) для новых версий Windows
- Куда спрятали "Временную блокировку" в УТ 11?
- SetCredentials через HTTPСоединение
- Выполнение внешней обработки в фоновом режиме
- 1с УПП, районный коэффициент, уральский районный коэффициент
- Зазеркалье: Режим агента конфигуратора (конфигуратор через ssh)
- Как правильно сделать сообщение пользователю для таблицы значений на форме?
- Macbook Pro с английской клавиатурой - что сделать для работы на русском
- Не могу авторизоваться на почтовом сервере по SSL/TLS
- 8.3 + remoteapp. Проблема масштабирования окна
- ПолучитьНавигационнуюСсылку СКД 1С 8.3
- Отчет на СКД в новой форме
- Обмен. "Неправильный формат сообщения" в момент ЗакончитьЧтение
- v7: присвоение значения реквизиту документа при проведении
- Как откорректировать Активный счет(41) на пассивный?