МОДИФІКАЦІЯ МЕНЮ ІНТЕРФЕЙСУ УЧЕНЬ

Дл я доступу до створених журналам і документам модифікуємо окремі колонки меню інтерфейсу Учень (рис 745) Для нововведених в колонку Журнали документів пунктів (Розрахунки і Табель) вкажемо відповідно обєкти Жур налРасчети і ЖурналТабель

Рис 745 Модифіковані колонки меню інтерфейсу Учень

762 МОДУЛЬ ФОРМИ СПИСКУ ДОКУМЕНТА

Містить, крім названих у табл 711, процедуру прочинені

перем годинник [31], сДейст / /годинник масив годин за календарем процедура Простежити () далі

процедура Заповнити () далі

процедура ОбработкаПодбора (значен, конт) далі процедура ОдінСотруднік () далі

процедура Ч131 () далі процедура Всього () далі

процедура УдалітьЗап (прапор) далі

/ / Формує список підрозділів сПодр і встановлює початкові значення

/ / Змінних діалогу процедура відкриття ()

перем сСотр_2, дост

сСотр_2 = СоздатьОбект (СправочнікСотруднікі_2)

/ / Формуємо, аналізуючи довідник Сотруднікі_2, список подразделгній

/ / Задаємо вибір елементів довідника в порядку зростання їх кодів сСотр_2ПорядокКодов ()

сСотр_2ВибратьЕлементи ()

поки сСотр_2ПолучітьЕлемент () = 1 цикл якщо сСотр_2ЕтоГруппа () = 1 тоді

сПодрДобавітьЗначеніе (сСотр_2ТекущійЕлемент (), сСотр_2Наіменованіе) КонецЕсли

конецЦікла / / Поки

якщо Проведено () = 0 тоді / / Якщо документ не проведено

хто = 2 / / Табель на співробітників обраного підрозділу текСтрока = 1 / / Позиціонуємо на цеху 01 в списку сПодр

інакше / / Документ проведено

якщо хто = 2 тоді / / Правильно позиціонуємо список значень сПодр

сПодрТекущаяСтрока (текСтрока) КонецЕсли

КонецЕсли Простежити ()

// дост = 1, якщо в табличній частині є записи Мінлива використовується

/ / Для управління доступністю елементів діалогу форми списку документа дост = (КолічествоСтрок () = 0, 0, 1)

формаУдалітьДоступность (дост) формаОчістітьДоступность (дост)

формаПанельІнструментов (0) / / Відключаємо панель інструментів формаЗаголовок (Табель)

/ / Для кнопки Дії (рис 740)

сДейст = СоздатьОбект (СпісокЗначеній) сДейстДобавітьЗначеніе (Відкрити в журналі)

КонецПроцедури / / прочинене

/ / Управляє доступністю елемента діалогу сПодр

процедура Простежити ()

якщо (хто = 1) або (хто = 3) тоді / / Табель на відібраних або всіх співробітників формаСПодрДоступность (0)

інакше / /хто = 2

формаСПодрДоступность (1) КонецЕсли

КонецПроцедури / / Простежити

процедура ОтобразітьСПодр () / / Формула елемента діалогусПодр текСтрока = сПодрТекущаяСтрока () сПодрПолучітьЗначеніе (текСтрока)

КонецПроцедури / / ОтобразітьСПодр

процедура ОдінСотруднік ()

//

Заповнює масив годинник для одного співробітник

перем ін, кален

для ін 1 по 31 цикл

//

Ініціалізація масиву годин

годинник [ін] = 0

конецЦікла / / Для

кален = СотруднікКалендарь якщо каленВибран () = 1 тоді

каленВибратьДати (НачМесяца (ДатаДок), КонМесяца (ДатаДок)) ін = 0

/ / Заносимо в масив годинник дані календаря співробітника

поки каленСледующаяДата () = 1 цикл ін = ін + 1

годинник [ін] = каленЗначеніе конецЦікла / / Поки

КонецЕсли

КонецПроцедури / / ОдінСотруднік

/ / Визначаємо значення реквізитів документа ч1 чЗ 1

/ / Далі ці значення можуть бути відредаговані процедура Ч131 ()

ч1 = годинник [1] ч2 = годинник [2] ЧЗ = годинник [3]

ч4 = годинник [4] ч5 = годинник [5] чб = годинник [6] Ч7 = годинник [7] ч8 = годинник [8] ч9 = годинник [9]

Ч10 = годинник [10] Ч11 = годинник [11] Ч12 = годинник [12]

ч13 = годинник [13] ч14 = годинник [14] Ч15 = годинник [15]

ч16 = годинник [16] ч17 годинник [17] ч18 = годинник [18] ч19 = годинник [19] ч20 = годинник [20] ч21 = годинник [21] ч22 = годинник [22] ч23 = годинник [23] ч24 = годинник [24] ч25 = годинник [25] ч26 = годинник [26] 427 = 4аси [27]

