1с рабочие дни в запросе

Добавить к дате рабочие дни (Запрос)

Специальные предложения

1с рабочие дни в запросе

1с рабочие дни в запросе

1с рабочие дни в запросе

1с рабочие дни в запросе

1с рабочие дни в запросе

1с рабочие дни в запросе

1с рабочие дни в запросе

1с рабочие дни в запросе

А вот так не проще?
ВЫБРАТЬ МАКСИМУМ(ТребуемаяДата)
ИЗ (
ВЫБРАТЬ ПЕРВЫЕ 5
ДанныеПроизводственногоКалендаря.Дата КАК ТребуемаяДата
ИЗ
РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДанныеПроизводственногоКалендаря
ГДЕ
ДанныеПроизводственногоКалендаря.ПроизводственныйКалендарь.Код = «РФ»
И ДанныеПроизводственногоКалендаря.ВидДня В (ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий), ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный))
И ДанныеПроизводственногоКалендаря.Дата > &ТекущаяДата

УПОРЯДОЧИТЬ ПО
Дата
) КАК РабочиеДаты

Обновление 21.06.18 10:30

1с рабочие дни в запросе

См. также

Аналог PIVOT в запросе 1С (как выполнить транспонирование таблицы в запросе 1С) Промо

В статье показывается простой метод реализации аналога оператора PIVOT в запросе 1С без использования соединений.

12.12.2020 4233 Eugen-S 23

Инкремент, модуль и прочая магия, которая скрыта под символом «?»

21.10.2021 6687 SeiOkami 38

Полезные примеры СКД, ч.2

Еще несколько примеров решения задач в СКД.

06.04.2021 10379 Neti 8

Обзор полезных методов БСП 3.1.4

25.03.2021 38920 rayastar 51

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016 85424 Serginio 115

Звуковое управление в 1С 8.3

В данной статье описано создание библиотеки для звукового управления (выполнение команд голосом) для платформы 1С 8.3. Задача была поставлена так, чтобы модуль функционировал непосредственно на клиенте 1С, осуществляя управление формами, и взаимодействовал с интерфейсом.

16.03.2021 7039 velemir 33

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions

28.12.2020 8744 comol 31

Базовые вещи БСП, которые облегчат жизнь программисту 1С

В данной публикации я опишу полезные процедуры и функции модуля общего назначения библиотеки стандартных подсистем, обязательные к использованию любым программистом 1С.

30.08.2020 19821 quazare 34

Использование программных перечислений, ч.1: строковые константы Промо

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016 41005 unichkin 74

Форма выбора (подбор) в управляемых формах

Разбор небольших примеров того, как правильно открывать форму выбора (подбора) в управляемых формах, не прибегая к модальным окнам.

08.05.2020 75403 user5300 19

Программная работа с настройками СКД

Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.

27.01.2020 64316 ids79 26

[СКД] Программное создание схемы компоновки данных

Сделаем отчет на СКД полностью программно, без использования макета «схема компоновки данных».

15.01.2020 43011 John_d 22

Вспомогательные инструкции в коде 1С Промо

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018 35972 tormozit 106

Последовательности событий при проведении документа 1С. Шпаргалка + про формы + про расширения

Собрал информацию о событиях/подписках/расширениях в одном месте.

30.12.2019 34635 kuzyara 38

25.12.2019 8376 brooho 19

Полезные процедуры и функции для программиста

Все мы пишем программный код и часто используем процедуры, облегчающие его написание. Ниже приведена выборка таких полезных процедур и функций.

07.10.2019 39387 HostHost 41

Оформление и рефакторинг сложных логических выражений Промо

В сложных логических выражениях нередко самому автору спустя какое-то время тяжело разобраться, не говоря уже о других программистах. Предлагаемая методика позволяет повысить наглядность таких выражений путем оформления в виде И-ИЛИ дерева и одновременно выполнять их рефакторинг.

20.09.2012 82735 tormozit 131

Таблица значений. Нюансы

Обзор некоторых аспектов использования общеизвестного инструмента 1С.

