Конфигурирование программы "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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.