---
title: Графики работы
slug: bsp/графики-работы
---


## ДатыПоГрафику
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Возвращает даты, которые отличаются указанной даты ДатаОт на количество дней,
// входящих в указанный график ГрафикРаботы.
//
// Параметры:
//  ГрафикРаботы	- СправочникСсылка.Календари - график, который необходимо использовать.
//  ДатаОт			- Дата - дата, от которой нужно рассчитать количество дней.
//  МассивДней		- Массив - количество дней (Число), на которые нужно увеличить дату начала.
//  РассчитыватьСледующуюДатуОтПредыдущей	- Булево - нужно ли рассчитывать следующую дату от предыдущей,
//											           или все даты рассчитываются от переданной даты.
//  ВызыватьИсключение - Булево - если Истина, вызывается исключение в случае незаполненного графика.
//
// Возвращаемое значение:
//  Массив, Неопределено - даты, увеличенные на количество дней, входящих в график ГрафикРаботы.
//	                       Если график ГрафикРаботы не заполнен, и ВызыватьИсключение = Ложь, возвращается Неопределено.
//
Функция ДатыПоГрафику(Знач ГрафикРаботы, Знач ДатаОт, Знач МассивДней, Экспорт
```

Пример вызова
```bsl
Результат = ГрафикиРаботы.ДатыПоГрафику(ГрафикРаботы, ДатаОт, МассивДней, );
```
</details>

## ДатаПоГрафику
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Возвращает дату, которая отличается указанной даты ДатаОт на количество дней,
// входящих в указанный график ГрафикРаботы.
//
// Параметры:
//  ГрафикРаботы	- СправочникСсылка.Календари - график, который необходимо использовать.
//  ДатаОт			- Дата - дата, от которой нужно рассчитать количество дней.
//  КоличествоДней	- Число - количество дней, на которые нужно увеличить дату начала ДатаОт.
//  ВызыватьИсключение - Булево - если Истина, вызывается исключение в случае незаполненного графика.
//
// Возвращаемое значение:
//  Дата, Неопределено - дата, увеличенная на количество дней, входящих в график ГрафикРаботы.
//	                     Если график ГрафикРаботы не заполнен, и ВызыватьИсключение = Ложь, возвращается Неопределено.
//
Функция ДатаПоГрафику(Знач ГрафикРаботы, Знач ДатаОт, Знач КоличествоДней, ВызыватьИсключение = Истина) Экспорт
```

Пример вызова
```bsl
Результат = ГрафикиРаботы.ДатаПоГрафику(ГрафикРаботы, ДатаОт, КоличествоДней, ВызыватьИсключение);
```
</details>

## ПараметрыПолученияБлижайшихДатПоГрафику
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Конструктор параметров получения ближайших к заданным дат, включенных в график.
//  См. БлижайшиеРабочиеДаты.
//
// Возвращаемое значение:
//  Структура:
//   * ПолучатьПредшествующие - Булево - способ получения ближайшей даты:
//       если Истина - определяются рабочие даты, предшествующие переданным в параметре НачальныеДаты,
//       если Ложь - получаются ближайшие рабочие даты, следующие за начальными датами.
//       Значение по умолчанию - Ложь:
//   * ИгнорироватьНезаполненностьГрафика - Булево - если Истина, то в любом случае будет возвращено соответствие.
//       Начальные даты, для которых не будет значений из-за незаполненности графика, включены не будут.
//       Значение по умолчанию - Ложь:
//   * ВызыватьИсключение - Булево - вызов исключения в случае не заполненного графика
//       если Истина, вызвать исключение, если график не заполнен.
//       если Ложь - даты, по которым не удалось определить ближайшую дату, будут просто пропущены.
//       Значение по умолчанию - Истина.
//
Функция ПараметрыПолученияБлижайшихДатПоГрафику() Экспорт
```

Пример вызова
```bsl
Результат = ГрафикиРаботы.ПараметрыПолученияБлижайшихДатПоГрафику() 
```
</details>

## БлижайшиеДатыВключенныеВГрафик
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Определяет для каждой даты дату ближайшего к дня, включенного в график.
//
// Параметры:
//  ГрафикРаботы		 - СправочникСсылка.Календари
//  НачальныеДаты		 - Массив из Дата - даты, относительно которых нужно найти ближайшие.
//  ПараметрыПолучения	 - см. ПараметрыПолученияБлижайшихДатПоГрафику.
//
// Возвращаемое значение:
//  Соответствие из КлючИЗначение:
//   * Ключ - Дата - начальная дата.
//   * Значение - Дата - ближайшая к ней дата, включенная в график.
//
Функция БлижайшиеДатыВключенныеВГрафик(ГрафикРаботы, НачальныеДаты, ПараметрыПолучения = Неопределено) Экспорт
```

Пример вызова
```bsl
Результат = ГрафикиРаботы.БлижайшиеДатыВключенныеВГрафик(ГрафикРаботы, НачальныеДаты, ПараметрыПолучения);
```
</details>

## РасписанияРаботыНаПериод
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Составляет расписания работы для дат, включенных в указанные графики на указанный период.
// Если расписание на предпраздничный день не задано, то оно определяется так, как если бы этот день был бы рабочим.
//
// Параметры:
//  Графики       - Массив - массив элементов типа СправочникСсылка.Календари, для которых составляются расписания.
//  ДатаНачала    - Дата   - дата начала периода, за который нужно составить расписания.
//  ДатаОкончания - Дата   - дата окончания периода.
//
// Возвращаемое значение:
//   ТаблицаЗначений:
//    * ГрафикРаботы    - СправочникСсылка.Календари - график работы.
//    * ДатаГрафика     - Дата - дата в графике работы ГрафикРаботы.
//    * ВремяНачала     - Дата - время начала работы в день ДатаГрафика.
//    * ВремяОкончания  - Дата - время окончания работы в день ДатаГрафика.
//
Функция РасписанияРаботыНаПериод(Графики, ДатаНачала, ДатаОкончания) Экспорт
```

Пример вызова
```bsl
Результат = ГрафикиРаботы.РасписанияРаботыНаПериод(Графики, ДатаНачала, ДатаОкончания) 
```
</details>

## СоздатьВТРасписанияРаботыНаПериод
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">

<summary style="font-weight: bold; cursor: pointer;">Описание, пример вызова</summary>

```bsl

// Создает в менеджере временную таблицу ВТРасписанияРаботы с колонками, соответствующими возвращаемому значению
// функции РасписанияРаботыНаПериод.
//
// Параметры:
//  МенеджерВременныхТаблиц - МенеджерВременныхТаблиц - менеджер, в котором будет создана временная таблица.
//  Графики       - Массив - массив элементов типа СправочникСсылка.Календари, для которых составляются расписания.
//  ДатаНачала    - Дата   - дата начала периода, за который нужно составить расписания.
//  ДатаОкончания - Дата   - дата окончания периода.
//
Процедура СоздатьВТРасписанияРаботыНаПериод(МенеджерВременныхТаблиц, Графики, ДатаНачала, ДатаОкончания) Экспорт
```

Пример вызова
```bsl
ГрафикиРаботы.СоздатьВТРасписанияРаботыНаПериод(МенеджерВременныхТаблиц, Графики, ДатаНачала, ДатаОкончания) 
```
</details>

---

© 2024, **ООО 1С-Софт**  
Все права защищены. Эта программа и сопроводительные материалы предоставляются  
в соответствии с условиями лицензии [Attribution 4.0 International (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/legalcode).

---
