html

воскресенье, 15 мая 2011 г.

1С Учебный пример Кадры

1. Для версии 1С 8.2 написал учебный пример Кадры.

Эту конфигурацию скачать можно здесь:  Kadri.rar  или здесь:  Kadri.rar


2. Задание учебный пример Кадры.

Задача 1 Начальный уровень:

a. Цель:

i. Уметь создавать справочники

ii. Уметь создавать документы

iii. Уметь пользоваться механизмом проведения документов и отменой проведения

iv. Создавать журналы документов

v. Создавать пользовательское меню.

b. Описание задания:

i. Написать конфигурацию для платформы 1С 8.0 «Простейший кадровый учет»

ii. Конфигурация должна включать

1. Справочник: «Должности»

a. Код

b. Наименование (30)

2. Справочник: «Сотрудники»
a. Количество уровней (1)

b. Код (5)

c. Наименование (100)

d. Должность: Справочник «Должности»

e. Оклад(число 10)

f. ДатаПриема (Дата)

g. ДатаУволнения (Дата)

3. Документ: «Прием на работу»
a. Шапка:

i. ФИО (строка 100)

ii. Должность (Справочник «Должности»)

iii. Оклад (Число 10 точность 2)

iv. ДатаПриема (Дата)

b. Реализуйте функционал:

i. При проведении документа должна создаваться запись в справочнике «Сотрудники» и заполнялась данными из атрибутов документа.

4. Документ «Уволнение»

a. Шапка

i. Сотрудник (Справочник «Сотрудники»)

ii. Дата уволнения (Дата)

b. Реализуйте функционал:

i. При проведении документа должен отыскиваться сотрудник из справочника сотрудника и для него проставляется дата увольнения

5. Журнал «Кадровые документы» , который отображает перечень документов «Прием на работу» и «Увольнение».

6. Сформируйте Пользовательское меню для оперирования высшее описанными объектами конфигурации.

3. Конфигурация  Учебный пример Кадры.

Коды программных модулей конфигурации 1С 8.2

3.1. В модуле управляемого приложения 2 процедуры
----------------------------------------
Процедура ПриНачалеРаботыСистемы()
Сообщить("Удачи ! Работайте без ошибок :)");
КонецПроцедуры

Процедура ПередЗавершениемРаботыСистемы(Остаться)
Остаться = true ; // не закрывается
//Выход = false ;// закрывается

ответ = Вопрос("Закрыть программу?", РежимДиалогаВопрос.ДаНет,,КодВозвратаДиалога.Да);
если ответ = КодВозвратаДиалога.Да тогда
Остаться= false;
конецЕсли;

КонецПроцедуры
---------------------------------------

3.2. Модуль объекта документа ПриемНаРаботу содержит программный код
---------------------------------------
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
// Вставить содержимое обработчика.
Сообщить ("Проводка документа начата");

//Проверка существует ли такая запись в справочнике
ФамилияЕсть=false ;
ДолжностьЕсть = false ;

// ФИО
НайденнаяФамилия = Справочники.Сотрудники.НайтиПоНаименованию(ФИО);
Если НайденнаяФамилия <> Справочники.Сотрудники.ПустаяСсылка() Тогда
Сообщить("Есть такая ФИО");
ФамилияЕсть=true ;
КонецЕсли;
// Должность
НайденнаяДолжность = Справочники.Сотрудники.НайтиПоРеквизиту("Должность",Должность) ;
Если НайденнаяДолжность <> Справочники.Сотрудники.ПустаяСсылка() Тогда
Сообщить("Есть такая должность");
ДолжностьЕсть = true ;
КонецЕсли;

// если ФИО и должность такие есть - предполагаем, что
// такая запись уже есть и документ не проводим - запись не создаем
Если ФамилияЕсть И ДолжностьЕсть Тогда
Сообщить("Есть такая запись.Документ не проводим");
Отказ=true ; // проведение выполняться не будет
Return ;
КонецЕсли;


// создание новой записи в справочнике
// НЭС - новый элемент справочника
НЭС = Справочники.Сотрудники.СоздатьЭлемент();
// присвоение значений реквизитам справочника
// из документа
НЭС.ДатаПриема = ДатаПриема ;
НЭС.Должность = Должность ;
НЭС.Оклад = Оклад ;
НЭС.Наименование = ФИО ;

// запись очередного элемента ( строки) справочника
НЭС.Записать();
Сообщить ("Проводка документа закончена");

КонецПроцедуры

---------------------------------------

3.3. Модуль объекта документа Увольнение содержит следующий код
---------------------------------------
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
// Вставить содержимое обработчика.
Сообщить ("Проводка документа Увольнение начата");
// перейти на запись справочника с такой же фамилией
// как и в документе увольнение

// ФИО
НайденнаяФамилия = Справочники.Сотрудники.НайтиПоНаименованию(Сотрудник);
Если НайденнаяФамилия = Справочники.Сотрудники.ПустаяСсылка() Тогда
Сообщить("Нет такой фамилии");
Отказ=true ; // проведение выполняться не будет
Return ;
КонецЕсли;
// Меняем дату
СтрокаСправочника = НайденнаяФамилия.ПолучитьОбъект() ;
СтрокаСправочника.ДатаУвольнения = ДатаУвольнения ;
СтрокаСправочника.Записать();
КонецПроцедуры
---------------------------------------

4. Повторю ссылку на скачку :)
Саму конфигурацию на версии 1с 8.2 скачать можно здесь:  Kadri.rar  или здесь:  Kadri.rar

Комментариев нет: