Подскажите пожалуйста, по смыслу этой обработки?
Она производит заполнение графика.
я разбираюсь сам по смыслу. Но хотелось бы и почитать общее
описание, общее понимаине которое есть. Так как задача эта
регулярная как я понимаю.
//
Процедура ЗаполнитьГрафик(ДатаНачала, ДатаОкончания, ВыходныеДни, ГрафикРаботы) Экспорт
Набор = РегистрыСведений.ГрафикиРаботы.СоздатьНаборЗаписей();
Набор.Прочитать();
ЧислоСекундВСутках = 86400;
ДатаУстановки = ДатаНачала;
Для к = 0 По Набор.Количество() - 1 Цикл
Запись = Набор[к];
Если Запись.Дата < ДатаНачала Тогда
Продолжить;
ИначеЕсли Запись.Дата = ДатаУстановки Тогда
Запись.ГрафикРаботы = ГрафикРаботы;
Если Найти(ВыходныеДни, Строка(ДеньНедели(ДатаУстановки))) Тогда
Запись.Значение = 0;
Иначе
Запись.Значение = 8;
КонецЕсли;
ДатаУстановки = ДатаУстановки + ЧислоСекундВСутках;
Иначе
Пока ДатаУстановки < Мин(Запись.Дата, ДатаОкончания) Цикл
НоваяЗапись = Набор.Добавить();
НоваяЗапись.Дата = ДатаУстановки;
Если Найти(ВыходныеДни, Строка(ДеньНедели(ДатаУстановки))) Тогда
НоваяЗапись.Значение = 0;
Иначе
НоваяЗапись = 8;
КонецЕсли;
ДатаУстановки = ДатаУстановки + ЧислоСекундВСутках;
КонецЦикла;
Если Запись.Дата > ДатаОкончания Тогда
Прервать;
Иначе
Запись.ГрафикРаботы = ГрафикРаботы;
Если Найти(ВыходныеДни, Строка(ДеньНедели(ДатаУстановки))) Тогда
Запись.Значение = 0;
Иначе
Запись.Значение = 8;
КонецЕсли;
КонецЕсли;
ДатаУстановки = ДатаУстановки + ЧислоСекундВСутках;
КонецЕсли;
КонецЦикла;
Набор.Записать();
Пока ДатаУстановки <= ДатаОкончания Цикл
Запись = Набор.Добавить();
Запись.Дата = ДатаУстановки;
Запись.ГрафикРаботы = ГрафикРаботы;
Если Найти(ВыходныеДни, Строка(ДеньНедели(ДатаУстановки))) Тогда
Запись.Значение = 0;
Иначе
Запись.Значение = 8;
КонецЕсли;
ДатаУстановки = ДатаУстановки + ЧислоСекундВСутках;
КонецЦикла;
Набор.Записать();
КонецПроцедуры
//
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс