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

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