Конфигурирование программы "1С:Предприятие" на основе предприятия сельскохозяйственной отрасли
Назначение и цели создания программного обеспечения. Характеристики объекта автоматизации. Требования к программному обеспечению. Характеристика производимой продукции предприятия. Автоматизация компонента "Зарплата и кадры" для расчета заработной платы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 15.04.2012 |
Размер файла | 98,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Иначе
Операция. Кредит. Счет = СчетЗатрат1;
Операция. Кредит. Субконто (1, Субконто4);
Операция. Кредит. Субконто (2, Субконто5);
Операция. Кредит. Субконто (3, Субконто6);
КонецЕсли;
Если ЦеныВДоговоре = 2 Тогда
Если ОплатаДоговора = 2 Тогда
Операция. Валюта = Валюта;
Операция. ВалСумма = СуммаРеализации;
КонецЕсли;
Если ВестиУчетРасчетовУЕ = 1 Тогда
Операция. Сумма = ВсегоВыручкаРуб - ВсегоСуммоваяРазница;
Операция. Валюта = Валюта;
Операция. ВалСумма = СуммаРеализации;
Иначе
Операция. Сумма = СуммаРеализации*Курс / Кратность;
КонецЕсли;
Иначе
Операция. Сумма = СуммаРеализации;
КонецЕсли;
Если ВсегоСуммоваяРазница <> 0 Тогда
Операция. НоваяПроводка();
Операция. НомерЖурнала = «МТ»;
Операция. СодержаниеПроводки = «Суммовая разница»;
Операция. ПервичныйДокумент = глПредставлениеПервичногоДокумента(Контекст);
Операция. Дебет. Счет = СчетРасчетовСПокупателем;
Операция. Дебет. Контрагенты = Контрагент;
Операция. Дебет. Договоры = Договор;
Если ПустоеЗначение(СчетЗатрат1) = 1 Тогда
Операция. Кредит. Счет = Сч91_1;
Операция. Кредит. ПрочиеДоходыИРасходы = СтатьяПрочихДоходовИРасходов;
Иначе
Операция. Кредит. Счет = СчетЗатрат1;
Операция. Кредит. Субконто (1, Субконто4);
Операция. Кредит. Субконто (2, Субконто5);
Операция. Кредит. Субконто (3, Субконто6);
КонецЕсли;
Операция. Валюта = Валюта;
Операция. Сумма = ВсегоСуммоваяРазница;
КонецЕсли;
КонецЕсли;
…
Модуль формы «ОтпускМатериаловНаСторону»
…
Форма. Закладки. ДобавитьЗначение («Счет затрат»);
КонецПроцедуры // УправлениеЗакладками
Процедура ПриВыбореСчетаЗатрат()
Для А = 1 По 3 Цикл
НазначитьТип («Субконто»+А, СчетЗатрат. ВидСубконто(А));
КонецЦикла;
КонецПроцедуры // ПриВыбореСчета
Процедура ПриВыбореСчетаЗатрат1 ()
Для А = 1 По 3 Цикл
В = А + 3;
НазначитьТип («Субконто»+В, СчетЗатрат1. ВидСубконто(А));
КонецЦикла;
КонецПроцедуры // ПриВыбореСчета
…
Форма. Закладки. ТекущаяСтрока(1);
Форма. ИспользоватьСлой («СчетЗатрат», 0);
КонецЕсли;
…
Процедура ПриВыбореЗакладки (НомерЗакладки, ЗначениеЗакладки)
Если НомерЗакладки = 1 Тогда
Форма. ИспользоватьСлой («Основной», 2);
Иначе
Форма. ИспользоватьСлой («СчетЗатрат», 2);
КонецЕсли;
Если Форма. ИспользоватьЗакладки() = 1 Тогда
Если Форма. Закладки. ТекущаяСтрока() = 1 Тогда
ПриВыбореВидаОтпуска();
УправлениеВидимостьюРеквизитов();
УправлениеКурсом();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
…
Модуль отчета «ОтчетПоОС»
…
Если БИ. ПолучитьСчет (1, Сч01_1) = 1 Тогда
СчетУчета = Сч01_1;
нБаланс = БИ.СНД();
кБаланс = БИ.СКД();
оБаланс = БИ.ДО() - БИ.КО();
ИначеЕсли БИ. ПолучитьСчет (1, Сч01_0) = 1 Тогда
СчетУчета = Сч01_0;
нБаланс = БИ.СНД();
кБаланс = БИ.СКД();
оБаланс = БИ.ДО() - БИ.КО();
ИначеЕсли БИ. ПолучитьСчет (1, Сч01_2) = 1 Тогда
СчетУчета = Сч01_2;
нБаланс = БИ.СНД();
кБаланс = БИ.СКД();
оБаланс = БИ.ДО() - БИ.КО();
ИначеЕсли БИ. ПолучитьСчет (1, Сч01_3) = 1 Тогда
СчетУчета = Сч01_3;
нБаланс = БИ.СНД();
кБаланс = БИ.СКД();
оБаланс = БИ.ДО() - БИ.КО();
ИначеЕсли БИ. ПолучитьСчет (1, Сч01_4) = 1 Тогда
СчетУчета = Сч01_4;
нБаланс = БИ.СНД();
кБаланс = БИ.СКД();
оБаланс = БИ.ДО() - БИ.КО();
ИначеЕсли БИ. ПолучитьСчет (1, Сч01_6) = 1 Тогда
СчетУчета = Сч01_6;
нБаланс = БИ.СНД();
кБаланс = БИ.СКД();
оБаланс = БИ.ДО() - БИ.КО();
ИначеЕсли БИ. ПолучитьСчет (1, Сч01_7) = 1 Тогда
СчетУчета = Сч01_7;
нБаланс = БИ.СНД();
кБаланс = БИ.СКД();
оБаланс = БИ.ДО() - БИ.КО();
ИначеЕсли БИ. ПолучитьСчет (1, Сч01_8) = 1 Тогда
СчетУчета = Сч01_8;
нБаланс = БИ.СНД();
кБаланс = БИ.СКД();
оБаланс = БИ.ДО() - БИ.КО();
ИначеЕсли БИ. ПолучитьСчет (1, Сч01_9) = 1 Тогда
СчетУчета = Сч01_9;
нБаланс = БИ.СНД();
кБаланс = БИ.СКД();
оБаланс = БИ.ДО() - БИ.КО();
Иначе
…
Модуль отчета «АктСверки»
Документ = Опер. Документ;
Если ПустоеЗначение (СокрЛП(СтрЗаменить (СтрЗаменить (СтрЗаменить (ПервичныйДокумент,».», "»),»,», "»), «№»,»»))) = 0 Тогда
ПервичныйДокумент = СокрЛП (Опер. ПервичныйДокумент);
Если ПустоеЗначение (Опер. СодержаниеПроводки)=0 тогда // для выписок и бух. справок
ПервичныйДокумент = СокрЛП (Опер. СодержаниеПроводки);
ДатаДок = СокрЛП (Лев(Опер. ПервичныйДокумент, Найти (Опер. ПервичныйДокумент,»,») - 1));
ДлинаСтр = СтрДлина (Опер. ПервичныйДокумент);
НомерДок = СокрЛП (Прав(Опер. ПервичныйДокумент, ДлинаСтр-Найти (Опер. ПервичныйДокумент, «№»)));
Если Лев (Опер. Документ, Найти (Опер. Документ, "») - 1) <> «Выписка» тогда
ПервичныйДокумент = ПервичныйДокумент +».» + НомерДок + «от» + ДатаДок +».»; // для б.с.
Иначе
ПервичныйДокумент = ПервичныйДокумент +». П/п №» + НомерДок + «от» + ДатаДок +».»; // для выписок
КонецЕсли;
КонецЕсли;
Если СокрЛП (Опер. Содержание) = «Отгрузка товаров (продукции)» тогда // для документов по отгрузке
Флаг = 0;
ДокТекст = СоздатьОбъект («Документ»);
ДокТекст. ВыбратьПодчиненныеДокументы (, Опер. Документ);
Если ДокТекст. ПолучитьДокумент() = 1 тогда
ДокВыборки = ДокТекст. ТекущийДокумент();
ДатаДок = ДокТекст. ДатаДок;
НомерДок = СокрЛП (ДокТекст. НомерДок);
ПервичныйДокумент = «Отгрузка товаров (продукции) по С/ф №» + НомерДок + «от» + ДатаДок +».»;
Флаг = 1;
КонецЕсли;
Если Флаг = 0 Тогда
ПервичныйДокумент = СокрЛП (Опер. СодержаниеПроводки);
ДатаДок = СокрЛП (Лев(Опер. ПервичныйДокумент, Найти (Опер. ПервичныйДокумент,»,») - 1));
ДлинаСтр = СтрДлина (Опер. ПервичныйДокумент);
НомерДок = СокрЛП (Прав(Опер. ПервичныйДокумент, ДлинаСтр-Найти (Опер. ПервичныйДокумент, «№»)));
ПервичныйДокумент = «Отгрузка товаров (продукции) по Таварной накладной №» + НомерДок + «от» + ДатаДок +».»;
КонецЕсли;
КонецЕсли;
Операция=Операция+» («+ПервичныйДокумент+»)»;
Иначе
Если ПустоеЗначение (Опер. Содержание) = 0 Тогда // для бух. справок
Операция=Операция+» («+СокрЛП (Опер. Содержание)+»)»;
ИначеЕсли ПустоеЗначение (Опер. СодержаниеПроводки) = 0 Тогда
Операция=Операция+» («+СокрЛП (Опер. СодержаниеПроводки)+»)»;
Иначе
Операция=Операция+» («+Опер. ДатаОперации+»)»;
КонецЕсли;
КонецЕсли;
…
Модуль обработки «ОбработкаДокументов»
…
Если Обработка = «СменитьНомер» Тогда
Если Док. Проведен() = 1 Тогда
Если Номер < 10 тогда
НомерД = «У000000»+Номер
ИначеЕсли Номер < 100 тогда
НомерД = «У00000»+Номер
ИначеЕсли Номер < 1000 тогда
НомерД = «У0000»+Номер
ИначеЕсли Номер < 10000 тогда
НомерД = «У000»+Номер
ИначеЕсли Номер < 100000 тогда
НомерД = «У00»+Номер
ИначеЕсли Номер < 1000000 тогда
НомерД = «У0»+Номер
ИначеЕсли Номер < 10000000 тогда
НомерД = «У»+Номер
КонецЕсли;
Док. НомерДок = НомерД;
Док. Записать();
Номер = Номер + 1;
КонецЕсли;
КонецЕсли;
…
4.2 Компонента «1С: Зарплата и Кадры»
Модуль формы «Ввод НачальногоСальда»
…
Функция ПосчитатьИтог()
Итого=0;
ВыбратьСтроки();
Пока ПолучитьСтроку()>0 Цикл
Если ТипЗначения(ТекущееСальдо) = 1 тогда
Итого = Итого + ТекущееСальдо
КонецЕсли;
КонецЦикла;
Возврат «Текущее сальдо: «+Формат (Итого, «Ч015.2»)
КонецФункции // ПосчитатьИтог
…
Модуль формы «ВыплатаЗаработнойПлаты»
…
Если Сотрудник. Подразделение. Получить(ДатаПериода).Наименование = «Управление» тогда
Сумма = СуммаБезПроцента;
Если Сумма <= 0 Тогда
Сумма = Сотрудник. Оклад. Получить(ДатаПериода)
ИначеЕсли Сумма < Сотрудник. Оклад. Получить(ДатаПериода)*1.5 тогда
Сумма = Сотрудник. Оклад. Получить(ДатаПериода)*1.5
ИначеЕсли Сумма < Сотрудник. Оклад. Получить(ДатаПериода)*2.5 тогда
Сумма = Сотрудник. Оклад. Получить(ДатаПериода)*2.5
Иначе
Сумма = Сумма
КонецЕсли;
Иначе
Сумма = СуммаБезПроцента*Процент/100;
КонецЕсли;
// +++ если накопленная заболжность больше суммы для начислений, то ставим сумму
Если СуммаВыплаты > 0 тогда
Если Сумма > СуммаВыплаты тогда
Сумма = СуммаВыплаты
// «закроем» оставшиеся действующие долгосрочные начисления
ТаблицаНачисленийУдержаний = «»;
глВидРасчетаДействует (Сотрудник, ДатаУвольнения, ДатаУвольнения, ТаблицаНачисленийУдержаний);
Для Номер = 1 по ТаблицаНачисленийУдержаний. КоличествоСтрок() Цикл
ТаблицаНачисленийУдержаний. ПолучитьСтрокуПоНомеру(Номер);
Если Найти (», СсудаПредприятия, ДоговорГраждПравХаракт,»,», «+ТаблицаНачисленийУдержаний. Документ. Вид()+»,») = 0 Тогда
УстановитьРеквизитСправочника (ТаблицаНачисленийУдержаний. Расчет, «Действует», 0, ДатаУвольнения+1);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры // ОбработкаПроведения
Модуль документа «СведенияДляРасчетаЕСНСписком»
Функция Проверка(ОбработчикСообщений)
МожноПроводить = 1;
НазваниеДока = «Документ «+ глПредставлениеДокумента(Контекст)+»:»;
Док = ТекущийДокумент();
// проверим корректность заполнения документа
Если ПустоеЗначение(Сотрудник) = 1 Тогда
глДобавитьСообщение (ОбработчикСообщений, НазваниеДока+ «не выбран сотрудник.», Док, «Сотрудник»);
МожноПроводить = 0;
КонецЕсли;
Возврат МожноПроводить
КонецФункции // Проверка()
// Предопределенная процедура
Процедура ОбработкаПроведения(ОбработчикСообщений)
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Если (Сотрудник. Выбран()=1) Тогда
// если документ содержит ошибки или проведен в прошлом периоде, то не проводим
Если Проверка(ОбработчикСообщений) = 0 Тогда
СтатусВозврата(0); Возврат
КонецЕсли;
ЕстьДвижения = 0; // есть движения документа
ЖЗ = СоздатьОбъект («ЖурналРасчетов. Зарплата»);
КТП = ЖЗ. КонецТекущегоПериода();
ПриказОПриеме = глПриказПоСотруднику (Сотрудник, КТП, «ПриказОПриемеНаРаботу, ПриказОЗачисленииВСпискиЧасти»);
Попытка
ДатаПриема = ПриказОПриеме. ДатаПриема;
Если ДатаПриема >= ДатаДок Тогда
ДатаПФР = ДатаПриема
Иначе
ДатаПФР = ДатаДок
КонецЕсли;
Исключение
ДатаПФР = ДатаДок
КонецПопытки;
Если КатегорияПлательщикаПФР. Выбран()=1 Тогда
УстановитьРеквизитСправочника (Сотрудник, «КатегорияПлательщикаПФР», КатегорияПлательщикаПФР, ДатаПФР);
ЕстьДвижения = 1;
КонецЕсли;
// Если ВзиматьНаСтрахПФР>0 Тогда
УстановитьРеквизитСправочника (Сотрудник, «НеВзиматьНаСтрахПФР», 0, ДатаПФР);
ЕстьДвижения = 1;
// КонецЕсли;
Если ПФР <> 1 Тогда
УстановитьРеквизитСправочника (Сотрудник, «НеВзиматьЕСНвПФР», 1, ДатаПФР);
ЕстьДвижения = 1;
Иначе
УстановитьРеквизитСправочника (Сотрудник, «НеВзиматьЕСНвПФР», 0, ДатаПФР);
ЕстьДвижения = 1;
КонецЕсли;
Если ФСС <> 1 Тогда
УстановитьРеквизитСправочника (Сотрудник, «НеВзиматьЕСНвФСС», 1, ДатаПФР);
ЕстьДвижения = 1;
Иначе
УстановитьРеквизитСправочника (Сотрудник, «НеВзиматьЕСНвФСС», 0, ДатаПФР);
ЕстьДвижения = 1;
КонецЕсли;
Если ФОМС <> 1 Тогда
УстановитьРеквизитСправочника (Сотрудник, «НеВзиматьЕСНвФОМС», 1, ДатаПФР);
ЕстьДвижения = 1;
Иначе
УстановитьРеквизитСправочника (Сотрудник, «НеВзиматьЕСНвФОМС», 0, ДатаПФР);
ЕстьДвижения = 1;
КонецЕсли;
Если ЕстьДвижения=0 Тогда
Сообщить («Не внесено изменений в сведения для расчета ЕСН - документ не проведен»);
СтатусВозврата(0);
Возврат;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры // ОбработкаПроведения
Модуль формы «СведенияДляРасчетаЕСНСписком»
Перем ОбработчикСообщений; // обработчик сообщения при проверке документа
Перем СписокДействий; // список действий, выполняемых по кнопке Действия
Перем ПроведенВПрошлом;
Перем ЖурналРасчетовЗарплата, КТП, НТП;
Возврат
КонецЕсли;
Если Форма. МодальныйРежим() = 0 тогда
глПодборПоСотрудникам(Контекст);
КонецЕсли;
КонецПроцедуры
КонецФункции
// *************************************************************************
Процедура ПередЗаписью()
КонецПроцедуры // ПриЗаписи
// *************************************************************************
Процедура ПровестиИзФормы (НажатаКнопкаОК=0)
ПриЗаписиПерепроводить(0);
ПередЗаписью();
Записать();
ПриЗаписиПерепроводить(1);
Если Проверка()=1 Тогда
Если Провести (, ОбработчикСообщений)=0 Тогда
глДобавитьСообщение (ОбработчикСообщений, «Документ не проведен.», ТекущийДокумент());
КонецЕсли;
КонецЕсли;
глОткрытьОбработчик (ОбработчикСообщений, Вид()+НомерДок);
// если вызвали через кнопку ОК, то закроем форму
// и обработчик соообщений пуст
Если (НажатаКнопкаОК=1) и (глПустойОбработчик(ОбработчикСообщений)=1) Тогда
Форма. Закрыть();
КонецЕсли;
КонецПроцедуры
// *************************************************************************
Процедура ПриВыбореСотрудника()
Сотрудник = Сотрудник. ОсновнойЭлемент;
КонецПроцедуры
// *************************************************************************
Процедура ОтрисоватьСтатики()
ТекстДаты = Формат (ДатаДок, «ДДДММГГГГ»);
Форма.текстКатегорияПлательщика. Заголовок («&Категория плательщика ПФ с «+ ТекстДаты);
КонецПроцедуры // ОтрисоватьСтатики
// *************************************************************************
Процедура ПриОткрытии()
Перем ПараметрыКоманды;
// заполним список команд для кнопки Действия
СписокДействий. ДобавитьЗначение («Движения документа»);
СписокДействий. ДобавитьЗначение («Перейти в журнал»);
// инициализация обработчика сообщений
ОбработчикСообщений = глСоздатьОбработчикСообщений (глПредставлениеДокумента(Контекст));
Предупреждение («У документа «" «+ПредставлениеВида()+»""»
«отсутствует печатная форма… Вывести на печать»
«документы данного вида невозможно.», 10);
СтатусВозврата(0);
КонецЕсли;
ОтрисоватьСтатики();
глКонтекстОткрытойФормы («Документ», Контекст);
СписокНередактируемыхКонтролов = СоздатьОбъект («СписокЗначений»);
СписокНередактируемыхКонтролов. ДобавитьЗначение («НомерДок»);
СписокНередактируемыхКонтролов. ДобавитьЗначение («ТекстПериода»);
СписокНередактируемыхКонтролов. ДобавитьЗначение («кнМинусПериод»);
СписокНередактируемыхКонтролов. ДобавитьЗначение («кнПлюсПериод»);
СписокНередактируемыхКонтролов. ДобавитьЗначение («Начало»);
СписокНередактируемыхКонтролов. ДобавитьЗначение («Окончание»);
СписокНередактируемыхКонтролов. ДобавитьЗначение («кнВыбораПериода»);
СписокНередактируемыхКонтролов. ДобавитьЗначение («ПредставлениеДокумента»);
СписокНередактируемыхКонтролов. ДобавитьЗначение («Сотрудник»);
СписокНередактируемыхКонтролов. ДобавитьЗначение («кнЗаполнить»);
СписокНередактируемыхКонтролов. ДобавитьЗначение («кнПодбор»);
СписокНередактируемыхКонтролов. ДобавитьЗначение («кнОчистить»);
СписокНередактируемыхКонтролов. ДобавитьЗначение («Дополнительный»);
ПроведенВПрошлом = глПроведенВПрошлом (Контекст, СписокНередактируемыхКонтролов);
Если ПроведенВПрошлом=1 Тогда
ПриЗаписиПерепроводить(0);
ПриЗаписиПерепроводить(1);
КонецЕсли;
КонецПроцедуры // ПриОткрытии()
// *************************************************************************
Процедура ПриЗаписи()
ПередЗаписью();
КонецПроцедуры // ПриЗаписи
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Если (Сотрудник. Выбран()=1) Тогда
Если (Расценка <> 0) и (ПустоеЗначение(Количество) <> 1) Тогда
ЖрнЗарплата. УстановитьРеквизит («НомерСтрокиДокумента», НомерСтроки);
ЖрнЗарплата. УстановитьРеквизит («Рассчитана», 1);
ЖрнЗарплата. УстановитьРеквизит («Фиксирована», 1);
Если Флаг = 1 тогда
ЖрнЗарплата. ВвестиРасчет (Сотрудник, ВидРасчета. СдельныйНарядГруппойСРКиСК, ДатаДок, ДатаДок, Расценка*Количество);
иначе
ЖрнЗарплата. ВвестиРасчет (Сотрудник, ВидРасчета. СдельныйНарядГруппой, ДатаДок, ДатаДок, Расценка*Количество);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры;
Модуль формы «НарядИндивидуальныйНаГруппу»
Перем ОбработчикСообщений; // обработчик сообщения при проверке и проведении документа
Перем СписокДействий; // список действий, выполняемых по кнопке Действия
Перем ПроведенВПрошлом; // = 1 - документ проведен в прошлом периоде
СуммаПоНаряду = 0;
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
СуммаПоНаряду = СуммаПоНаряду + Расценка * Количество;
КонецЦикла;
Возврат глЧислоВФорматеПользователя(СуммаПоНаряду);
КонецФункции
глОчиститьСообщения(ОбработчикСообщений);
Если Выбран() = 0 Тогда
глДобавитьСообщение (ОбработчикСообщений, «Документ не записан.», ТекущийДокумент(), «Сотрудник»)
КонецЕсли;
Если Сотрудник. Выбран()=0 Тогда
глДобавитьСообщение (ОбработчикСообщений, «Не выбран сотрудник! Проведение документа невозможно.», ТекущийДокумент(), «Сотрудник»)
КонецЕсли;
Если КоличествоСтрок() = 0 Тогда
глДобавитьСообщение (ОбработчикСообщений, «Список выполненных работ пуст. Проведение документа не возможно.», ТекущийДокумент(), «КодНормы»)
Иначе
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Если (ШаблонПроводки. Наименование = «Распределять пропорционально расчетной базе») Тогда
глДобавитьСообщение (ОбработчикСообщений, «Неверно указан шаблон проводки в строке №"+НомерСтроки, ТекущийДокумент(), «ШаблонПроводки»)
КонецЕсли;
// Если УчетНалогаНаПрибыль. ВидРасхода=Перечисление. ВидыРасходов. ПропорциональноРаспределять Тогда
// глДобавитьСообщение (ОбработчикСообщений, «В данных учета налога на прибыль выбран вид расхода « «Распределять пропорционально расчетной базе»» в строке №"+НомерСтроки, ТекущийДокумент(), «УчетНалогаНаПрибыль»);
// КонецЕсли;
Если КодНормы. Выбран() = 0 Тогда
глДобавитьСообщение (ОбработчикСообщений, «Не выбран вид работ в строке №"+НомерСтроки, ТекущийДокумент(), «КодНормы»)
КонецЕсли;
КонецЦикла;
КонецЕсли;
Возврат глПустойОбработчик(ОбработчикСообщений)
КонецФункции // Проверка
Процедура ПриВыбореРаботы()
Расценка = КодНормы. Расценка. Получить(ДатаДок);
ШаблонПроводки = КодНормы. ШаблонПроводки;
// УчетНалогаНаПрибыль = КодНормы. УчетНалогаНаПрибыль;
КонецПроцедуры
Процедура ПровестиИзФормы (НажатаКнопкаОК=0)
ПриЗаписиПерепроводить(0);
Записать();
Если ПроведенВПрошлом<>1 Тогда
ПриЗаписиПерепроводить(1);
Если Проверка()=1 Тогда
Если Провести (, ОбработчикСообщений)=0 Тогда
глДобавитьСообщение (ОбработчикСообщений, «Документ не проведен.», ТекущийДокумент());
КонецЕсли;
КонецЕсли;
глОткрытьОбработчик (ОбработчикСообщений, Вид()+НомерДок);
КонецЕсли;
// если вызвали через кнопку ОК, то закроем форму
// и обработчик соообщений пуст
Если (НажатаКнопкаОК=1) и (глПустойОбработчик(ОбработчикСообщений)=1) Тогда
Форма. Закрыть();
КонецЕсли;
Процедура ВводНового(Копирование)
Если Копирование=1 Тогда
Возврат;
КонецЕсли;
глВводНовогоДокумента(Контекст);
КонецПроцедуры // ВводНового
Процедура ПриОткрытии()
Перем ПараметрыКоманды; // параметры команды при открытии
// если открыли для печати
Если глВыполнитьКомандуФормы (Контекст, «Печать», "»)=1 Тогда
Предупреждение («У документа «" «+ПредставлениеВида()+»""»
«отсутствует печатная форма… Вывести на печать»
«документы данного вида невозможно.», 10);
СтатусВозврата(0);
Возврат;
КонецЕсли;
// инициализация обработчика сообщений
ОбработчикСообщений = глСоздатьОбработчикСообщений (глПредставлениеДокумента(Контекст));
// заполним список команд для кнопки Действия
СписокДействий. ДобавитьЗначение («Структура подчиненности»);
СписокДействий. ДобавитьЗначение («Движения документа»);
СписокДействий. ДобавитьЗначение («Перейти в журнал»);
// если открыли для заполнения
Если глВыполнитьКомандуФормы (Контекст, «Заполнить», ПараметрыКоманды)=1 Тогда
глЗаполнитьДокумент (ПараметрыКоманды, Контекст);
КонецЕсли;
СписокНередактируемыхКонтролов = СоздатьОбъект («СписокЗначений»);
СписокНередактируемыхКонтролов. ДобавитьЗначение («НомерДокумента»);
СписокНередактируемыхКонтролов. ДобавитьЗначение («ДатаДок»);
СписокНередактируемыхКонтролов. ДобавитьЗначение («Сотрудник»);
СписокНередактируемыхКонтролов. ДобавитьЗначение («КодНормы»);
СписокНередактируемыхКонтролов. ДобавитьЗначение («Расценка»);
СписокНередактируемыхКонтролов. ДобавитьЗначение («Количество»);
ПроведенВПрошлом = глПроведенВПрошлом (Контекст, СписокНередактируемыхКонтролов);
Если ПроведенВПрошлом=1 Тогда
Форма.кнПровести. Видимость(0);
Форма.кнИсправить. Видимость(1);
ПриЗаписиПерепроводить(0);
Иначе
Форма.кнИсправить. Видимость(0);
ПриЗаписиПерепроводить(1);
КонецЕсли;
НомерДокумента = НомерДок;
глКонтекстОткрытойФормы («Документ», Контекст);
КонецПроцедуры // ПриОткрытии
Процедура ПриНачалеВыбораЗначения (ИдентЭлемДиалога, ФлагСтандОбр)
Если ИдентЭлемДиалога = «ШаблонПроводки» Тогда
ФлагСтандОбр = 0;
Параметр=СоздатьОбъект («СписокЗначений»);
Параметр. ДобавитьЗначение («Начисление», «ОписательПроводки»);
Параметр. ДобавитьЗначение (ШаблонПроводки, «ШаблонПроводки»);
ОткрытьФормуМодально («Обработка. ВводШаблонаПроводок», Параметр);
Если ТипЗначения(Параметр)=11 Тогда
ШаблонПроводки=Параметр
КонецЕсли;
КонецЕсли;
КонецПроцедуры // ПриНачалеВыбораЗначения()
Если ПроведенВПрошлом=1 Тогда
Предупреждение («Документ проведен в прошлом периоде. Его нельзя редактировать.», 10);
СтатусВозврата(0);
КонецЕсли;
Если ПроведенВПрошлом=1 Тогда
Предупреждение («Документ проведен в прошлом периоде. Его нельзя редактировать.», 10);
СтатусВозврата(0);
КонецЕсли;
КонецПроцедуры // ПриУдаленииСтроки
СписокДействий = СоздатьОбъект («СписокЗначений»);
Модуль документа «ВводВремени»
Процедура ОбработкаПроведения()
ЖрнЗарплата = СоздатьОбъект («ЖурналРасчетов. Зарплата»);
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Если (Сотрудник. Выбран()=1) Тогда
Если ХО. Выбран()=1 Тогда
ЖрнЗарплата. УстановитьРеквизит («Счет», ХО);
ЖрнЗарплата. УстановитьРеквизит («ДокументомЛи», 1);
КонецЕсли;
Если (Отработанно <> 0) и (ПустоеЗначение(РК) = 1) Тогда
ЖрнЗарплата. УстановитьРеквизит («Дни», Дни);
ЖрнЗарплата. УстановитьРеквизит («Часы», Часы);
ЖрнЗарплата. УстановитьРеквизит («НомерСтрокиДокумента», НомерСтроки);
Если ФлагРКСК = 0 тогда
ЖрнЗарплата. ВвестиРасчетНаОсновании (ТекущийДокумент(), Сотрудник, ВидРасчета. Повременная,? (ПустоеЗначение(Дата1)=0, Дата1, НачМесяца(ДатаДок)),? (ПустоеЗначение(Дата2)=0, Дата2, КонМесяца(ДатаДок)), 0);
Иначе
ЖрнЗарплата. ВвестиРасчетНаОсновании (ТекущийДокумент(), Сотрудник, ВидРасчета. ПовременнаяБезРКСК,? (ПустоеЗначение(Дата1)=0, Дата1, НачМесяца(ДатаДок)),? (ПустоеЗначение(Дата2)=0, Дата2, КонМесяца(ДатаДок)), 0);
КонецЕсли;
ЖрнЗарплата. УстановитьРеквизит («Дни», 0);
ЖрнЗарплата. УстановитьРеквизит («Часы», 0);
ЖрнЗарплата. УстановитьРеквизит («НомерСтрокиДокумента», 0);
КонецЕсли;
Если (Отработанно <> 0) и (ПустоеЗначение(РК) = 0) Тогда
ЖрнЗарплата. УстановитьРеквизит («Дни», Дни);
ЖрнЗарплата. УстановитьРеквизит («Часы», Часы);
ЖрнЗарплата. УстановитьРеквизит («НомерСтрокиДокумента», НомерСтроки);
ЖрнЗарплата. ВвестиРасчетНаОсновании (ТекущийДокумент(), Сотрудник, ВидРасчета. ПовременнаяДляРК,? (ПустоеЗначение(Дата1)=0, Дата1, НачМесяца(ДатаДок)),? (ПустоеЗначение(Дата2)=0, Дата2, КонМесяца(ДатаДок)), 0);
ЖрнЗарплата. ВвестиРасчетНаОсновании (ТекущийДокумент(), Сотрудник, ВидРасчета. РайонныйКоэффициентДляПовременки,? (ПустоеЗначение(Дата1)=0, Дата1, НачМесяца(ДатаДок)),? (ПустоеЗначение(Дата2)=0, Дата2, КонМесяца(ДатаДок)), 0);
ЖрнЗарплата. УстановитьРеквизит («Дни», 0);
ЖрнЗарплата. УстановитьРеквизит («Часы», 0);
ЖрнЗарплата. УстановитьРеквизит («НомерСтрокиДокумента», 0);
КонецЕсли;
Если Премия <> 0 тогда
ЖрнЗарплата. УстановитьРеквизит («НомерСтрокиДокумента», НомерСтроки);
Если ФлагРКСК = 0 тогда
ЖрнЗарплата. ВвестиРасчет (Сотрудник, ВидРасчета. ПремияНовая,? (ПустоеЗначение(Дата1)=0, Дата1, НачМесяца(ДатаДок)),? (ПустоеЗначение(Дата2)=0, Дата2, КонМесяца(ДатаДок)), 0);
Иначе
ЖрнЗарплата. ВвестиРасчет (Сотрудник, ВидРасчета. ПремияНоваяБезРКСК,? (ПустоеЗначение(Дата1)=0, Дата1, НачМесяца(ДатаДок)),? (ПустоеЗначение(Дата2)=0, Дата2, КонМесяца(ДатаДок)), 0);
КонецЕсли;
КонецЕсли;
Если Класность <> 0 тогда
ЖрнЗарплата. УстановитьРеквизит («НомерСтрокиДокумента», НомерСтроки);
Если ФлагРКСК = 0 тогда
ЖрнЗарплата. ВвестиРасчет (Сотрудник, ВидРасчета. ДоплатаЗаКласность,? (ПустоеЗначение(Дата1)=0, Дата1, НачМесяца(ДатаДок)),? (ПустоеЗначение(Дата2)=0, Дата2, КонМесяца(ДатаДок)), 0);
Иначе
ЖрнЗарплата. ВвестиРасчет (Сотрудник, ВидРасчета. ДоплатаЗаКласностьБезРКСК,? (ПустоеЗначение(Дата1)=0, Дата1, НачМесяца(ДатаДок)),? (ПустоеЗначение(Дата2)=0, Дата2, КонМесяца(ДатаДок)), 0);
КонецЕсли;
КонецЕсли;
Если Отгулы <> 0 Тогда
ЖрнЗарплата. УстановитьРеквизит («Дни», Дни);
ЖрнЗарплата. УстановитьРеквизит («Часы», Часы);
ЖрнЗарплата. УстановитьРеквизит («НомерСтрокиДокумента», НомерСтроки);
ЖрнЗарплата. ВвестиРасчетНаОсновании (ТекущийДокумент(), Сотрудник, ВидРасчета. Отгулы,? (ПустоеЗначение(Дата1)=0, Дата1, НачМесяца(ДатаДок)),? (ПустоеЗначение(Дата2)=0, Дата2, КонМесяца(ДатаДок)), 0);
ЖрнЗарплата. УстановитьРеквизит («Дни», 0);
ЖрнЗарплата. УстановитьРеквизит («Часы», 0);
ЖрнЗарплата. УстановитьРеквизит («НомерСтрокиДокумента», 0);
КонецЕсли;
Если (ЧасыНоч <> 0) и (Флаг = 1) Тогда
ЖрнЗарплата. УстановитьРеквизит («НомерСтрокиДокумента», НомерСтроки);
ЖрнЗарплата. УстановитьРеквизит («Часы», ЧасыНоч);
ЖрнЗарплата. ВвестиРасчет (Сотрудник, ВидРасчета. ЗаНочныеЧасыНов,? (ПустоеЗначение(Дата1)=0, Дата1, НачМесяца(ДатаДок)),? (ПустоеЗначение(Дата2)=0, Дата2, КонМесяца(ДатаДок)), 0);
КонецЕсли;
Если (ЧасыВеч <> 0) и (Флаг = 1) Тогда
ЖрнЗарплата. УстановитьРеквизит («НомерСтрокиДокумента», НомерСтроки);
ЖрнЗарплата. УстановитьРеквизит («Часы», ЧасыВеч);
ЖрнЗарплата. ВвестиРасчет (Сотрудник, ВидРасчета. ЗаВечерниеЧасыНов,? (ПустоеЗначение(Дата1)=0, Дата1, НачМесяца(ДатаДок)),? (ПустоеЗначение(Дата2)=0, Дата2, КонМесяца(ДатаДок)), 0);
КонецЕсли;
Если (ВПолуторном <> 0) ИЛИ (ВДвойном <> 0) и (Флаг = 1) Тогда
ЖрнЗарплата. УстановитьРеквизит («НомерСтрокиДокумента», НомерСтроки);
ЖрнЗарплата. УстановитьРеквизит («Часы», ВПолуторном + ВДвойном);
ЖрнЗарплата. ВвестиРасчет (Сотрудник, ВидРасчета. ОплатаСверхурочныхНов,? (ПустоеЗначение(Дата1)=0, Дата1, НачМесяца(ДатаДок)),? (ПустоеЗначение(Дата2)=0, Дата2, КонМесяца(ДатаДок)), 0);
КонецЕсли;
Если (ЧасыПрВых <> 0) и (Флаг = 1) Тогда
ЖрнЗарплата. УстановитьРеквизит («НомерСтрокиДокумента», НомерСтроки);
ЖрнЗарплата. УстановитьРеквизит («Часы», ЧасыПрВых);
ЖрнЗарплата. ВвестиРасчет (Сотрудник, ВидРасчета. ДоплатаЗаПраздничныеНов,? (ПустоеЗначение(Дата1)=0, Дата1, НачМесяца(ДатаДок)),? (ПустоеЗначение(Дата2)=0, Дата2, КонМесяца(ДатаДок)), 0);
КонецЕсли;
Если (Прогулы <> 0) тогда
ЖрнЗарплата. УстановитьРеквизит («НомерСтрокиДокумента», НомерСтроки);
ЖрнЗарплата. УстановитьРеквизит («Дни», Прогулы);
ЖрнЗарплата. УстановитьРеквизит («Результат», 0);
ЖрнЗарплата. УстановитьРеквизит («Рассчитана», 1);
ЖрнЗарплата. УстановитьРеквизит («Фиксирована», 1);
ЖрнЗарплата. ВвестиРасчет (Сотрудник, ВидРасчета. Прогулы,? (ПустоеЗначение(Дата1)=0, Дата1, НачМесяца(ДатаДок)),? (ПустоеЗначение(Дата2)=0, Дата2, КонМесяца(ДатаДок)), 0);
Тариф = Сотрудник. Оклад. Получить (КонМесяца(ДляДнейЧасов));
Если Тариф > 0 тогда
Тариф = Тариф
Иначе
Тариф = Сотрудник. Оклад. Получить (КонМесяца(ДляДнейЧасов)).Тариф. Получить (КонМесяца(ДляДнейЧасов));
КонецЕсли;
КонецЕсли;
глДобавитьСообщение (глОбработчикСообщений, «У сотрудника «+Сотрудник+» изменялись расчетные данные (оклад или тариф) на «+ Тариф +»! Введите табель по измененным данным!!!»,);
КонецЕсли;
ПриВводеСотрудника(Сотрудник);
КонецЕсли;
КонецЦикла;
СортироватьСтроки («Сотрудник»);
КонецПроцедуры
Процедура Очистить()
Если Вопрос («Внимание!!! Список сотрудников будет очищен.»
«Продолжить?», «Да+Нет»)= «Нет» Тогда
Возврат
КонецЕсли;
УдалитьСтроки();
КонецПроцедуры
Процедура Переключение()
Если Флаг <> 1 Тогда
Форма. ЧасыНоч. Доступность(0);
Форма. ЧасыВеч. Доступность(0);
Форма.ВПолуторном. Доступность(0);
Форма. Вдвойном. Доступность(0);
Форма. ЧасыПрВых. Доступность(0);
Иначе
Форма. ЧасыНоч. Доступность(1);
Форма. ЧасыВеч. Доступность(1);
Форма.ВПолуторном. Доступность(1);
Форма. Вдвойном. Доступность(1);
Форма. ЧасыПрВых. Доступность(1);
КонецЕсли;
Предупреждение («Перепроверте норму дней или часов!!!»)
КонецПроцедуры
Процедура ПровестиИзФормы (НажатаКнопкаОК=0)
ПриЗаписиПерепроводить(0);
Записать();
Если ПроведенВПрошлом<>1 Тогда
ПриЗаписиПерепроводить(1);
КонецЕсли;
// если вызвали через кнопку ОК, то закроем форму
// и обработчик соообщений пуст
Если НажатаКнопкаОК=1 Тогда
Провести();
Форма. Закрыть();
Иначе
Провести();
КонецЕсли;
КонецПроцедуры // ПровестиИзФормы
СписокДействий = СоздатьОбъект («СписокЗначений»);
Все виды расчетов связанные с отпусками и больничными
// +++ обнуляет сторнированные документы
Если (Перерасчет = 1) или (сторно = 1) тогда
Дни = 0;
Часы = 0;
Результат = 0;
Возврат
КонецЕсли;
Вид расчета «Повременная»
// Повременная оплата
Процедура ПровестиРасчет()
ЖрнЗарплата = СоздатьОбъект («ЖурналРасчетов. Зарплата»);
// если запись исправлена или фиксирована, то ее не рассчитываем
Если (ЖрнЗарплата. Исправлена=1) или (ЖрнЗарплата. Фиксирована=1) Тогда
глСообщениеТрассировки (глСообщенияТрассировки, «» +? (ЖрнЗарплата. Исправлена=1, «Результат записи исправлен вручную», «Запись фиксирована») +». Расчет не проводился.», 1);
Возврат
Иначе
Документ. ПолучитьСтрокуПоНомеру(НомерСтрокиДокумента);
ВсегоЧасов = Документ. НормаЧасов;
ЧасовЖ = Документ. Женские;
НаДату = Документ. Дата2;
Оклад = Документ. Тариф;
Тариф = Документ. Тариф;
Если Документ. Флаг = 1 Тогда
Если (глФормаТрудаПоТарифуОкладу (Объект. ФормаТруда. Получить(НаДату)) = «Оклад») или (Тариф > 500) Тогда
Результат = Окр (Оклад*(Документ. Отработанно)/ВсегоЧасов, 2,1);
Иначе
Результат = Окр (Тариф*(Документ. Отработанно), 2,1);
КонецЕсли;
Иначе
Если (глФормаТрудаПоТарифуОкладу (Объект. ФормаТруда. Получить(НаДату)) = «Оклад») или (Тариф > 500) Тогда
Результат = Окр (Оклад*(Документ. Отработанно)/ВсегоЧасов, 2,1);
Иначе
Результат = Окр (Тариф*(Документ. Отработанно), 2,1);
КонецЕсли;
КонецЕсли;
Если Документ. Флаг = 1 Тогда
Дней = Документ. Отработанно/8;
Часов = Документ. Отработанно;
Иначе
Дней = Документ. Отработанно;
Часов = Документ. Отработанно*8;
КонецЕсли;
Если Документ. ФлагДЧ = 1 тогда
Дни = 0;
Часы = 0;
Иначе
Дни =? (Сторно=1, - Дней, Дней);
Часы =? (Сторно=1, - Часов, Часов);
КонецЕсли;
Если Документ. ДниФ <> 0 тогда
ДниФ = Документ. ДниФ;
КонецЕсли;
КонецЕсли;
КонецПроцедуры // ПровестиРасчет()
Вид расчета «ПремияНовая»
// Премия для повременки
Процедура ПровестиРасчет()
ЖрнЗарплата = СоздатьОбъект («ЖурналРасчетов. Зарплата»);
// если запись исправлена или фиксирована, то ее не рассчитываем
Если (ЖрнЗарплата. Исправлена=1) или (ЖрнЗарплата. Фиксирована=1) Тогда
глСообщениеТрассировки (глСообщенияТрассировки, «» +? (ЖрнЗарплата. Исправлена=1, «Результат записи исправлен вручную», «Запись фиксирована») +». Расчет не проводился.», 1);
Возврат
Иначе
Документ. ПолучитьСтрокуПоНомеру(НомерСтрокиДокумента);
Если Документ. Флаг =1 Тогда
ВсегоЧасов = Документ. НормаЧасов;
Иначе
ГрафикРаботы = Объект. ГрафикРаботы. Получить(ДатаОкончания);
ГрафикРаботы =? (ПустоеЗначение(ГрафикРаботы)=1, Константа. ОсновнойГрафик, ГрафикРаботы);
Календарь = ГрафикРаботы. ОсновныеЧасы;
НормаЧасов = Календарь. Часов (НачМесяца(ДатаОкончания), КонМесяца(ДатаОкончания));
НормаДней = Календарь. Дней (НачМесяца(ДатаОкончания), КонМесяца(ДатаОкончания));
ВсегоЧасов = Окр (Документ. НормаЧасов*НормаЧасов/НормаДней, 0,1);
КонецЕсли;
// ВсегоЧасов = Документ. НормаЧасов;
Если Документ. ФлагПремия = 1 тогда
Календарь = СоздатьОбъект («Календарь. ПолныйМесяц»);
НормаЧасов = Календарь. Часов (НачМесяца(ДатаОкончания), КонМесяца(ДатаОкончания));
НормаДней = Календарь. Дней (НачМесяца(ДатаОкончания), КонМесяца(ДатаОкончания));
Если Документ. Флаг =1 Тогда
ВсегоЧасов = НормаЧасов
Иначе
ВсегоЧасов = НормаДней
КонецЕсли;
Иначе
ВсегоЧасов = Документ. НормаЧасов;
КонецЕсли;
ЧасовЖ = Документ. Женские;
НаДату = Документ. Дата2;
Оклад = Документ. Тариф;
Тариф = Документ. Тариф;
Отработанно = Документ. Отработанно;
ЧасовНочн = Документ. ЧасыНоч;
ЧасовПраздн = Документ. ЧасыПрВых;
Часов15 = Документ.ВПолуторном;
Часов2 = Документ.ВДвойном;
Класность = Документ. Класность;
Отгулы = Документ. Отгулы;
Если Документ. Флаг = 1 Тогда
Если (глФормаТрудаПоТарифуОкладу (Объект. ФормаТруда. Получить(НаДату)) = «Оклад») или (Тариф > 500) Тогда
РезультатПовр = Окр (Оклад*Отработанно/ВсегоЧасов, 2,1);
РезультатОтг = Окр (Оклад*Отгулы/ВсегоЧасов, 2,1);
Иначе
РезультатПовр = Окр (Тариф*Отработанно, 2,1);
РезультатОтг = Окр (Тариф*Отгулы, 2,1);
КонецЕсли;
Иначе
Если (глФормаТрудаПоТарифуОкладу (Объект. ФормаТруда. Получить(НаДату)) = «Оклад») или (Тариф > 500) Тогда
РезультатПовр = Окр (Оклад*Отработанно/ВсегоЧасов, 2,1);
РезультатОтг = Окр (Оклад*Отгулы/ВсегоЧасов, 2,1);
Иначе
РезультатПовр = Окр (Тариф*Отработанно, 2,1);
РезультатОтг = Окр (Тариф*Отгулы, 2,1);
КонецЕсли;
КонецЕсли;
Если (глФормаТрудаПоТарифуОкладу (Объект. ФормаТруда. Получить(НаДату)) = «Оклад») или (Тариф > 500) Тогда
ЗаОдинЧас = Оклад/ВсегоЧасов;
РезультатНочн = Окр (ЗаОдинЧас*ЧасовНочн*Константа. КоэффициентДоплатыЗаРаботуВНочноеВремя, 2,1);
РезультатПраздн = Окр (ЗаОдинЧас*ЧасовПраздн*(Константа. КоэффициентДоплатыЗаРаботуВПраздничныеДни-1), 2,1);
РезультатСверхУр = Окр (ЗаОдинЧас*(Часов15*Константа. КоэффициентОплатыСверхУрочныхЧасовНачальный+Часов2*Константа. КоэффициентОплатыСверхУрочныхЧасовПоследующих), 2,1);
Иначе
РезультатНочн = Окр (Тариф*ЧасовНочн*Константа. КоэффициентДоплатыЗаРаботуВНочноеВремя, 2,1);
РезультатПраздн = Окр (Тариф*ЧасовПраздн*(Константа. КоэффициентДоплатыЗаРаботуВПраздничныеДни-1), 2,1);
РезультатСверхУр = Окр (Тариф*(Часов15*Константа. КоэффициентОплатыСверхУрочныхЧасовНачальный+Часов2*Константа. КоэффициентОплатыСверхУрочныхЧасовПоследующих), 2,1);
КонецЕсли;
РезультатКл = Окр((РезультатПовр+РезультатНочн+РезультатПраздн+РезультатСверхУр)/100*Класность, 2,1);
Результат = Окр((РезультатПовр+РезультатНочн+РезультатПраздн+РезультатСверхУр+РезультатКл+РезультатОтг)/100*(Документ. Премия), 2,1);
КонецЕсли;
КонецПроцедуры // ПровестиРасчет()
Вид расчета «ОплатаСверхурочныхНов»
// Сверхурочные
Процедура ПровестиРасчет()
ЖрнЗарплата = СоздатьОбъект («ЖурналРасчетов. Зарплата»);
Документ. ПолучитьСтрокуПоНомеру(НомерСтрокиДокумента);
// ВсегоЧасов = Документ. НормаЧасов;
Если Документ. Флаг =1 Тогда
ВсегоЧасов = Документ. НормаЧасов;
Иначе
ГрафикРаботы = Объект. ГрафикРаботы. Получить(ДатаОкончания);
ГрафикРаботы =? (ПустоеЗначение(ГрафикРаботы)=1, Константа. ОсновнойГрафик, ГрафикРаботы);
Календарь = ГрафикРаботы. ОсновныеЧасы;
НормаЧасов = Календарь. Часов (НачМесяца(ДатаОкончания), КонМесяца(ДатаОкончания));
НормаДней = Календарь. Дней (НачМесяца(ДатаОкончания), КонМесяца(ДатаОкончания));
ВсегоЧасов = Окр (Документ. НормаЧасов*НормаЧасов/НормаДней, 0,1);
КонецЕсли;
Часов15 = Документ.ВПолуторном;
Часов2 = Документ.ВДвойном;
НаДату = Документ. Дата2;
Оклад = Документ. Тариф;
Тариф = Документ. Тариф;
Если (глФормаТрудаПоТарифуОкладу (Объект. ФормаТруда. Получить(НаДату)) = «Оклад») или (Тариф > 500) Тогда
ЗаОдинЧас = Оклад/ВсегоЧасов;
Результат = Окр (ЗаОдинЧас*(Часов15*Константа. КоэффициентОплатыСверхУрочныхЧасовНачальный+Часов2*Константа. КоэффициентОплатыСверхУрочныхЧасовПоследующих), 2,1);
Иначе
Результат = Окр (Тариф*(Часов15*Константа. КоэффициентОплатыСверхУрочныхЧасовНачальный+Часов2*Константа. КоэффициентОплатыСверхУрочныхЧасовПоследующих), 2,1);
КонецЕсли;
Если Документ. ФлагДЧ = 1 тогда
Часы = 0;
Иначе
Часы =? (Сторно=1, - (Часов15+Часов2), (Часов15+Часов2));
КонецЕсли;
КонецПроцедуры
Заключение
В данной дипломной работе были рассмотрены вопросы автоматизации процесса деятельности предприятия сельскохозяйственной отрасли, такие как:
· процесс ведения бухгалтерского учета;
· процесс настройки плана счетов;
· процесс расчета заработной платы.
Для этого мы используем компоненты «1С: Зарплата и Кадры» и «1С: Бухгалтерский учет», а также внутренний язык программирования платформы «1С: Предприятие».
Библиографический список
1. А. Алексеев, О. Дерут, В. Егоров Описание типовой конфигурации «Зарплата и Кадры» - М.: 1С, 2002. - 448 с.
2. А. Алексеев, О. Дерут, В. Егоров Описание типового языка программирования конфигурации «Зарплата и Кадры» в 2-х томах. Том 1. - М.: 1С, 2002. - 689 с.
3. А. Алексеев, О. Дерут, В. Егоров Описание типового языка программирования конфигурации «Зарплата и Кадры» в 2-х томах. Том 1. - М.: 1С, 2002. - 634 с.
4. А. Алексеев, О. Дерут, В. Егоров Описание типовой конфигурации «Бухгалтерский учет» - М.: 1С, 2002. - 537 с.
5. А. Алексеев, О. Дерут, В. Егоров Описание типового языка программирования конфигурации «Бухгалтерский учет» в 2-х томах. Том 1. - М.: 1С, 2002. - 689 с.
6. А. Алексеев, О. Дерут, В. Егоров Описание типового языка программирования конфигурации «Бухгалтерский учет» в 2-х томах. Том 1. - М.: 1С, 2002. - 634 с.
7. ГОСТ 12.1.030-81. Электробезопасность. Защитное заземление. - Введ.02.02.80. - М.: Изд-во стандартов, 1987. - 13 с.
8. ГОСТ19.106-77. Требования к программным документам, выполненным печатным способом. - Введ.02.02.80. - М.: Изд-во стандартов, 1987. - 13 с.
9. ГОСТ19.201-78. Техническое задание. Требования к содержанию и оформлению. - Введ.02.02.80. - М.: Изд-во стандартов, 1987. - 3 с.
10. ГОСТ19.202-78. Спецификация. - Введ.02.02.80. - М.: Изд-во стандартов, 1987. - 3 с.
11. ГОСТ19.301-79. Программа и методика испытаний. - Введ.02.02.80. - М.: Изд-во стандартов, 1987. - 2 с.
12. ГОСТ19.401-78. Текст программы. - Введ.02.02.80. - М.: Изд-во стандартов, 1987. - 1 с.
13. ГОСТ19.402-78. Описание программы. - Введ.02.02.80. - М.: Изд-во стандартов, 1987. - 2 с.
14. ГОСТ19.404-79. Пояснительная записка. Требования к содержанию и оформлению. - Введ.02.02.80. - М.: Изд-во стандартов, 1987. - 2 с.
15. ГОСТ19.502-78. Описание применения. Требования к содержанию и оформлению. - Введ.02.02.80. - М.: Изд-во стандартов, 1987. - 2 с.
16. ГОСТ19.504-79. Руководство программиста. Требования к содержанию и оформлению. - Введ.02.02.80. - М.: Изд-во стандартов, 1987. - 2 с.
Размещено на Allbest.ru
Подобные документы
Характеритсика и роль автоматизации в бухгалтерском учете. Описание создания базы данных для расчета заработной платы сотрудников предприятия, вывода отчета. Выбор программного обеспечения, процедур и функций. Рассмотрение основ интерфейса программы.
курсовая работа [933,8 K], добавлен 19.04.2015Разработка конфигурации программы в среде "1С:Предприятие 7.7" для учета клиентов. Автоматизация процедуры учета заработной платы. Описание среды программирования, требования к техническому и программному обеспечению. Методика разработки проекта.
дипломная работа [349,2 K], добавлен 17.07.2014Создание интернет-ресурса для комплексной автоматизации запросов, расчета заработной платы и реализации кадровой политики предприятия. Управление компетенциями, обучением, аттестациями работников. Требования, предъявляемые к программному продукту "Staff".
дипломная работа [307,7 K], добавлен 20.11.2011Требования к аппаратному и программному обеспечению, требуемому для разработки программного модуля. Критерии приемлемости разрабатываемого программного продукта. Разработка удобного пользовательского интерфейса программы. Алгоритм и листинг программы.
курсовая работа [2,6 M], добавлен 23.11.2011Разработка инфологической и даталогической модели, обобщенного алгоритма и средств защиты программы по автоматизации начисления заработной платы на основе платформы 1С:Предприятие 7.7, входные и выходные параметры, программный код проведения документа.
курсовая работа [2,0 M], добавлен 23.06.2011Порядок автоматизации расчетов себестоимости и длительности программного обеспечения производственного предприятия. Выбор языка программирования и системы управления базами данных. Разработка алгоритмов расчета себестоимости программного обеспечения.
дипломная работа [1,7 M], добавлен 13.06.2017Разработка программного обеспечения, позволяющего вести автоматизированный учет продукции на складе. Требования к техническому и программному обеспечению. Методика разработки проекта, описание алгоритма, структурная схема, тестирование и отладка.
дипломная работа [1,5 M], добавлен 19.07.2014Краткая характеристика предприятия и его организационная структура, описание технического и программного обеспечения. Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие. Расчет трудоемкости внедрения.
отчет по практике [167,4 K], добавлен 11.12.2013Создание программы, предназначенной для автоматизации операций, связанных с регистрацией, поиском и обработкой данных о школьниках, преподавателях. Описание пользователей системы, требований к программному и аппаратному обеспечению, интерфейса программы.
курсовая работа [734,3 K], добавлен 12.03.2013Структура и информационные потоки объекта автоматизации, основные требования к разрабатываемой системе. Моделирование предметной области, структуры данных, форм ввода и вывода информации, отчетов, Требование к оборудованию и программному обеспечению.
курсовая работа [1,0 M], добавлен 14.06.2014