01.10.2019 52404 Yashazz 56

[Шпаргалка] Программное создание элементов формы

Программное создание практически всех популярных элементов формы.

06.09.2019 100144 rpgshnik 75

Агрегатные функции СКД, о которых мало кто знает

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019 76667 ids79 56

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

Иногда возникает необходимость после записи значения в какое либо поле ввода/формы вызвать для него обработчик события ПриИзменении, а о вызове самого события приходится только мечтать. В этой статье приводится программный способ вызова этого события.

11.07.2007 54225 tormozit 51

Регистры бухгалтерии. Общая информация

Общая информация о внутреннем устройстве регистров бухгалтерии.

05.09.2019 46005 YPermitin 25

Три костыля. Сказ про фокусы в коде

Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.

03.09.2019 30084 YPermitin 81

Иерархия без «В ИЕРАРХИИ»

Говорится о том, как эффективно представлять иерархию в СУБД, как получать и использовать эти представления при решении задач в запросной технике. Уточняются и дополняются запросы из статьи «Уровни, глубина, прародители, циклы и аналоги запросом» [https://infostart.ru/public/160707/].

22.08.2019 14943 ildarovich 24

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

10.09.2017 51005 tormozit 74

Отслеживание выполнения фонового задания

Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

17.08.2019 44812 ids79 22

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019 149485 ids79 75

Как легко запускать выполнение в фоне, не прибегая к долгому описанию фоновых процедур.

02.08.2019 59893 avalakh 26

Выгрузка документа по условию Промо

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий. А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019 17954 m-rv 3

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019 104061 ids79 16

Обработчики событий при записи объектов. Зачем и что за чем?

Программисту, имеющему немного опыта на платформе 1С 8.3, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта. Эта шпаргалка была создана в процессе обучения и реального опыта с целью разложить всё по полочкам, чтобы было четкое понимание в каком случае какой обработчик нужно использовать и в какой последовательности они запускаются при записи и проведении документов. Данная статья будет полезна в большей степени начинающим разработчикам. Но и опытным позволит освежить информацию, упорядочить её.

Источник

Добавление к датам рабочих дней в запросе

Задача

Дана таблица «Исходные даты» с колонками:

«Прибавить рабочих дней».

Нужно получить таблицу «Результат» с колонками:

«Прибавить рабочих дней»;

«Дата добавлены рабочие дни».

Запрос

Нужно пояснить применение конструкции:

«ДОБАВИТЬКДАТЕ(ИсходныеДаты.ДатаОтсчета, ДЕНЬ, ИсходныеДаты.ПрибавитьРабочихДней * 2 + 10)»

Назовём её «Глубина поиска».

Это конец периода, в котором мы ищем дату «Дата добавлены рабочие дни».

«Дата отсчета» = 01.07.2015.

«Прибавить рабочих дней» = 5.

Искомая дата ( «Дата добавлены рабочие дни» ) = 08.07.2015;

Глубина поиска в таком случае равна 21.07.2015.

Тоесть мы ищем дату 08.07.2015 и интервале между 01.07.2015 и 21.07.2015. И находим.

Потому что максимальное количество выходных подряд в году равно примерно 10 и соотношение рабочих и выходных дней примерно 2 к 1.

Таким образом должно работать для всех случаев.

Есть аналогичная публикация:

Отличие моей:

1) Сделано для БП 3.0;

2) Сделано для нескольких дат (задаётся в таблице, а не параметром);

3) Значительно более эффективный запрос.

Скачать файлы

Специальные предложения

1с рабочие дни в запросе

1с рабочие дни в запросе

1с рабочие дни в запросе

1с рабочие дни в запросе

1с рабочие дни в запросе

1с рабочие дни в запросе

1с рабочие дни в запросе

1с рабочие дни в запросе

Обновление 31.07.15 19:19

Код открыт Не указано

См. также

FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы «Режим сравнения форм») на примере ERP 2.5 Промо

