Дипломная работа: Автоматизация управления садового товарищества «Дружба»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
82
Приложение
Исходный тест программного модуля ИС
Листинг модуля формы документа "ВступлениеВСНТ"
Перем ЕдиничнаяОрганизация;
Перем ОсновнойВид, ПустойВид;
Функция ПолучитьДоступныеДанные (Механизм)
ТЗРегистра = РегистрыСведений. лс_ВступлениеРаботНаМеханизмах.
СрезПоследних (Дата, Новый Структура ("Механизм", Механизм));
Список = Новый СписокЗначений;
Список. ЗагрузитьЗначения (ТЗРегистра. ВыгрузитьКолонку
("Вступление"));
Возврат Список;
КонецФункции // ПолучитьДоступ (ТекСтрока. Механизм) ()
Функция ЧислоСтрок (Механизм, Вступление, Председатель)
Возврат Выработка. НайтиСтроки (Новый Структура ("Механизм,
Вступление, Председатель", Механизм, Вступление, Председатель)). Количество
();
КонецФункции // ЕстьСтрока ()
Функция ПолучитьРазмер (Механизм, Вступление)
Возврат РегистрыСведений. лс_ВступлениеРаботНаМеханизмах.
ПолучитьПоследнее (Дата, Новый Структура ("Механизм, Вступление", Механизм,
Вступление)). Размер;
КонецФункции //
Процедура Пересчет (СтрокаТЧ)
Если СтрокаТЧ. Вступление = ОсновнойВступление Тогда
СтрокаТЧ. Результат = СтрокаТЧ. Размер * СтрокаТЧ. ВыработкаЧас;
Иначе
СтрокаТЧ. Результат = 0;
КонецЕсли;
КонецПроцедуры
Процедура КоманднаяПанель1Подбор (Кнопка)
ПроцедурыУправленияПерсоналом.
ОткрытьФормуВыбораПредседательаОрганизации (ЭлементыФормы. Выработка, Ссылка,
Ложь, Дата, мЕдиничнаяОрганизация, 1);
КонецПроцедуры
Процедура ВыработкаПредседательНачалоВыбора (Элемент,
СтандартнаяОбработка)
ПроцедурыУправленияПерсоналом.
ОткрытьФормуВыбораПредседательаОрганизации (Элемент, Ссылка, Истина, Дата,
мЕдиничнаяОрганизация, 1, СтандартнаяОбработка, Элемент. Значение);
КонецПроцедуры
Процедура ПриОткрытии ()
Если ЭтоНовый () Тогда // проверить объект на то, что он еще не внесен
в ИБ
// Заполнить реквизиты значениями по умолчанию.
ОбщегоНазначения. ЗаполнитьШапкуДокумента (ЭтотОбъект,
глЗначениеПеременной ("глТекущийПользователь"));
КонецЕсли;
РаботаСДиалогами. УстановитьДоступностьПоляВводаНомера (Метаданные (),
ЭтаФорма, ЭлементыФормы. ДействияФормы. Кнопки. Подменю1, ЭлементыФормы.
Номер);
// Заполним реквизит формы МесяцСтрока.
МесяцСтрока = РаботаСДиалогами. ДатаКакМесяцПредставление
(ПериодРегистрации);
83
// Вывести в заголовке формы статус документа (новый, не проведен,
проведен).
РаботаСДиалогами. УстановитьЗаголовокФормыДокумента (, ЭтотОбъект,
ЭтаФорма);
// Запомнить текущие значения реквизитов формы.
мТекущаяДатаДокумента = Дата;
// Получим и запомним ссылку на головную организацию
мЕдиничнаяОрганизация = ОбщегоНазначения. ЕдиничнаяОрганизация
(Организация);
КонецПроцедуры
Процедура ПериодРегистрацииПриИзменении (Элемент)
РаботаСДиалогами. ДатаКакМесяцПодобратьДатуПоТексту (Элемент.
Значение, ПериодРегистрации);
Элемент. Значение = РаботаСДиалогами. ДатаКакМесяцПредставление
(ПериодРегистрации);
КонецПроцедуры // ПериодРегистрацииПриИзменении ()
// Процедура - обработчик события "Регулирование" поля ввода периода
регистрации.
Процедура ПериодРегистрацииРегулирование (Элемент, Направление,
СтандартнаяОбработка)
ПериодРегистрации = ДобавитьМесяц (ПериодРегистрации, Направление);
Элемент. Значение = РаботаСДиалогами. ДатаКакМесяцПредставление
(ПериодРегистрации);
КонецПроцедуры // ПериодРегистрацииРегулирование ()
// Процедура - обработчик события "Очистка" поля ввода периода
регистрации.
Процедура ПериодРегистрацииОчистка (Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КонецПроцедуры // ПериодРегистрацииОчистка ()
// Процедура - обработчик события "НачалоВыбораИзСписка" поля ввода
периода регистрации.
Процедура ПериодРегистрацииНачалоВыбораИзСписка (Элемент,
СтандартнаяОбработка)
РаботаСДиалогами. НачалоВыбораИзСпискаПредставленияПериодаРегистрации
(Элемент, СтандартнаяОбработка, ПериодРегистрации, ЭтаФорма);
КонецПроцедуры // ПериодРегистрацииНачалоВыбораИзСписка ()
// Процедура - обработчик события "АвтоПодборТекста" поля ввода
периода регистрации.
Процедура ПериодРегистрацииАвтоПодборТекста (Элемент, Текст,
ТекстАвтоПодбора, СтандартнаяОбработка)
РаботаСДиалогами. ДатаКакМесяцАвтоПодборТекста (Текст,
ТекстАвтоПодбора, СтандартнаяОбработка);
КонецПроцедуры // ПериодРегистрацииАвтоПодборТекста ()
// Процедура - обработчик события "ОкончаниеВводаТекста" поля ввода
периода регистрации.
Процедура ПериодРегистрацииОкончаниеВводаТекста (Элемент, Текст,
Значение, СтандартнаяОбработка)
РаботаСДиалогами. ДатаКакМесяцОкончаниеВводаТекста (Текст, Значение,
СтандартнаяОбработка);
КонецПроцедуры // ПериодРегистрацииОкончаниеВводаТекста ()
Процедура ОбработкаВыбора (ЗначениеВыбора, Источник)
Если ТипЗнч (ЗначениеВыбора) = Тип ("Структура") Тогда
Команда = ""; Реквизиты = "";
Если ЗначениеВыбора. Свойство ("Команда", Команда) и Команда =
"ЗаполнитьСписокЧленовСНТ" Тогда
ВременнаяТаблица = ЗначениеВыбора. Данные. Выгрузить ();
МассивПредседательов = ВременнаяТаблица. ВыгрузитьКолонку
("Председатель");
ВременнаяТаблица. Колонки. Подразделение. Имя =
"ПодразделениеОрганизации";
ВременнаяТаблица. Колонки. Добавить ("Авторасчет");
ВременнаяТаблица. ЗаполнитьЗначения (Истина, "Авторасчет");
Выработка. Загрузить (ВременнаяТаблица);
КонецЕсли;
84
КонецЕсли;
КонецПроцедуры
Процедура ВыработкаОбработкаВыбора (Элемент, ВыбранноеЗначение,
СтандартнаяОбработка)
Если ТипЗнч (ВыбранноеЗначение) <> Тип ("СправочникСсылка.
ПредседательиОрганизаций") Тогда
Возврат;
КонецЕсли;
СтандартнаяОбработка = Ложь;
Если Выработка. НайтиСтроки (Новый Структура ("Председатель",
ВыбранноеЗначение)). Количество () = 0 Тогда
СтрокаТабличнойЧасти = Выработка. Добавить ();
СтрокаТабличнойЧасти. Председатель= ВыбранноеЗначение;
СтрокаТабличнойЧасти. Авторасчет= Истина;
ЭлементыФормы. Выработка. ТекущаяСтрока = СтрокаТабличнойЧасти;
ПроцедурыУправленияПерсоналом. ПроставитьДанныеСтроки
(ВыбранноеЗначение, Дата, ЭлементыФормы. Выработка);
КонецЕсли;
КонецПроцедуры
Процедура ВыработкаПредседательПриИзменении (Элемент)
ПроцедурыУправленияПерсоналом. ПроставитьДанныеСтроки (Элемент.
Значение, ПериодРегистрации, ЭлементыФормы. Выработка);
КонецПроцедуры
Процедура КоманднаяПанель1Заполнить (Кнопка)
Если Выработка. Количество () > 0 Тогда
ТекстВопроса = "Перед заполнением табличные части будут очищены.
Заполнить?";
Ответ = Вопрос (ТекстВопроса, РежимДиалогаВопрос. ДаНет,,
КодВозвратаДиалога. Да,);
Если Ответ <> КодВозвратаДиалога. Да Тогда
Возврат;
КонецЕсли;
Выработка. Очистить ();
КонецЕсли;
мИмяЗаполняемойТаблицы = "Выработка";
ПроцедурыУправленияПерсоналом. ОткрытьФормуОтбораСпискаРаботников
(ЭтаФорма, ПериодРегистрации,, Организация);
// ПроцедурыУправленияПерсоналом. ОткрытьФормуОтбораСпискаРаботников
(ЭтаФорма, ПериодРегистрации,, Организация,,,,"РазовыеРасчеты", Новый
Структура ("ВидРасчета, Показатель1, ДатаНачала, ДатаОкончания",
ПланыВидовРасчета. ОсновныеНачисленияОрганизаций. ПустаяСсылка (),0, Дата
(1,1,1), Дата (1,1,1)));
КонецПроцедуры
Процедура ВыработкаПередНачаломИзменения (Элемент, Отказ)
Если Элемент. ТекущаяКолонка. Имя = "Вступление" Тогда
// проверим, выбран ли механизм
Если Элемент. ТекущаяСтрока. Механизм. Пустая () Тогда
Отказ = истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ВыработкаМеханизмПриИзменении (Элемент)
Если ЧислоСтрок (Элемент. Значение, ОсновнойВступление, ЭлементыФормы.
Выработка. ТекущаяСтрока. Председатель) =0 Тогда
ЭлементыФормы. Выработка. ТекущаяСтрока. Вступление =
ОсновнойВступление;
ЭлементыФормы. Выработка. ТекущаяСтрока. Размер = ПолучитьРазмер
(ЭлементыФормы. Выработка. ТекущаяСтрока. Механизм, ЭлементыФормы. Выработка.
ТекущаяСтрока. Вступление);
Пересчет (ЭлементыФормы. Выработка. ТекущаяСтрока);
Иначе
ЭлементыФормы. Выработка. ТекущаяСтрока. Вступление =
ПустойВступление;
КонецЕсли;
85
ОбработкаИзмененияВидаОплаты (ЭлементыФормы. Выработка.
ТекущаяСтрока);
КонецПроцедуры
Процедура ВыработкаПередОкончаниемРедактирования (Элемент,
НоваяСтрока, ОтменаРедактирования, Отказ)
Если не ОтменаРедактирования Тогда
ТекСтрока = Элемент. ТекущаяСтрока;
ТекКолонка = Элемент. ТекущаяКолонка;
Если ЧислоСтрок (ТекСтрока. Механизм, ТекСтрока. Вступление,
ТекСтрока. Председатель) >1 Тогда
Сообщить ("В строке " + ТекСтрока. НомерСтроки + " дублируется
комбинация ключевых полей!");
ТекСтрока. Вступление = ПустойВступление;
Отказ = истина;
Возврат;
КонецЕсли;
Если ТекСтрока. Вступление <> ОсновнойВступление Тогда
Если ЧислоСтрок (ТекСтрока. Механизм, ОсновнойВступление, ТекСтрока.
Председатель) =0 Тогда
Сообщить ("У Председательа " + ТекСтрока. Председатель + " на
механизме " + ТекСтрока. Механизм + " данные не введены!");
ТекСтрока. Вступление = ПустойВступление;
Отказ = истина;
Возврат;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ВыработкаПриНачалеРедактирования (Элемент, НоваяСтрока,
Копирование)
ТекСтрока = Элемент. ТекущаяСтрока;
Если Копирование Тогда
ТекКолонка = Элемент. ТекущаяКолонка;
ТекСтрока. Вступление = ПустойВступление;
КонецЕсли;
Если НоваяСтрока Тогда
ТекСтрока. Авторасчет = Истина;
КонецЕсли;
КонецПроцедуры
Процедура КоманднаяПанель1Рассчитать (Кнопка)
Если не РаботаСДиалогами. ЗаписатьДокументПередВыполнениемДействия
(ЭтотОбъект, ЭтаФорма, "Записать данные?") Тогда
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос. Текст = "ВЫБРАТЬ
Запрос. УстановитьПараметр ("Основной", ОсновнойВступление);
Запрос. УстановитьПараметр ("ДатаДок", Дата);
Запрос. УстановитьПараметр ("Ссылка", Ссылка);
ТабРезультат = Запрос. Выполнить (). Выгрузить ();
Для каждого СтрТЧ Из Выработка Цикл
СтрТаб = ТабРезультат. Найти (СтрТЧ. НомерСтроки, "НомерСтроки");
Если СтрТаб <> Неопределено Тогда
СтрТЧ. Результат = СтрТаб. Результат;
СтрТЧ. Размер = СтрТаб. Размер;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ВыработкаРезультатПриИзменении (Элемент)
ЭлементыФормы. Выработка. ТекущаяСтрока. Авторасчет = Ложь;
КонецПроцедуры
Процедура ВыработкаВыработкаПриИзменении (Элемент)
Пересчет (ЭлементыФормы. Выработка. ТекущаяСтрока);
КонецПроцедуры
86
Процедура ВыработкаВступлениеНачалоВыбора (Элемент,
СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекСтрока = ЭлементыФормы. Выработка. ТекущаяСтрока;
СписокВидов = ПолучитьДоступныеВиды (ТекСтрока. Механизм);
ЭлементСписка = ВыбратьИзСписка (Элемент, СписокВидов. НайтиПоЗначению
(Элемент. Значение));
Если ЭлементСписка <> Неопределено Тогда
Элемент. Значение = ЭлементСписка. Значение;
ТекСтрока. Размер = ПолучитьРазмер (ТекСтрока. Механизм, Элемент.
Значение);
Пересчет (ТекстСтрока);
КонецЕсли;
КонецПроцедуры
ОсновнойВступление= Справочники. лс_Пользователи. Данные;
ПустойВступление= Справочники. лс_Пользователи. ПустаяСсылка ();
Листинг модуля документа "Голосование"
// ПЕРЕМЕННЫЕ МОДУЛЯ
Перем мТекущаяДатаДокумента;
Перем мДеревоМакетов; // Хранит дерево макетов печатных форм
Перем мПодменюПечати; // Хранит элемент управления подменю печати
Перем мПечатьПоУмолчанию; // Хранит элемент управления кнопку печать
по умолчанию
Перем мКнопкиЗаполненияТЧ; // Хранит дерево кнопок подменю заполнение
ТЧ
Перем мСтарыйРезультат; // Хранит "Результат" текущей строки
Перем мСтароеФизлицо; // Хранит ссылку на физлицо, для формирования
имени кнопки расчета по работнику
Перем мЕдиничнаяОрганизация; // Хранит ссылку на головную организацию
Перем мМассивЭУ; // Массив ЭУ видимостью которых необходимо управлять
в зависимости от учетной политики по персоналу
Перем ПоправочныйКоэффициент;
// ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩЕГО НАЗНАЧЕНИЯ
Процедура ПриСменеПериодаРегистрации ()
ДатаНачалаБП = НачалоМесяца (ПериодРегистрации);
ДатаОкончанияБП = КонецМесяца (ПериодРегистрации);
КонецПроцедуры
Функция ПолучитьПремиюВсего ()
Рез = 0;
Для каждого СтрТаб Из Начисления Цикл
ПромРез =? (СтрТаб. База<>0, СтрТаб. База, СтрТаб. Результат);
Рез = Рез + ПромРез*СтрТаб. КТУ;
КонецЦикла;
ВозвратРез;
КонецФункции
// Процедура устанавливает подменю "Заполнить" в командных панелях ТЧ
документа при необходимости
Процедура УстановитьКнопкиПодменюЗаполненияТЧ ()
СоответствиеТЧ = Новый Соответствие;
СоответствиеТЧ. Вставить (ЭлементыФормы. Начисления, ЭлементыФормы.
КоманднаяПанельНачисления);
мКнопкиЗаполненияТЧ = РаботаСДиалогами.
СформироватьПодменюЗаполненияТЧ (Ссылка, СоответствиеТЧ, Новый Действие
("НажатиеНаДополнительнуюКнопкуЗаполненияТЧ"));
КонецПроцедуры // УстановитьКнопкиПодменюЗаполненияТЧ ()
// Процедура устанавливает подменю "Печать" и кнопку "Печать по
умолчанию" при необходимости
Процедура УстановитьКнопкиПечати ()
мДеревоМакетов = РаботаСДиалогами. ПолучитьДеревоМакетовПечати
(Ссылка, ПолучитьСтруктуруПечатныхФорм (), Новый Действие
("ОсновныеДействияФормыПечать"), Новый Действие
("ОсновныеДействияФормыУстановитьПечатьПоУмолчанию"));
Источник: https://baza.diplomsite.ru/previewfile/814