> ЗанГруппи=Новий ТабліцаЗначеній;
ВиданниеЧасиПредмети=Новий ТабліцаЗначеній;
ТабліцаПарНадоСт=Новий ТабліцаЗначеній;
ПредметиСдвумяПреподамі=Новий ТабліцаЗначеній;
СпісокДней=Новий ( СпісокЗначеній );
ПредметиПоставленние=Новий ТабліцаЗначеній;
КонецПроцедури
Функція ПодготовітьТабліциДляЗапісі. Функція формує 12 таблиць - шість таблиць по 1 на кожен день для груп (понеділок, вівторок, і т.д.). 6 таблиць для викладачів (ці таблиці будуть використані в документі СозданіеРаспісаніяНаДень).
Функція ПодготовітьТабліциДляЗапісі ()
Відбір=Новий Структура ();
Отбор.Вставить(laquo;Деньraquo;,Перечисления.Дни.Понедельник);
Рядки=ТабОбщ.НайтіСтрокі (Відбір);
Якщо Строкі.Колічество () gt; 0 тоді
Довжина=Строкі.Колічество () - 1;
Для н=0 справжність Цикл
Група=Рядки [н] .Гурт;
інфогруппи=Рядки [н] .ІнфоГрупп;
НовСтр=МассівГр1.Добавіть ();
НовСтр.Группа=Група;
НовСтр.ІнфоГрупп=інфогруппи;
КонецЦікла;
КонецЕсли;
КонецФункции
Процедура ОтменаПроведенія. Процедура відповідає за те, щоб програма перевіряла вже створені документи, і якщо на обрану дату вже створений документ, видати повідомлення.
Процедура ОтменаПроведенія ()
Запит=Новий Запит;
Результат=Запрос.Виполніть ();
ВиборкаДетальниеЗапісі=Результат.Вибрать ();
Якщо ВиборкаДетальниеЗапісі.Колічество () gt; 0 тоді
Поки ВиборкаДетальниеЗапісі.Следующій () Цикл
Якщо ВиборкаДетальниеЗапісі.Ссилка.Проведен=Істина тоді
Повідомити ( На цю дату вже був документ. Проведена відміна проведення документа- + ВиборкаДетальниеЗапісі.Ссилка);
Док=ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
Док.Записать(РежимЗаписиДокумента.ОтменаПроведения);
КонецЕсли;
КонецЦікла;
КонецЕсли;
КонецПроцедури
Процедура ОсновниеДействіяФормиОсновниеДействіяФормиОК (Кнопка). Дана процедура є заключною в даному документі, якщо раніше були проведені документи «СозданіеРаспісаніяНаДень» (на ці дні), то вона скасовує їх проведення. Після цього формує 12 таблиць - шість таблиць по 1 на кожен день для груп (понеділок, вівторок, і т.д.). 6 таблиць для викладачів (ці таблиці будуть використані в документі «СозданіеРаспісаніяНаДень»). Після всього цього, процедура створює остаточний результат у вигляді Документів «СозданіеРаспісаніяНаДень».
Процедура ОсновныеДействияФормыОсновныеДействияФормыОК(Кнопка)
ОтменаПроведенія ();
Підготовка ();
СформіроватьСтаб ();
Якщо Флаг_ошібка=0 тоді
Табл=ПодготовітьТабліциДляЗапісі ();
Для н=0 по 5 цикл
Якщо Табл [0] [н] lt; gt; Не визначено і Табл [0] [н + 6] lt; gt; Не визначено тоді
ТабОбщЕксп=Новий ( ТабліцаЗначеній );
ТабОбщЭксп.Колонки.Добавить(laquo;Группы_Расписаниеraquo;);
ТабОбщЭксп.Колонки.Добавить(laquo;Преподаватели_Расписаниеraquo;);
СтрНов=ТабОбщЕксп.Добавіть ();
СтрНов.Группи_Распісаніе=Табл [0] [н];
СтрНов.Преподавателі_Распісаніе=Табл [0] [н + 6];
НовДок=Документы.СозданиеРасписанияНаДень.СоздатьДокумент();
НовДок.Дата=ДатаВидач1 + 24 * 60 * 60 * н + 1;
СтрокаВнутр1=ЗначеніеВСтрокуВнутр (ТабОбщЕксп);
НовДок.Інфо=Новий ХраніліщеЗначенія (СтрокаВнутр1);
НовДок.Записать(РежимЗаписиДокумента.Проведение);
КонецЕсли;
КонецЦікла;
КонецЕсли;
КонецПроцедури
Під час проведення документів «СозданіеРаспісаніяНаДень» у нас відбуваються рухи по регістрах накопичення.
Регістри накопичення - прикладні об'єкти конфігурації в системі 1С: Підприємство, які використовуються для накопичення інформації про наявність та рух коштів - товарних, грошових та інших. Інформація...