Данная публикация является продолжением описания функционирования обработки «FormCodeGenerator » в режиме сравнения форм и генерирования кода на основании сравнения. Подходит для перевода уже доработанных форм с интерактивной доработки на программную. Данный режим работы обработки снизит издержки при дальнейших обновлениях конфигураций.

21.12.2020 9728 27 huxuxuya 11

Интерактивная справка по объектам 1С (подключаемое расширение)

База знаний, подключаемая к объектам основной базы. Пополняется интерактивно, формируется в виде статей прямо в 1С (текст, картинки, таблицы, ссылки). Есть возможность прикрепления файлов, привязки к объектам 1С, возможности рейтинга и комментирования пользователями.

29.09.2020 15438 80 sapervodichka 45

Конвейер проверки качества кода

Jenkinsfile для выполнения проверки качества кода. Собирает информацию с АПК, EDT и BSL-LS. Сопоставляет ошибки с гит-репозиторием, выгруженным ГитКонвертором. Отправляет в Сонар.

04.09.2019 37439 27 Stepa86 46

Вам нравятся запросы в 1С?

Речь не только о том, что простейший запрос с «легальным» оформлением растянется на пол-экрана, речь еще обо всем, что нужно написать «в нагрузку» к тексту запроса. Все эти «Новый Запрос», «УстановитьПараметр» и последующие пляски с обработкой результата. Пора с этим заканчивать!

03.07.2019 28207 7 m-rv 91

[Расширение] Контроль отрицательных остатков по регистру бухгалтерии при проведении Промо

Расширение позволяет без изменений конфигурации проверять остатки по регистру бухгалтерии при проведении каждого документа и запрещает проведение при появлении отрицательных остатков после проведения.

17.08.2015 54565 170 ekaruk 32

Отправка электронной почты с помощью локального почтового клиента из 1С, развернутой под удаленным рабочим столом

Решение для интерактивной (нажал-отредактировал) отправки электронных писем и печатных форм через почтовый клиент (Thunderbird, Outlook) находящийся на локальном компьютере, из конфигурации 1С, развернутой под удаленным рабочим столом (RDP, remote-app). Подходит также для локального развертывания 1С. Представлен пример быстрой интеграции с конфигурациями «Управление торговлей 10.3», «Управление производственным предприятием 1.3», «Комплексная автоматизация 1.1», «Бухгалтерия предприятия 2.0».

21.09.2018 30885 24 stvorl 1

Работа с публикациями «Инфостарт»

Работа с рублевыми публикациями на сайте «Инфостарт»: ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.

13.09.2018 28948 14 RocKeR_13 16

HTTP Сервисы: Путь к своему сервису. Часть 3

Продолжение статьи «HTTP Сервисы: Путь к своему сервису. Часть 2». В предыдущих частях мы использовали только Get, в этой части поговорим о других методах и длительных операциях.

27.08.2018 55087 68 dsdred 17

ВСТАВИТЬ В Справочник.Номенклатура (Код, Наименование) ЗНАЧЕНИЯ («001», «Новый товар») Промо

Вас не обманывают ваши глаза, это запрос на изменение данных! И это работает без прямого доступа к БД, регистрации и смс.

01.06.2018 37110 96 m-rv 58

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции

09.08.2018 36735 31 informa1555 30

Работа с данными выбора

17.07.2018 67765 25 kalyaka 17

Источник

Еще раз о рабочих днях. Быстрый способ расчета в запросах

Работа с производственными календарями, рабочими графиками часто встречается в практике разработки. Большинство задач можно свести к двум: 1) Добавить к дате (отнять от даты) некоторое количество рабочих дней и 2) найти разницу в рабочих днях между двумя датами. Несмотря на кажущуюся простоту, в этих задачах достаточно подводных камней, как методических, так и технологических. Естественно эта тема не была обойдена вниманием разработчиков типовых конфигураций и членов нашего сообщества. Простой поиск дает несколько результатов:

На мой взгляд, предлагаемые решения обладают теми или иными недостатками. В их числе:

Предлагаю свой вариант решения.

Постановка задачи:

