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

УстановитьРеквизитСправочника (Сотрудник, КатегорияПлательщикаПФР