Имя: Пароль:
1C
1С v8
График работы по сменам
0 verifikator
 
19.03.20
23:11
Всем доброго вечера!
Начинаю изучать 1С. Столкнулся со следующей проблемой:
Пытаюсь автоматически заполнить график работы по сменам.
Есть: Обработка "ЗаполнениеГрафика" (реквизит "Период") и Регистр сведений "ГрафикиРаботы" (измерение "Дата", ресурс "РабочийДень").
Не могу понять каким образом можно заполнить данный регистр сменами, например, 2/2.
Т.е. если период выбран с 09.03.2020 по 15.03.2020, регистр должен заполняться графиком работы со значением РабочийДень=1 для дат 09.03, 10.03, 13.03, 14.03. А для остальных дат - со значением РабочийДень=0.

Я пытаюсь использовать массив:

Процедура ЗаполнитьГрафик()
  МассивРД=Новый Массив(4);
  МассивРД[0]="1";
  МассивРД[1]="1";
  МассивРД[2]="0";
  МассивРД[3]="0";
  КоличествоДней = (НачалоДня(Период.ДатаОкончания) - НачалоДня(Период.ДатаНачала)) / 86400;
  
  Для НомерДня=0 По КоличествоДней Цикл
    ТекущаяДата=Период.ДатаНачала+86400*НомерДня;
    Запись=РегистрыСведений.ГрафикиРаботы.СоздатьМенеджерЗаписи();
    Запись.Дата=ТекущаяДата;
    Запись.РабочийДень= ???  - вот здесь никак не получается обратиться к элементам массива и считывать их последовательно в цикле.
    Запись.Записать();
  КонецЦикла;
    
КонецПроцедуры

Или может быть можно как-то проще всё сотворить?
В общем, прошу помочь-направить или поделиться готовым решением =)
1 Бизон
 
20.03.20
05:53
Зуп это сам умеет, почитай о функционале 1С
2 Бишбармак
 
20.03.20
06:34
Вам нужно позиционироваться на элемент массива.
То есть необходимо получить остаток от деления
В 1С есть вот такая штука
%
Пример
7%4=3
Ваш случай:
ДляПозиции=НомерДня%4;
Запись.РабочийДень= МассивРД[ДляПозиции];
3 verifikator
 
20.03.20
22:21
(2) Большое спасибо! Всё получилось!
2 + 2 = 3.9999999999999999999999999999999...