Предположим, на предприятии ведется учет выполняемых работ. Каждая работа выполняется целое число дней, всегда начинается в начале дня, а заканчивается через несколько дней в конце дня. Продолжительность работ может быть от 1 дня, до нескольких лет (важность условия этого будет упомянута ниже). Необходимо иметь инструмент, позволяющий выполнять расчеты дат начала, окончания работ, продолжительностей работ, временных промежутков между работами. Все расчеты выполнять в рабочих днях. Решение должно позволять использование его в запросах.

Решение:

Решение поставленной задачи неожиданно получилось довольно простым.

Для учета рабочих графиков (производственных календарей) используем вспомогательный регистр сведений:

1с рабочие дни в запросе

Регистр необходимо заполнить на весь период, в пределах которого будут производится расчеты.

1с рабочие дни в запросе

Теперь для нахождения разницы дат нам надо в регистре найти два числа, соответствующие этим датам и определить их разницу. Для добавления к дате некоторого числа рабочих дней, надо в регистре найти соответствующее дате число, добавить к нему число рабочих дней, и по результату найти в регистре соответствующую дату рабочего дня. Осталось учесть упомянутые выше сложности и получим следующее:

Примеры использования

Как видим запросы получаются довольно простыми, не используются ни временные таблицы, ни группировки с агрегатными функциями, ни постобработка. Ничего не мешает производить расчет в запросе для нескольких записей. В прилагаемом файле реализован пример отчета по выполненным работам: дана дата начала, предполагаемая плановая продолжительность работы и фактическая дата завершения, определяется плановая дата завершения и отставание факта от плана.

1с рабочие дни в запросе

Может возникнуть вопрос: оправдано ли с точки зрения производительности использование дополнительного регистра такой структуры, ведь при изменении флага рабочего/выходного дня надо пересчитывать все записи с большей датой? Я считаю, что вполне. Во-первых, изменение производственного календаря происходит обычно не чаще одного раза в месяц, а полный пересчет и сохранение набора записей за 100 лет(

40000 записей) по выбранному графику занимает считанные секунды. А во-вторых, выгода от использования быстрого массового расчета как правило с лихвой перекроет все время, потраченное на предварительную подготовку.

А что же БСП?

Опытный разработчик, использующий БСП, может сказать: «Так ведь в БСП реализовано почти что то же самое!». Да, действительно в БСП есть аналогичный регистр:

1с рабочие дни в запросе

UPD 25.06.2019:

К статье приложена информационная база, в которой реализован описанный функционал, примеры отчетов, а также процедура заполнения и пересчета регистра.

Источник

1С рабочие дни в запросе

Разрабатывая некий функционал в 1С, бывает, необходимо посчитать количество рабочих дней после какой-то даты.

В этой статье примеры кода и запросы в которых считается количество рабочих дней:

Код, при вычислении определяет только по дню недели, викидывая выходные. Праздники не учитывает!

В запросе, с использованием производственного календаря и учетом всех праздников:

Еще один вариант, в котором допустим, что:

2) В документе Реализация заданы поля Дата и ОтсрочкаДней. Тогда:

Собственно, если календарь содержит и праздничные дни, то можно добавить секцию ГДЕ, и там отобрать только рабочие дни. В секции ГДЕ можно отобрать и интересующий календарь, если ведется несколько календарей.

Появилась необходимость посчитать количество рабочих дней за период, но не с учетом всех праздников, а просто выкинув субботы и воскресенья. Решил обойтись без использования производственного календаря.

Если все же нужно вычислить рабочие дни без праздников и выходных, по данным производственного календаря, то функция ЧислоРабочихДней, которая есть в некоторых конфигурациях (воспользуйтесь глобальным поиском) очень сэкономит вам время.

Итак получился вот такой код, чисто арифметика без запросов к БД:

1с рабочие дни в запросе

Постановка задачи:

Есть таблица, в которой указаны дата возникновения долга и допустимое количество дней просрочки в рабочих днях. Для простоты добавим сам документ в таблицу.

Док 1
04.03.201590
Док 204.03.20155
Док 304.03.201510
Док 405.03.201560