428 = 4аси [28] 429 = годинник [29] 430 = годинник [30] 431 = 4аси [31] КонецПроцедури / / Ч131

процедура Всього () / / Повертає загальне 4исла відпрацьованих 4асов всегоЧасов = ч1 + ч2 + ч3 + ч4 + ч5 + ч6 + Ч7 + ​​ч8 + ч9 + Ч10 +

Ч11 + Ч12 + ч13 + ч14 + Ч15 + ч16 + ч17 + ч18 + ч19 +

ч20 + ч21 + ч22 + ч23 + ч24 + ч25 + ч26 + ч27 + ч28 + ч29 + Ч30 + ч31 КонецПроцедури / / Всього

/ / Заповнює табличну частину документа Табель для одного або групи співробітників процедура Заповнити ()

перем підр

/ / Видаляємо, якщо таблична частина заповнюється для підрозділу чи всього підприємства,

/ / Її рядки, але тільки за згодою користувача якщо (хто> 1) і (КолічествоСтрок ()> 0) тоді

якщо Питання (Видалити наявні рядки”, Так + Ні) = Так тоді

УдалітьСтрокі () / / 04іщаем таблі4ную 4асть документа інакше

повернення

КонецЕсли КонецЕсли

якщо хто = 1 тоді

/ / Вказуємо явно імя основної форми списку для методу ОткритьПодбор

/ / Задаємо режим множинного вибору

/ / Додаємо в табличну частину в результаті кожного вибору у відкритій формі

/ / Дані одного співробітника Власне додавання здійснює

/ / Зумовлена ​​процедура модуля форми ОбработкаПодбора ОткритьПодбор (Справо4нікСотруднікі_2, ФормаСпіска,, 1)

іна4еЕслі хто> = 2 тоді / / Підрозділ або все підприємство сСотр_2 = СоздатьОбект (СправочнікСотруднікі_2)

/ / Заносимо в табличну частину дані про співробітників обраного підрозділу подр

якщо хто = 2 тоді / / Підрозділ

підр = сПодрПолучітьЗначеніе (сПодрТекущаяСтрока ()) сСотр_2ИспользоватьРодителя (підр)

КонецЕсли сСотр_2ВибратьЕлементи ()

поки сСотр_2ПолучітьЕлемент () = 1 цикл

якщо сСотр_2ЕтоГруппа () = 0 тоді / / Тільки співробітники

/ / Використовуємо вже наявну процедуру ОбработкаПодбора,

/ / Виконує обробку одного співробітника ОбработкаПодбора (сСотр_2, “)

КонецЕсли конецЦікла / / Поки

КонецЕсли

якщо КолічествоСтрок ()> 0 тоді формаУдаліть Доступність (1) формаОчістітьДоступность (1)

КонецЕсли КонецПроцедури / / Заповнити

процедура ОбработкаПодбора (значен, конт)

/ / Забороняємо, якщо додаємо по одному співробітнику, вибір того ж особи двічі якщо (хто = 1) і (ВибратьСтрокі () = 1) тоді

поки ПолучітьСтроку () = 1 цикл

якщо Співробітник = значенТекущійЕлемент () тоді Попередження (Співробітник вже вибраний”) повернення

КонецЕсли

конецЦікла / / Поки КонецЕсли

НоваяСтрока () / / Новий рядок у табличній частині табеля Співробітник = значенТекущійЕлемент ()

ОдінСотруднік () / / Заповнює масив годинник для одного співробітника

/ / Визначаємо значення реквізитів документа ч1-ЧЗ 1 і всегоЧасов

Ч131 () Всього ()

/ / Якщо є хоча б один запис, то є що видаляти

якщо (хто = 1) і (КолічествоСтрок () = 1) тоді формаУдаліть Доступність (1) формаОчістітьДоступность (1)

КонецЕсли

КонецПроцедури / / ОбработкаПодбора

/ / Видаляє з відома користувача, якщо прапор = 1, поточний запис табличній

/ / Частини документа, і, якщо прапор = 2, всі записи процедура УдалітьЗап (прапор)

перем пит

пит = Видалити + (Прапор = 1, одну запис, всі записи) + ?”; якщо Питання (пит, Так + Ні) = Так тоді

якщо прапор = 1 тоді УдалітьСтроку ()

інакше / /прапор = 2

УдалітьСтрокі () КонецЕсли

якщо КолічествоСтрок () = 0 тоді

формаУдалітьДоступность (0) формаОчістітьДоступность (0)

КонецЕсли КонецЕсли

КонецПроцедури / / УдалітьЗап

Результат автоматичного заповнення табеля для співробітників другого цеху наведено на рис 746

Рис 746 Частковий табеля цеху 02

Джерело: Бартеньев О В 1С: Підприємство: програмування для всіх Базові обєкти та розрахунки на одній дискеті М: Діалог-МІФІ, 2005 464 с

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*