Функция ТаблицаРасписаний()
Перем Контрагент;
Перем ТаблицаДанных;
КонтрагентыДляРассылки = КонтрагентыДляРассылки();
ТаблицаДанных = Новый ТаблицаЗначений;
ТаблицаДанных.Колонки.Добавить("Контрагент");
ТаблицаДанных.Колонки.Добавить("ВремяНачала");
ТаблицаДанных.Колонки.Добавить("ДеньНедели");
ТаблицаДанных.Колонки.Добавить("РасписаниеСтрокой");
Счетчик = 1;
Всего = КонтрагентыДляРассылки.Количество();
// Это для теста
//Всего = Мин(100, КонтрагентыДляРассылки.Количество());
Для Каждого СтрокаТЗ Из КонтрагентыДляРассылки Цикл
Состояние("Обрабатываем контрагента " + Контрагент + " (" + Счетчик +"/ " + Всего + ")");
//Расписание = СтрокаТЗ.Расписание.Получить(); // В случае, если расписание в хранилище значения
Расписание = СтрокаТЗ.Расписание;
Если ТипЗнч(Расписание) <> Тип("РасписаниеРегламентногоЗадания_") Тогда
Продолжить;
КонецЕсли;
//РасписаниеСтруктура = ОбщегоНазначенияКлиентСервер.РасписаниеВСтруктуру(Расписание);
РасписаниеСтруктура = Расписание;
Для Каждого ДеньНедели Из РасписаниеСтруктура.ДниНедели Цикл
Если РасписаниеСтруктура.ДетальныеРасписанияДня.Количество() > 0 Тогда
Для Каждого РасписаниеДня Из РасписаниеСтруктура.ДетальныеРасписанияДня Цикл
НоваяСтрока = ТаблицаДанных.Добавить();
НоваяСтрока.Контрагент = СтрокаТЗ.Контрагент;
НоваяСтрока.ВремяНачала = РасписаниеДня.ВремяНачала;
НоваяСтрока.ДеньНедели = ДеньНедели;
НоваяСтрока.РасписаниеСтрокой = Расписание;
КонецЦикла;
Иначе
НоваяСтрока = ТаблицаДанных.Добавить();
НоваяСтрока.Контрагент = СтрокаТЗ.Контрагент;
НоваяСтрока.ВремяНачала = РасписаниеСтруктура.ВремяНачала;
НоваяСтрока.ДеньНедели = ДеньНедели;
НоваяСтрока.РасписаниеСтрокой = Расписание;
КонецЕсли;
КонецЦикла;
Счетчик = Счетчик + 1;
Если Счетчик > Всего Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Возврат ТаблицаДанных;
КонецФункции