В результате должны получить таблицу вида

Ссылка
Дата возникновения долгаКол-во дней отсрочкиДата возникновения просроченного долга
Док 104.03.201590
Док 204.03.20155
Док 304.03.201510
Док 405.03.201560

Первоначально был сделан отчет на СКД, куда помещался внешний набор данных. Но, посидев-покурив, решили сварганить запрос. И вот о нем и расскажу вам.

Реализация:

Первоначальные данные получаются следующим куском кода

Само собой получим Регламентированный производственный календарь.

Здесь необходимо установить параметр «ВидДня» (значения перечисления Рабочий и Предпраздничный). Далее соединяем таблицу календаря саму с собой и получаем индекс даты (т.е. порядок следования записей) в нашей таблице

Тут соединим таблицу ВТ и ВТ_РеглКалендарьСИндексами для того, что бы узнать какой индекс будет у нашей даты возникновения долга. Дополнительно добавим индексацию по расчетному полю для дальнейших соединений.

Здесь приведу результаты промежуточной таблицы для наглядности.

Док 1
04.03.2015901 293
Док 204.03.201551 293
Док 304.03.2015101 293
Док 405.03.2015601 294

Здесь колонка “Индекс даты долга” показывает индекс поля “Дата возникновения долга” в таблице ВТ_РеглКалендарьСИндексами.

Далее мы можем получить результат ” Дата возникновения просроченного долга ” для каждой даты долга с учетом дней просрочки. Для этого соединим две таблицы.

Здесь условие соединения означает, что мы хотим получить только ту дату из таблицы ВТ_РеглКалендарьСИндексами, у которой разница Индекса регламентированного календаря и Индекса даты долга будет равно именно количеству дней отсрочки.

Результирующая таблица выглядит следующим образом:

Источник

Как прибавить разное количество банковских/рабочих дней в запросе на каждую дату возникновения долга

Постановка задачи:

Есть таблица, в которой указаны дата возникновения долга и допустимое количество дней просрочки в рабочих днях. Для простоты добавим сам документ в таблицу.

СсылкаДата возникновения долгаКол-во дней отсрочки
Док 104.03.201590
Док 204.03.20155
Док 304.03.201510
Док 405.03.201560

В результате должны получить таблицу вида

СсылкаДата возникновения долгаКол-во дней отсрочкиДата возникновения просроченного долга
Док 104.03.201590
Док 204.03.20155
Док 304.03.201510
Док 405.03.201560

Первоначально был сделан отчет на СКД, куда помещался внешний набор данных. Но, посидев-покурив, решили сварганить запрос. И вот о нем и расскажу вам.

Реализация:

Первоначальные данные получаются следующим куском кода

Само собой получим Регламентированный производственный календарь.

Здесь необходимо установить параметр «ВидДня» (значения перечисления Рабочий и Предпраздничный). Далее соединяем таблицу календаря саму с собой и получаем индекс даты (т.е. порядок следования записей) в нашей таблице

Тут соединим таблицу ВТ и ВТ_РеглКалендарьСИндексами для того, что бы узнать какой индекс будет у нашей даты возникновения долга. Дополнительно добавим индексацию по расчетному полю для дальнейших соединений.

Здесь приведу результаты промежуточной таблицы для наглядности.

СсылкаДата возникновения долгаКол-во дней отсрочкиИндекс даты долга
Док 104.03.2015901 293
Док 204.03.201551 293
Док 304.03.2015101 293
Док 405.03.2015601 294

Здесь колонка «Индекс даты долга» показывает индекс поля «Дата возникновения долга» в таблице ВТ_РеглКалендарьСИндексами.

Далее мы можем получить результат » Дата возникновения просроченного долга » для каждой даты долга с учетом дней просрочки. Для этого соединим две таблицы.

Здесь условие соединения означает, что мы хотим получить только ту дату из таблицы ВТ_РеглКалендарьСИндексами, у которой разница Индекса регламентированного календаря и Индекса даты долга будет равно именно количеству дней отсрочки.

Результирующая таблица выглядит следующим образом:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *