Конфигурирование программы "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 Тогда
УстановитьРеквизитСправочника (Сотрудник, КатегорияПлательщикаПФР