Конфигурирование программы "1С:Предприятие" на основе предприятия сельскохозяйственной отрасли

 












Конфигурирование программы "1С:Предприятие" на основе предприятия сельскохозяйственной отрасли


Введение


В настоящее время все больше и больше предприятий используют различные программные обеспечения для автоматизации бухгалтерского учета и процесса расчета заработной платы. Но не всегда данное программное обеспечение соответствует поставленным требованиям, особенно когда речь идет о такой малоосвоенной области как сельское хозяйство и рыбодобывающая отрасль. Поэтому для выполнения поставленной задачи мы берем за основу программу «1С: Предприятие» и начинаем работать.

В данной дипломной работе рассматриваются проблемы автоматизации процесса деятельности предприятия сельскохозяйственной отрасли, такие как:

·процесс ведения бухгалтерского учета;

·процесс настройки плана счетов;

·процесс расчета заработной платы.

Для этого мы используем компоненты «1С: Зарплата и Кадры» и «1С: Бухгалтерский учет», а также внутренний язык программирования платформы «1С: Предприятие».

Полное наименование программного обеспечения - Конфигурирование программы «1С: Предприятие» под нужды предприятия сельскохозяйственной отрасли.

Условное обозначение - ПО «1С-СХ».



1. Техническое задание


1.1 Назначение и цели создания программного обеспечения


Назначение программного обеспечения

ПО «1С-СХ» предназначено для автоматизации процесса деятельности предприятия сельскохозяйственной отрасли.

Перечень объектов автоматизации:

·процесс ведения бухгалтерского учета;

·процесс настройки плана счетов;

·процесс расчета заработной платы.

Цели создания программного обеспечения

Цели создания программного обеспечения:

·уменьшение количества ошибок при работе с бухгалтерскими документами;

·уменьшение времени на ввод информации;

·увеличение скорости и качества подготовки отчетности;

·повышение качества и скорости обмена информацией для удаленных пользователей.


1.2 Характеристики объекта автоматизации


Краткие сведения об объекте автоматизации

Информационная система (ИС) предприятия должна состоять из следующих компонент:

·Компонента «Бухгалтерский учет»;

·Компонента «Зарплата и кадры».

Данное техническое задание описывает компоненты «Бухгалтерский учет» и «Зарплата и кадры».

Объектами автоматизации компоненты «Бухгалтерский учет» являются:

·процесс ведения бухгалтерского учета;

·процесс настройки плана счетов.

Объектами автоматизации компоненты «Зарплата и кадры» является процесс расчета заработной платы.

Пользователем осуществляется ввод и модификация информации о плане счетов, данных расчета зарплаты, а так же учет аналитики и корреспонденции счетов в бухгалтерских документах. Результатом работы является расчет заработной платы, формирование бухгалтерского учета, а так же печать различных документов и отчетов.

В процессе ведения бухгалтерского учета необходимо:

·производить в обрабатываемых документах правильную корреспонденцию счетов;

·проверять правильность и корректность вводимых данных;

·проверить ввод начальных остатков по счетам предприятия;

·вести учет товарно-материальных ценностей;

·вести учет основных средств предприятия и амортизационных отчислений;

·вести налоговый учет;

·подготовить необходимые документы к печати.

Участники процесса: бухгалтера.

В процессе настройки плана счетов необходимо:

·изменить и настроить план счетов;

·настроить аналитику счетов.

Участники процесса: главный бухгалтер, начальники бухгалтерских отделов.

В процессе расчета заработной платы необходимо:

·вести кадровый учет предприятия;

·вести данные в необходимые документы (табеля, больничные листы, отпуска);

·произвести расчет заработанной платы и налогов;

·подготовить налоговую отчетность;

·подготовить необходимые документы к печати.

Участники процесса: бухгалтера.

Сведения об условиях эксплуатации объекта автоматизации и характеристик окружающей среды

Данный программный продукт рассчитан на эксплуатацию в среде операционной системы Microsoft® Windows 2000/XP/2003, что накладывает вполне определенные минимальные требования к конфигурации ЭВМ: вычислительная система на базе процессора Intel Pentium™ компании Intel или совместимых процессоров других фирм-производителей (AMD, Cyrix), 256 Мб (или больше) ОЗУ, сетевая карта с пропускной способностью 10 Мбит/с, наличие свободного дискового пространства не менее 25 Мб + размер баз данных конфигураций «1С-СХ».

Физические условия эксплуатации и характеристики окружающей среды определяются соответствующими характеристиками окружающей среды используемого аппаратного обеспечения, указанными в документации на него.


1.3 Требования к программному обеспечению


Требования к программному обеспечению в целом

Требования к структуре и функционированию программного обеспечения

ПО «1С-СХ» должно состоять из следующих подсистем:

·«Бухгалтерский учет»;

·«Зарплата и кадры».

Объектом автоматизации компоненты «Бухгалтерский учет» является процесс ведения бухгалтерского учета, а также процесс настройки плана счетов. Пользователем (бухгалтером) осуществляется формирование документов бухгалтерской отчетности, ведение аналитики и корреспонденции счетов. Результатом работы является модификация данных в базе данных конфигурации «1С-СХ». Результатом работы является формирование бухгалтерской отчетности.

Объектом автоматизации компоненты «Зарплата и Кадры» является процесс расчета заработной платы. Результатом работы является модификация данных в базе данных конфигурации «1С-СХ» и формирование электронных документов.

·Структура ПО «1С-СХ» приведена в приложении (см. приложение2, Рис. 2.12.).

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

Требования к численности и квалификации персонала

С компонентой «1С-СХ» может работать любой сотрудник, обладающий навыками оператора ПЭВМ. Численность персонала ограничивается пропускной способностью сети и конфигурацией (мощностью) технической базы.

Режим работы персонала с компонентами комплекса не должен превышать двух часов без технического перерыва (15 минут).

Требования к надежности

В случае ошибок, вызванных неправильными действиями пользователя при работе с компонентами «1С-СХ», программа должна выдавать соответствующее сообщение и продолжать нормальную работу.

Должно быть предусмотрено динамическое сохранение последних изменяемых данных для предотвращения потерь информации в случаях сбоя в работе технических средств и различных аварийных ситуациях.

При непрерывной эксплуатации автоматизированной системы в течение 8 часов процент отказов не должен превышать 3%.

Требования к эргономике и технической эстетике

На квалификацию пользователя и режим его работы не накладывается никаких дополнительных ограничений. Создаваемое ПО должно обеспечивать дружественный интерфейс пользователя - удобное расположение элементов управления, дублирование команд, наличие всплывающих подсказок. При организации интерфейса необходимо использовать цвета в соответствии с правилами технической этики. Интерфейс пользователя должен обеспечивать необходимое качество взаимодействия человека и компьютера.

Требования к эксплуатации и техническому обслуживанию

Условия и режим эксплуатации ПО определяются условиями эксплуатации использующихся технических средств. Техническое обслуживание ПО не требуется.

Требования к допустимым площадям для размещения персонала и технических средств ИС, к параметрам сети энергоснабжения и т.д. определяются требованиями использующегося аппаратного обеспечения.

Требования к защите информации от несанкционированного доступа

Защита ПО и информации, с которой она работает, от несанкционированного доступа возлагается на операционную систему и саму программу.

Требования по сохранности информации при авариях

Сохранность данных при авариях не обеспечивается. Для сохранности баз данных предусмотрено архивирование данных ежедневно в автоматическом режиме. Программное обеспечение должно оставаться работоспособным при восстановлении системы после аварий (только если не повреждена дисковая информация).

Требования к защите от влияния внешних воздействий

ПО должно быть устойчивой к наличию и параллельной с ней работе на той же ЭВМ другого программного обеспечения.

Требования к защите от физических внешних воздействий определяются аналогичными требованиями, предъявляемыми к используемому аппаратному обеспечению.

Требования к стандартизации и унификации

ПО должно предоставлять пользователю привычный, общепринятый в среде Microsoft® Windows интерфейс. Программная документация, поставляемая с программой, должна быть оформлена в соответствии со стандартом ЕСПД.

Требования к функциям, выполняемым системой

Общие функции программного ПО «1С-СХ»:

Компонента «Бухгалтерский учет» должна обеспечивать выполнение следующих задач:

·ввод в обрабатываемые документы правильной корреспонденции счетов;

·проверка правильности и корректности вводимых данных;

·проверка ввод начальных остатков по счетам предприятия;

·ведение учета товарно-материальных ценностей;

·ведение учета основных средств предприятия и амортизационных отчислений;

·ведение налогового учета;

·подготовка необходимых документов к печати.

Компонента «Зарплата и кадры» должна обеспечивать выполнение следующих задач:

В процессе расчета заработной платы необходимо:

·ведение кадрового учета предприятия;

·ввод данных в необходимые документы (табеля, больничные листы, отпуска);

·расчет заработанной платы и налогов;

·подготовка налоговой отчетности;

·подготовка необходимых документов к печати.

Требования к видам обеспечения

Требования к математическому обеспечению

В основе разрабатываемого ПО должна лежать реляционная модель базы данных. Все таблицы должны находится в третьей или четвертой нормальной форме. Связи между таблицами должны быть вида: «один к одному» или «один ко многим». При проектировании используется метод «сущность - связь».

Требования к информационному обеспечению

Создаваемая система должна использовать реляционную базу данных.

Объекты базы данных:

·справочники, в которых хранится информация о сотрудниках, начислениях, контрагентах, товарно-материальных ценностях, дополнительная информация;

·документы, позволяющие просматривать и распечатывать различные виды отчетов (по бухгалтерскому, налоговому, кадровому учету).

Требования к лингвистическому обеспечению

Проектирование программного комплекса производиться на платформе «1С-Предприятие», поэтому при разработке ПО будет применяться встроенный язык системы «1С-Предприятие».

Языком ввода-вывода данных, манипулирования данными, способа организации диалога с пользователем является русский язык.

Требования к программному обеспечению

Перечень программных средств, необходимых для проектирования и функционирования системы:

·операционная система Microsoft® Windows 2000/XP/2003;

·компонента управления удаленным рабочим столом.

Требования к техническому обеспечению

Для создания данного программного обеспечения необходимы:

·персональный компьютер совместимый с IBM PC с тактовой частотой не ниже 800 MГц;

·оперативная память 256 Мб и более;

·сетевая карта 10/100 Мбит/с;

·дисковое пространство 100 Мб и более;

·видеокарта и монитор, поддерживающие разрешение 1024x768 точек и выше, с частотой обновления не менее 75 Гц;

·клавиатура;

·манипулятор «мышь»;

·принтер.


2. Экономическая часть


.1 Общая характеристика организации


.1.1 Организационно-правовая форма организации

Рыболовецкая артель имени 50 лет Октября создана в соответствии с положениями Федерального закона от 8 декабря 1995 года №193-ФЗ «О сельскохозяйственной кооперации». Основным правовым документом, на основании которого организуется функционирование и осуществляется текущая деятельность организации является Устав.

Рыболовецкая артель (колхоз) имени 50 лет Октября является видом сельскохозяйственного производственного кооператива, созданного гражданами на основе добровольного членства для совместной деятельности по производству, переработке и сбыту сельскохозяйственной (рыбной) продукции, а также для иной незапрещенной законом деятельности путем добровольного объединения имущественных паевых взносов в виде денежных средств, имущественных долей и другого имущества граждан и передачи их в паевой фонд колхоза.

Артель имеет самостоятельный баланс, круглую печать и штампы со своим наименованием, фирменный знак, иные средства индивидуальной идентификации, расчетный и иные счета в рублях (и иностранной валюте) в учреждениях российских (и иностранных) банков.

Артель создана без ограничения сроков действия.

Артель является коммерческой организацией, основной целью которой является извлечение прибыли.

Основными задачами являются:

·Промышленное рыболовство в части добычи рыбы и других водных животных и растений, приемки, обработки, перегруза, хранения, транспортировки улова ВБР и продуктов их переработки, а также бункеровки топливом, водой, снабжения тарой и другими материалами для промысла во внутренних водоемах, в территориальном море, на континентальном шельфе в экономической зоне РФ, а так же в открытом море и прибрежных зонах иностранных государств при наличии лицензий и иных разрешений, выданных в установленном законодательством порядке уполномоченными органами РФ и иностранных государств;

·искусственное воспроизводство рыбы и водных биоресурсов;

·производство пищевой и технической рыбной продукции, консервов, пресервов, реализация ее на внутреннем рынке и на экспорт.


2.1.2 Общая структура организации, характеристика состава подразделений и их взаимосвязь

Органами управления Артелью являются:

·общее собрание членов Артели (собрание уполномоченных) является высшим органом управления и полномочно решать любые вопросы, касающиеся деятельности Артели, в том числе отменять или подтверждать решения правления и (или) председателя и наблюдательного совета;

·наблюдательный совет (состоит из трех человек, избираемых общим собранием из числа членов колхоза сроком на три года);

·председатель Правления;

·правление Колхоза.

На предприятии функционирует 4 отдела:

·бухгалтерия (в составе главного бухгалтера, заместителя главного бухгалтера, 10 бухгалтеров и кассира);

·ПЭО (в составе начальника ПЭО, старшего экономиста и экономиста)

·коммерческий отдел (в составе начальника коммерческого отдела, старшего инженера, инженера);

·отдел кадров (в составе начальника отдела кадров, инспектора по береговому составу, инспектора по рыбодобывающим судам).






























2.2 Изучение деятельности организации


.2.1 Характеристика типа производства

Для определения типа производства на предприятии воспользуемся таблицей в которой отражено сравнение по факторам различных типов производства.


Таблица 1 - Типы производства

ФакторыТип производстваединичноесерийноемассовоеНоменклатура изготавливаемых изделийБольшаяОграниченная *МалаяПостоянство номенклатурыОтсутствуетИмеется*Имеется*Объем выпускаМалыйСредний*БольшойЗакрепление операций за рабочими местамиОтсутствуетЧастичноеПолное*Применяемое оборудованиеУниверсальноеУниверсальное + специальное (частично)В основном специальное*Применяемые инструменты и оснасткаУниверсальныеУниверсальные + специальныеВ основном специальные*Квалификация рабочихВысокаяСредняяВ основном низкая*Себестоимость продукцииВысокаяСредняя*НизкаяПроизводственная специализация цехов и участковТехнологическаяСмешаннаяПредметная*

На основе таблицы 1 можно сделать вывод, что на предприятие смешанный тип производства. Имеется ограниченная номенклатура изготовления продукции, постоянство номенклатуры, средний объем выпуска, средняя себестоимость продукции - данные показатели характеризуют предприятие как серийное. А такие показатели как полное закрепление операций за рабочими местами, в основном специальное применяемое оборудование, инструменты и оснастка, низкая квалификация рабочих, предметная производственная специализация цехов и участков - позволяют отнести предприятие к массовому типу производства. Именно такое соотношение показателей характеризующих типы производства, позволяют сделать вывод о смешанном типе производства данного предприятия.


2.2.2 Состав производственных подразделений

Предприятие в своем составе имеет пять производственных подразделений. Отразим их взаимосвязь на схеме:



Взаимосвязь производственных подразделений

Консервный цех имеет суточную мощность 16 туб (22,8 тысяч банок №6). В период летней путины работу цеха обеспечивают две смены каждая по 40 человек, по ее окончанию в цехе осуществляет работу одна смена. Во время летней путины сырьем цех обеспечивает цех рыбообработки, в остальные периоды холодильный цех, который в свою очередь получает сырьё от рыбопромыслового флота.

Рыбопромысловый флот включает БАТМ «Тумнин», 3 СТР - 420 («Ксеньевка», «Черняево», «Тумнинский»), МРТ «Фортуна».




























2.2.3 Характеристика производимой продукции

Рыболовецкая артель выпускает широкий ассортимент продукции. Вся продукция производится с соблюдениями требований ГОСТ и ТУ. Каждому виду продукции соответствует свой ГОСТ или ТУ. Например икра лососевая зернистая соленая замороженная выпускается в соответствии с ТУ 9264-001-42658943-2004, икра лососевая зернистая баночная - ГОСТ 18173-2004; сельдь соленая - ГОСТ 815-2004, лососи дальневосточные соленые - ГОСТ 16080-2002, сельдь и сардина тихоокеанская пряного посола и маринованные, сельдь тихоокеанская малосоленая - ТУ 9269-104-33620410-08; рыбы лососевые и сиговые холодного копчения - ГОСТ 11298-2002, изделия балычные из дальневосточных лососей и иссык-кульской форели холодного копчения - ГОСТ 2623-97, сельди и сардина тихоокеанская холодного копчения - ГОСТ 813 - 2002, рыба холодного копчения - ГОСТ 11482 - 96; консервы рыбные натуральные с добавлением масла - ГОСТ 13865-2000, консервы рыбные натуральные - ГОСТ 7452-97, консервы из морской капусты - ТУ 9273-066-33620410-05; рыба мороженная - ГОСТ 1168 - 86, сельдь мороженная ОСТ 15-403-97, сайра тихоокеанская мороженная - ТУ 9261-267-00472012-04. Также продукция проходит контроль в соответствии с санитарно-эпидемиологическими правилами и нормативами СанПиН 2.3.2.1078-01 «Гигиенические требования безопасности и пищевой ценности пищевых продуктов». Вся продукция получает удостоверение качества, которое выдает ООО «Независимый экспертно - сертификационный центр».


.2.4 Сводные технико-экономические показатели работы предприятия

Представим основные технико-экономические показатели в виде таблицы:



Наименование показателяЕдиница измеренияВеличина показателяГодовой объем выпуска и реализации:тн.13192,1Годовой объем выпуска и реализации:тыс. руб.279782Общее количество работающих в том числе:чел.502- производственных рабочих227- вспомогательных рабочих60- руководителей10- специалистов150- служащих40- МОП15Выработка:- на одного работающеготн.26,28- на одного работникатн.58,11- на одного работающеготыс. руб.557,33- на одного работникатыс. руб.1232,52Фонд оплаты трудатыс. руб.112276,0Среднемесячная заработная плата- одного работающеготыс. руб.18.638- одного работникатыс. руб.41,22Фондоотдачатыс. руб.2,69Фондоёмкостьтыс. руб.0,3

Выработка на одного работающего есть отношение производственной программы к общему числу работающих: 13192,1/502=26,28 (тн).

Выработка на одного производственного работника есть отношение производственной программы к числу производственных рабочих: 13192,1/227=58,11 (тн).

Выработка на одного работающего есть отношение годового объема выпуска к общему числу работающих: 279782/502=557,33 (тыс. руб.).

Выработка на одного производственного работника есть отношение годового объема выпуска и реализации к общему числу производственных рабочих: 279782/227=1232,52 (тыс. руб.).

Среднемесячная заработная плата одного работающего: 112276,0/(502*12)= 18,638 тыс. руб.

Среднемесячная заработная плата одного работника: 112276,0/(227*12)= 41,22 тыс. руб.

Фондоотдача есть отношение годового объема выпуска и реализации к балансовой стоимости основных средств: 279782/107743=2,59 тыс. руб.

Фондоемкость - это обратная фондоотдача: 1 / 2,59= 0, 386 тыс. руб.



3. Описание программы


.1 Описание программы в целом


Общие сведения

Информационная система (ИС) предприятия должна состоит из следующих компонент:

·Компонента «Бухгалтерский учет»;

·Компонента «Зарплата и кадры».

Данное техническое задание описывает компоненты «Бухгалтерский учет» и «Зарплата и кадры».

Объектами автоматизации компоненты «Бухгалтерский учет» являются:

·процесс ведения бухгалтерского учета;

·процесс настройки плана счетов.

Объектами автоматизации компоненты «Зарплата и кадры» является процесс расчета заработной платы.

Пользователем осуществляется ввод и модификация информации о плане счетов, данных расчета зарплаты, а так же учет аналитики и корреспонденции счетов в бухгалтерских документах. Результатом работы является расчет заработной платы, формирование бухгалтерского учета, а также печать различных документов и отчетов.

В процессе ведения бухгалтерского учета необходимо:

·производить в обрабатываемых документах правильную корреспонденцию счетов;

·проверять правильность и корректность вводимых данных;

·проверить ввод начальных остатков по счетам предприятия;

·вести учет товарно-материальных ценностей;

·вести учет основных средств предприятия и амортизационных отчислений;

·вести налоговый учет;

·подготовить необходимые документы к печати.

Участники процесса: бухгалтера.

В процессе настройки плана счетов необходимо:

·изменить и настроить план счетов;

·настроить аналитику счетов.

Участники процесса: главный бухгалтер, начальники бухгалтерских отделов.

В процессе расчета заработной платы необходимо:

·вести кадровый учет предприятия;

·вести данные в необходимые документы (табеля, больничные листы, отпуска);

·произвести расчет заработанной платы и налогов;

·подготовить налоговую отчетность;

·подготовить необходимые документы к печати.

Участники процесса: бухгалтера.

Все компоненты реализованы и написаны на внутреннем языке платформы «1С: Предприятие».

Функциональное назначение

ПО «1С-СХ» предназначено для автоматизации процесса деятельности предприятия сельскохозяйственной отрасли.

Перечень объектов автоматизации:

·процесс ведения бухгалтерского учета;

·процесс настройки плана счетов;

·процесс расчета заработной платы.

Используемые технические средства

Техническое обеспечение для сервера:

·персональный компьютер совместимый с IBM PC с тактовой частотой не ниже 1800 MГц;

·оперативная память 1 Гб и более;

·сетевая карта 100/1000 Мбит/с;

·дисковое пространство 500 Мб и более;

·видеокарта и монитор, поддерживающие разрешение 1024x768 точек и выше, с частотой обновления не менее 75 Гц;

·клавиатура;

·манипулятор «мышь»;

·принтер.

Техническое обеспечение для пользователя:

·персональный компьютер совместимый с IBM PC с тактовой частотой не ниже 800 MГц;

·оперативная память 256 Мб и более;

·сетевая карта 10/100 Мбит/с;

·дисковое пространство 50 Мб и более;

·видеокарта и монитор, поддерживающие разрешение 1024x768 точек и выше, с частотой обновления не менее 75 Гц;

·клавиатура;

·манипулятор «мышь»;

·принтер.

Используемые программные средства

Программное обеспечение для сервера:

·операционная система Microsoft® Windows 2003 Server;

·сетевая версия «1C-Предприятие»;

·компонента управления удаленным рабочим столом.

Программное обеспечение для пользователя:

·операционная система Microsoft® Windows ХР;

·компонента управления удаленным рабочим столом.

Вызов и загрузка

Запуск системы осуществляется пользователем при загрузке приложения 1CV7.7.exe, происходит выбор необходимой для работы компоненты и аутентификация пользователя и загрузка выбранной конфигурации.

Входные данные

При работе с системой все запросы задаются с помощью пользовательского интерфейса.

Выходные данные

Выходными данными является изменения информации в таблицах БД, а также формирование различных электронных отчетов.


3.2 Описание компоненты «Бухгалтерский учет»

автоматизация зарплата программа сельскохозяйственный

Общие сведения

Компонента «Бухгалтерский учет» - это конфигурация для платформы «1С: Предприятие» и написана на встроенном языке платформы в среде «1С: Конфигуратор». В этой конфигурации модифицированы и добавлены алгоритмы бухгалтерского и налогового учета сельскохозяйственных организаций.

Функциональное назначение

Компонента «Бухгалтерский учет» предназначена:

·для ввода в обрабатываемые документы правильной корреспонденции счетов;

·для проверки правильности и корректности вводимых данных;

·для проверки ввод начальных остатков по счетам предприятия;

·для ведения учета товарно-материальных ценностей;

·для ведения учета основных средств предприятия и амортизационных отчислений;

·для ведения налогового учета;

·для подготовки необходимых документов к печати.

Описание логической структуры

В данной конфигурации создан новый план счетов для сельскохозяйственных организаций. В этой конфигурации модифицированы и добавлены алгоритмы бухгалтерского и налогового учета сельскохозяйственных организаций.

Вызов и загрузка

Запуск компоненты осуществляется пользователем при загрузке приложения 1CV7.7.exe, в диалоге происходит выбор пункта списка «Бухгалтерия», после происходит аутентификация пользователя и загрузка выбранной конфигурации.


3.3 Описание компоненты «Зарплата и кадры»


Общие сведения

Компонента «Зарплата и кадры» - это конфигурация для платформы «1С: Предприятие» и написана на встроенном языке платформы в среде «1С: Конфигуратор». В этой конфигурации модифицированы и добавлены алгоритмы расчета заработной платы.

Функциональное назначение

Компонента «Зарплата и кадры» предназначена:

·ведение кадрового учета предприятия;

·ввод данных в необходимые документы (табеля, больничные листы, отпуска);

·расчет заработанной платы и налогов;

·подготовка налоговой отчетности;

·подготовка необходимых документов к печати.

Описание логической структуры

В данной конфигурации создан новый план счетов для сельскохозяйственных организаций. В этой конфигурации модифицированы и добавлены алгоритмы расчета заработной платы.

Вызов и загрузка

Запуск компоненты осуществляется пользователем при загрузке приложения 1CV77.exe, в диалоге происходит выбор пункта списка «Зарплата», после происходит аутентификация пользователя и загрузка выбранной конфигурации.



4. Текст программы


.1 Компонента «1С: Бухгалтерский учет»


Модуль документа «Ввод ВЭксплуатациюОС»

Если Группа = Перечисление. ГруппыОС. ОрудияЛова тогда

Сч01_1 = СчетПоКоду («01.6»);

ИначеЕсли Группа = Перечисление. ГруппыОС. ИнвИОборудование тогда

Сч01_1 = СчетПоКоду («01.8»);

ИначеЕсли Группа = Перечисление. ГруппыОС. Инвентарь тогда

Сч01_1 = СчетПоКоду («01.4»);

ИначеЕсли Группа = Перечисление. ГруппыОС. ПрТрФлот тогда

Сч01_1 = СчетПоКоду («01.0»);

ИначеЕсли Группа = Перечисление. ГруппыОС. ЗданияПромышленные тогда

Сч01_1 = СчетПоКоду («01.1»);

ИначеЕсли Группа = Перечисление. ГруппыОС. ЗданияОборудованиеКБН тогда

Сч01_1 = СчетПоКоду («01.2»);

ИначеЕсли Группа = Перечисление. ГруппыОС.ЖКХ тогда

Сч01_1 = СчетПоКоду («01.3»);

ИначеЕсли Группа = Перечисление. ГруппыОС. СельхозОборудование тогдаСч01_1 = СчетПоКоду («01.7»);

ИначеЕсли Группа = Перечисление. ГруппыОС. ТранспортныеСредства тогда

Сч01_1 = СчетПоКоду («01.9»);

Иначе

Сч01_1 = СчетПоКоду («01.1»);

КонецЕсли;

Операция. Дебет. ОсновныеСредства = ОсновноеСредство;

Если (Группа = Перечисление. ГруппыОС. ОрудияЛова) или (Группа = Перечисление. ГруппыОС. Инвентарь) или (Группа = Перечисление. ГруппыОС. ИнвИОборудование) или (Группа = Перечисление. ГруппыОС. ТранспортныеСредства) тогда

Операция. Дебет. МестаХранения = ПодОтч;

КонецЕсли;

Модуль документа «Выписка»

Перем Сч52_1, Сч52_2, Сч52_3;

Если СС522 <> 0 тогда

Операция. Дебет. Счет = Сч52_2;

КонецЕсли;

Если СС523 <> 0 тогда

Операция. Дебет. Счет = Сч52_3;

КонецЕсли;

Если ПустоеЗначение(СуммаПроданнойВалюты) = 0 тогда

Операция. ВалСумма = СуммаПроданнойВалюты;

Операция. Валюта = ПроданнаяВалюта;

КонецЕсли;

Если СС522 <> 0 тогда

Операция. Кредит. Счет = Сч52_2;

КонецЕсли;

Если СС523 <> 0 тогда

Операция. Кредит. Счет = Сч52_3;

КонецЕсли;

Сч52_1 = СчетПоКоду («52.1»);

Сч52_2 = СчетПоКоду («52.2»);

Сч52_3 = СчетПоКоду («52.3»);

Модуль документа «НачислениеАмортизации»

Если ОС. ПодлежитАмортизации = 0 тогда

НачислятьАмортизациюБух = 0;

КонецЕсли;

Если Ос. Состояние. Получить(ДатаДок) = Перечисление. СостоянияОС. В_Эксплуатации тогда

ГодТек = ДатаГод(ДатаДок);

ГодВЭ = ДатаГод (Ос. ДатаВводаВЭксплуатацию);

МесяцТек = ДатаМесяц(ДатаДок);

МесяцВЭ = ДатаМесяц (Ос. ДатаВводаВЭксплуатацию);

МесВЭкспл = (ГодТек - ГодВЭ)*12 + МесяцТек - МесяцВЭ; // находим кол-во месяцев в эксплуатации

МесЭкспл = ОС. СрокПолезногоИспользования. Получить(ДатаДок);

Если (МесЭкспл < МесВЭкспл) или (МесВЭкспл <= 0) тогда // проверяем не вышел ли срок эксплуатации

РассчитаннаяАмортизацияБух = 0

ИначеЕсли МесВЭкспл = МесЭкспл тогда // если последний месяц в экспл. доначисляем остатки

РассчитаннаяАмортизацияБух = ОС. ПервоначальнаяСтоимость. Получить(датадок) - ОС.СМАм. Получить(ДатаДок)*(МесЭкспл-1)

ИначеЕсли ОС. СпособНачисленияАмортизации = Перечисление. СпособыНачисленияАмортизацииОС. Суммой тогда

РассчитаннаяАмортизацияБух = ОС.СМАм. Получить(ДатаДок)

КонецЕсли;

КонецЕсли;

Модуль документа «ОказаниеУслуг»

// Сч76_5 = СчетПоКоду («76.5»);

Сч76_5 = СчетПоКоду («76.8.2»);

Если СС7681 = 1 Тогда

Сч76_5 = СчетПоКоду («76.8.1»);

ИначеЕсли СС762 = 1 тогда

Сч76_5 = СчетПоКоду («76.2»);

ИначеЕсли СС765 = 1 тогда

Сч76_5 = СчетПоКоду («76.5»);

КонецЕсли;

Если СС914 = 1 Тогда

Сч91_1 = СчетПоКоду («91.4»);

КонецЕсли;

Сч90_15 = СчетПоКоду («90.15»);

Сч90_10 = СчетПоКоду («90.10»);

Сч90_12 = СчетПоКоду («90.12»);

Сч90_9 = СчетПоКоду («90.9»);

Сч90_6 = СчетПоКоду («90.6»);

Сч62_9 = СчетПоКоду («62.9»);

Сч62_10 = СчетПоКоду («62.10»);

Сч62_12 = СчетПоКоду («62.12»);

Сч62_14 = СчетПоКоду («62.14»);

Сч62_5 = СчетПоКоду («62.5»);

Сч73_3 = СчетПоКоду («73.3»);

Сч84_4 = СчетПоКоду («84.4»);

Если СС6210 = 1 тогда

СчетРасчетовСПокупателем = Сч62_10

ИначеЕсли СС6212 = 1 тогда

СчетРасчетовСПокупателем = Сч62_12

ИначеЕсли СС6214 = 1 тогда

СчетРасчетовСПокупателем = Сч62_14

ИначеЕсли СС625 = 1 тогда

СчетРасчетовСПокупателем = Сч62_5

ИначеЕсли СС626 = 1 тогда

СчетРасчетовСПокупателем = Сч62_6

ИначеЕсли СС733 = 1 тогда

СчетРасчетовСПокупателем = Сч73_3

ИначеЕсли СС844 = 1 тогда

СчетРасчетовСПокупателем = Сч84_4

Иначе

СчетРасчетовСПокупателем = Сч62_1

КонецЕсли;

Если ((Договор. Наименование = «Основной договор») и (Флаг = 0)) или (Флаг = 1) тогда

Если (ТипЗаказчика = 1) или (ТипЗаказчика = 0) Тогда

Если СС6210 = 1 тогда

СчетРасчетовСПокупателем = Сч62_10

ИначеЕсли СС6212 = 1 тогда

СчетРасчетовСПокупателем = Сч62_12

ИначеЕсли СС6214 = 1 тогда

СчетРасчетовСПокупателем = Сч62_14

ИначеЕсли СС625 = 1 тогда

СчетРасчетовСПокупателем = Сч62_5

ИначеЕсли СС626 = 1 тогда

СчетРасчетовСПокупателем = Сч62_6

ИначеЕсли СС733 = 1 тогда

СчетРасчетовСПокупателем = Сч73_3

ИначеЕсли СС844 = 1 тогда

СчетРасчетовСПокупателем = Сч84_4

Иначе

СчетРасчетовСПокупателем = Сч62_9

КонецЕсли;

КонецЕсли;

КонецЦикла;

КонецЕсли;

КонецЕсли;

Иначе

Если (СС844 = 0) и (СС733 = 0) Тогда

Операция. Дебет. Контрагенты = КонтрагентСписком;

Операция. Дебет. Договоры = ДоговорСписком;

КонецЕсли;

Если СС844 = 1 тогда

Операция. Дебет. ДляСчета844 = Сч844

КонецЕсли;

Если СС733 = 1 Тогда

Операция. Дебет. Сотрудники = Сотр;

Если ПустоеЗначение(Сотр) = 1 Тогда // если не указвываем сотрудника программа ставит «СОТРУДНИК»

Сотрудн = СоздатьОбъект («Справочник. Сотрудники»);

Сотрудн. ВыбратьЭлементы();

Пока Сотрудн. ПолучитьЭлемент()=1 цикл

Если Сотрудн. НайтиПоКоду («0000000135») = 1 тогда

Операция. Дебет. Сотрудники = Сотрудн. ТекущийЭлемент();

Прервать;

КонецЕсли;

КонецЦикла;

КонецЕсли;

КонецЕсли;

КонецЕсли;

Если ТипУслуги = 3 Тогда

Операция. Кредит. Счет = Сч91_1;

Операция. Кредит. ПрочиеДоходыИРасходы = СтатьяПрочихДоходовИРасходов;

КонецЕсли;

Если СС909 = 1 тогда

Операция. Кредит. Счет = Сч90_9

КонецЕсли;

Если СС9010 = 1 тогда

Операция. Кредит. Счет = Сч90_10

КонецЕсли;

Если СС9012 = 1 тогда

Операция. Кредит. Счет = Сч90_12

КонецЕсли;

Если СС9015 = 1 тогда

Операция. Кредит. Счет = Сч90_15

КонецЕсли;

Если ПустоеЗначение(ВидНоменкл) = 1 тогда

Операция. Кредит. ВидыНоменклатуры = Услуга. ВидНоменклатуры

Иначе

Операция. Кредит. ВидыНоменклатуры = ВидНоменкл

КонецЕсли;

Если ВерсияОбъекта >= «7.70.421» Тогда

Операция. Кредит. СтавкиНДС = ТаблицаРеализации. СтавкаНДС;

Операция. Кредит. СтавкиНП = ТаблицаРеализации. СтавкаНП;

КонецЕсли;

КонецЕсли;

Если ОплатаДоговора = 2 Тогда

Операция. ВалСумма = ТаблицаРеализации. ВалВсего;

Операция. Валюта = Валюта;

КонецЕсли;

Если ВестиУчетРасчетовУЕ = 1 Тогда

Операция. ВалСумма = ТаблицаРеализации. Всего;

Операция. Валюта = Валюта;

Операция. Сумма = ТаблицаРеализации. ВыручкаРуб - ТаблицаРеализации. СуммоваяРазница;

Иначе

Операция. Сумма = Всего;

КонецЕсли;

ИначеЕсли ТаблицаРеализации. ВидНоменклатуры. ТипНоменклатуры = Перечисление. ТипыНоменклатуры. УслугаЕНВД Тогда

Операция. Кредит. Счет = Сч90_1_2;

Операция. Кредит. ВидыНоменклатуры = ТаблицаРеализации. ВидНоменклатуры;

Иначе

Если (ТипЗаказчика = 1) или (ТипЗаказчика = 0) Тогда

Операция. Кредит. Счет = Сч90_10

Иначе

Операция. Кредит. Счет = Сч90_12;

КонецЕсли;

Если СС906 = 1 тогда

Операция. Кредит. Счет = Сч90_6

КонецЕсли;

Если СС909 = 1 тогда

Операция. Кредит. Счет = Сч90_9

КонецЕсли;

Если СС9010 = 1 тогда

Операция. Кредит. Счет = Сч90_10

КонецЕсли;

Если СС9012 = 1 тогда

Операция. Кредит. Счет = Сч90_12

КонецЕсли;

Если СС9015 = 1 тогда

Операция. Кредит. Счет = Сч90_15

КонецЕсли;

Если ПустоеЗначение(ВидНоменкл) = 1 тогда

Операция. Кредит. ВидыНоменклатуры = Услуга. ВидНоменклатуры

Иначе

Операция. Кредит. ВидыНоменклатуры = ВидНоменкл

КонецЕсли;

Если ВерсияОбъекта >= «7.70.421» Тогда

Операция. Кредит. СтавкиНДС = ТаблицаРеализации. СтавкаНДС;

Операция. Кредит. СтавкиНП = ТаблицаРеализации. СтавкаНП;

КонецЕсли;

КонецЕсли;

Операция. Валюта = Валюта;

Операция. Сумма = ТаблицаРеализации. СуммоваяРазница;

КонецЕсли;

Если (ПустоеЗначение(СчетЗатрат) = 0) и (ПустоеЗначение(СебестВсего) = 0) Тогда

Операция. НоваяПроводка();

Операция. НомерЖурнала = «ТВ»;

Операция. СодержаниеПроводки = «Себестоимость»;

Операция. ПервичныйДокумент = глПредставлениеПервичногоДокумента (Контекст);

Операция. Сумма = СебестВсего;

Если (ТипЗаказчика = 1) или (ТипЗаказчика = 0) Тогда

Операция. Дебет. Счет = Сч90_10

Операция. Дебет. Счет = Сч90_9

КонецЕсли;

Если СС9010 = 1 тогда

Операция. Дебет. Счет = Сч90_10

КонецЕсли;

Если СС9012 = 1 тогда

Операция. Дебет. Счет = Сч90_12

КонецЕсли;

Если СС9015 = 1 тогда

Операция. Дебет. Счет = Сч90_15

КонецЕсли;

Если ПустоеЗначение(ВидНоменкл) = 1 тогда

Операция. Дебет. ВидыНоменклатуры = ТаблицаРеализации. ВидНоменклатуры;

Операция. Дебет. ВидыНоменклатуры = Услуга. ВидНоменклатуры;

Иначе

Операция. Дебет. ВидыНоменклатуры = ВидНоменкл

КонецЕсли;

Если ВерсияОбъекта >= «7.70.421» Тогда

Операция. Дебет. СтавкиНДС = ТаблицаРеализации. СтавкаНДС;

Операция. Дебет. СтавкиНП = ТаблицаРеализации. СтавкаНП;

КонецЕсли;

Операция. Кредит. Счет = СчетЗатрат;

Операция. Кредит. Субконто (1, Субконто1);

Операция. Кредит. Субконто (2, Субконто2);

Операция. Кредит. Субконто (3, Субконто3);

КонецЕсли;

КонецЦикла;

Прервать;

Если ТипУслуги = 1 Тогда

Форма. ИспользоватьСлой («ЗачетАванса», 1);

Форма. ИспользоватьСлой («ЗачетТребований», 0);

Форма. ИспользоватьСлой («ПрочиеДоходы», 0);

Форма. ИспользоватьСлой («Номенклатура», 1);

Форма. ИспользоватьСлой («СписокТиповЗ», 1);

ИначеЕсли ТипУслуги = 2 Тогда

Форма. ИспользоватьСлой («ЗачетАванса», 0);

Форма. ИспользоватьСлой («ЗачетТребований», 1);

Форма. ИспользоватьСлой («ПрочиеДоходы», 0);

Форма. ИспользоватьСлой («Номенклатура», 0);

Форма. ИспользоватьСлой («СписокТиповЗ», 0);

Иначе

Форма. ИспользоватьСлой («ЗачетАванса», 1);

Форма. ИспользоватьСлой («ЗачетТребований», 0);

Форма. ИспользоватьСлой («ПрочиеДоходы», 1);

Форма. ИспользоватьСлой («Номенклатура», 0);

Форма. ИспользоватьСлой («СписокТиповЗ», 1);

КонецЕсли;

Если ТипУслуги = 3 Тогда

Форма.СС914. Доступность(1)

Иначе

Форма.СС914. Доступность(0);

СС914 = 0;

КонецЕсли;

КонецПроцедуры // ПриВыбореТипаУслуги()

Процедура ПересчетСеб()

СебестВсего = Себестоимость*Количество

ПересчетСеб();

Процедура ПриВыбореДоговора()

Если Флаг = 0 Тогда

глПриВыбореДоговора (Контрагент, Договор);

Иначе

глПриВыбореДоговора (КонтрагентСписком, ДоговорСписком);

КонецЕсли;

УправлениеКурсом(1); // при изменении договора могла измениться валюта

ПроверитьДоговор();

КонецПроцедуры // ПриВыбореДоговора()

Процедура ПриВыбореКонтрагента()

Если Флаг = 0 Тогда

глПриВыбореКонтрагента (Контрагент, Договор);

Иначе

глПриВыбореКонтрагента (КонтрагентСписком, ДоговорСписком);

КонецЕсли;

УправлениеКурсом(1);

ПроверитьДоговор();

КонецПроцедуры // ПриВыбореКонтрагента()

Процедура ПриВыбореСчетаЗатрат()

Для А = 1 По 3 Цикл

НазначитьТип («Субконто»+А, СчетЗатрат. ВидСубконто(А));

КонецЦикла;

КонецПроцедуры // ПриВыбореСчета

Процедура ПроверкаФлага()

Если Флаг = 0 тогда

Форма. Контрагент. Видимость(1);

Форма. Договор. Видимость(1);

Форма. КонтрагентСписком. Видимость(0);

Форма. ДоговорСписком. Видимость(0);

Иначе

Форма. Контрагент. Видимость(0);

Форма. Договор. Видимость(0);

Форма. КонтрагентСписком. Видимость(1);

Форма. ДоговорСписком. Видимость(1);

КонецЕсли;

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

Процедура ПроверкаКнопки() // определяет доступность кнопок по Дт и Кр

Форма.СС9010. Доступность(0);

Форма.СС906. Доступность(0);

Форма.СС9012. Доступность(0);

Форма.СС909. Доступность(0);

Форма.СС9015. Доступность(0);

Форма.СС625. Доступность(0);

Форма.СС626. Доступность(0);

Форма.СС6210. Доступность(0);

Форма.СС6212. Доступность(0);

Форма.СС6214. Доступность(0);

Форма.СС7681. Доступность(0);

Форма.СС762. Доступность(0);

Форма.СС765. Доступность(0);

Форма.СС765. Доступность(0);

Форма.СС844. Доступность(0);

Форма.СС733. Доступность(0);

Форма. Сч844. Доступность(0);

Форма. Сч844. Видимость(0);

Форма. Сотр. Доступность(0);

Форма. Сотр. Видимость(0);

Если СС906 = 1 Тогда

Форма.СС906. Доступность(1);

ИначеЕсли СС909 = 1 Тогда

Форма.СС909. Доступность(1);

ИначеЕсли СС9010 = 1 Тогда

Форма.СС9010. Доступность(1);

ИначеЕсли СС9012 = 1 Тогда

Форма.СС9012. Доступность(1);

ИначеЕсли СС9015 = 1 Тогда

Форма.СС9015. Доступность(1);

Иначе

Форма.СС906. Доступность(1);

СС906 = 0;

Форма.СС909. Доступность(1);

СС909 = 0;

Форма.СС9010. Доступность(1);

СС9010 = 0;

Форма.СС9012. Доступность(1);

СС9012 = 0;

Форма.СС9015. Доступность(1);

СС9015 = 0;

КонецЕсли;

Если ТипЗаказчика = 2 Тогда

Если СС7681 = 1 Тогда

Форма.СС7681. Доступность(1);

ИначеЕсли СС762 = 1 Тогда

Форма.СС762. Доступность(1);

ИначеЕсли СС765 = 1 Тогда

Форма.СС765. Доступность(1);

Иначе

Форма.СС7681. Доступность(1);

СС7681 = 0;

Форма.СС762. Доступность(1);

СС762 = 0;

Форма.СС765. Доступность(1);

СС765 = 0;

КонецЕсли;

Иначе

Если СС625 = 1 Тогда

Форма.СС625. Доступность(1);

ИначеЕсли СС6210 = 1 Тогда

Форма.СС6210. Доступность(1);

ИначеЕсли СС6212 = 1 Тогда

Форма.СС6212. Доступность(1);

ИначеЕсли СС6214 = 1 Тогда

Форма.СС6214. Доступность(1);

ИначеЕсли СС626 = 1 Тогда

Форма.СС626. Доступность(1);

ИначеЕсли СС733 = 1 Тогда

Форма.СС733. Доступность(1);

Форма. Сотр. Видимость(1);

Форма. Сотр. Доступность(1);

ИначеЕсли СС844 = 1 Тогда

Форма.СС844. Доступность(1);

Форма. Сч844. Видимость(1);

Форма. Сч844. Доступность(1);

Иначе

Форма.СС625. Доступность(1);

Форма.СС6210. Доступность(1);

Форма.СС6212. Доступность(1);

Форма.СС6214. Доступность(1);

Форма.СС626. Доступность(1);

Форма.СС733. Доступность(1);

Форма.СС844. Доступность(1);

СС733 = 0;

СС844 = 0;

СС626 = 0;

СС625 = 0;

СС6210 = 0;

СС6212 = 0;

СС6214 = 0;

КонецЕсли;

КонецЕсли;

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

Операция. НоваяПроводка();

Операция. НомерЖурнала = «МТ»;

Операция. СодержаниеПроводки = «Поступили материалы»;

Операция. ПервичныйДокумент = глПредставлениеПервичногоДокумента(Контекст);

Операция. Дебет. Счет = Сч;

Операция. Дебет. Материалы = Материал;

Операция. Дебет. МестаХранения = МестоХранения;

Операция. Кредит. Счет = СчетРасчетовСПоставщиком;

Операция. Кредит. Контрагенты = Контрагент;

Операция. Кредит. Договоры = Договор;

Операция. Количество = Количество;

Если Флаг = 1 тогда

Операция. Кредит. Счет = Сч71_1;

КонецЕсли;

Если ПустоеЗначение(СчетЗатрат) = 0 тогда

Операция. Кредит. Счет = СчетЗатрат;

Операция. Кредит. Субконто (1, Субконто1);

Операция. Кредит. Субконто (2, Субконто2);

Операция. Кредит. Субконто (3, Субконто3);

КонецЕсли;

Операция. НоваяПроводка();

Операция. Дебет. Счет = Сч19_1;

Операция. Дебет. Контрагенты = Контрагент;

Если ПустоеЗначение(ДатаНомерСчетаФактуры) = 0 Тогда

Операция. Дебет. СчетаФактурыПолученные = ТекущийДокумент();

КонецЕсли;

Операция. Кредит. Счет = СчетРасчетовСПоставщиком;

Операция. Кредит. Контрагенты = Контрагент;

Операция. Кредит. Договоры = Договор;

Если Флаг = 1 тогда

Операция. Кредит. Счет = Сч71_1;

КонецЕсли;

Если ПустоеЗначение(СчетЗатрат) = 0 тогда

Операция. Кредит. Счет = СчетЗатрат;

Операция. Кредит. Субконто (1, Субконто1);

Операция. Кредит. Субконто (2, Субконто2);

Операция. Кредит. Субконто (3, Субконто3);

КонецЕсли;

Модуль документа «ПоступлениеОС»

Если ПустоеЗначение(СчетЗатрат) = 0 тогда

Операция. Кредит. Счет = СчетЗатрат;

Операция. Кредит. Субконто (1, Субконто1);

Операция. Кредит. Субконто (2, Субконто2);

Операция. Кредит. Субконто (3, Субконто3);

КонецЕсли;

Если Флаг = 1 тогда

Операция. Кредит. Счет = Сч71_1;

КонецЕсли;

Процедура ПриВыбореСчетаЗатрат()

Для А = 1 По 3 Цикл

НазначитьТип («Субконто»+А, СчетЗатрат. ВидСубконто(А));

КонецЦикла;

КонецПроцедуры // ПриВыбореСчета

Процедура УправлениеЗакладками()

Форма. ИспользоватьЗакладки(1);

Форма. Закладки. УдалитьВсе();

Форма. Закладки. ДобавитьЗначение («Поступление»);

Форма. Закладки. ДобавитьЗначение («Счет затрат»);

КонецПроцедуры // УправлениеЗакладками

Процедура ПриВыбореЗакладки (НомерЗакладки, ЗначениеЗакладки)

Если НомерЗакладки = 1 Тогда

Форма. ИспользоватьСлой («Основной», 2);

Иначе

Форма. ИспользоватьСлой («СчетЗатрат», 2);

КонецЕсли;

// УправлениеВидимостьюРеквизитов();

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

Модуль документа «РасходнаяНакладная»

Если ТаблицаДокумента. Количество >= КоличествоНаСкладах Тогда

Если ТаблицаДокумента. Товар. ТипНоменклатуры = Перечисление. ТипыНоменклатуры. Продукция тогда

Если ТаблицаДокумента. Товар. ПлановаяСебестоимость. Получить(ДатаДок) = 0 Тогда

Сообщить («У продукции «+ТаблицаДокумента. Товар+» отсутствует себестоимость.»,)

КонецЕсли;

ИначеЕсли ПустоеЗначение (ТаблицаДокумента. Себест)= 0 тогда

СуммаОтгрузки = ТаблицаДокумента. Количество* ТаблицаДокумента. Себест

Иначе

СуммаОтгрузки = СуммаНаСкладах

КонецЕсли;

Иначе

Если ТаблицаДокумента. Товар. ТипНоменклатуры = Перечисление. ТипыНоменклатуры. Продукция тогда

СуммаОтгрузки = ТаблицаДокумента. Количество* ТаблицаДокумента. Товар. ПлановаяСебестоимость. Получить(ДатаДок);

Если ТаблицаДокумента. Товар. ПлановаяСебестоимость. Получить(ДатаДок) = 0 Тогда

Сообщить («У продукции «+ТаблицаДокумента. Товар+» отсутствует себестоимость.»,)

КонецЕсли;

ИначеЕсли ПустоеЗначение (ТаблицаДокумента. Себест)= 0 тогда

СуммаОтгрузки = ТаблицаДокумента. Количество* ТаблицаДокумента. Себест

Иначе

СуммаОтгрузки = ТаблицаДокумента. Количество* (СуммаНаСкладах/КоличествоНаСкладах);

КонецЕсли;

КонецЕсли;

Если ПустоеЗначение(СчетЗатрат1) = 1 тогда

Операция. Дебет. Счет = Сч90_1_1;

Операция. Дебет. ВидыНоменклатуры = ТаблицаОтгрузки. ВидНоменклатуры;

Операция. Дебет. СтавкиНДС = ТаблицаОтгрузки. СтавкаНДС;

Операция. Дебет. СтавкиНП = ТаблицаОтгрузки. СтавкаНП;

иначеЕсли СчетЗатрат1. ПринадлежитГруппе (СчетПоКоду(«90»)) = 1 Тогда

Операция. Дебет. Счет = СчетЗатрат1;

Операция. Дебет. ВидыНоменклатуры = ТаблицаОтгрузки. ВидНоменклатуры;

Операция. Дебет. Субконто (2, Субконто5);

Операция. Дебет. Субконто (3, Субконто6);

Операция. Дебет. Субконто (3, Субконто6);

КонецЕсли;

Если ПустоеЗначение(СчетЗатрат) = 0 тогда

Операция. Дебет. Счет = СчетЗатрат;

Операция. Дебет. Субконто (1, Субконто1);

Операция. Дебет. Субконто (2, Субконто2);

Операция. Дебет. Субконто (3, Субконто3);

КонецЕсли;

Если ПустоеЗначение(СчетЗатрат1) = 1 тогда

Операция. Кредит. Счет = Сч90_1_1;

Операция. Кредит. ВидыНоменклатуры = ТаблицаОтгрузки. ВидНоменклатуры;

Операция. Кредит. СтавкиНДС = ТаблицаОтгрузки. СтавкаНДС;

Операция. Кредит. СтавкиНП= ТаблицаОтгрузки. СтавкаНП;

иначеЕсли СчетЗатрат1. ПринадлежитГруппе (СчетПоКоду(«90»)) = 1 Тогда

Операция. Кредит. Счет = СчетЗатрат1;

Операция. Кредит. Субконто (3, Субконто6);

Иначе

Операция. Кредит. Счет = СчетЗатрат1;

Операция. Кредит. Субконто (1, Субконто4);

Операция. Кредит. Субконто (2, Субконто5);

Операция. Кредит. Субконто (3, Субконто6);

КонецЕсли;

Модуль формы «РасходнаяНакладная»

Процедура УправлениеЗакладками()

Форма. ИспользоватьЗакладки(1);

Форма. Закладки. УдалитьВсе();

Форма. Закладки. ДобавитьЗначение («Отгрузка товаров (продукции)»);

Форма. Закладки. ДобавитьЗначение («Счет затрат»);

КонецПроцедуры // УправлениеЗакладками

Процедура ПриВыбореСчетаЗатрат()

Для А = 1 По 3 Цикл

НазначитьТип («Субконто»+А, СчетЗатрат. ВидСубконто(А));

КонецЦикла;

КонецПроцедуры // ПриВыбореСчета

Процедура ПриВыбореСчетаЗатрат1 ()

Для А = 1 По 3 Цикл

В = А + 3;

НазначитьТип («Субконто»+В, СчетЗатрат1. ВидСубконто(А));

КонецЦикла;

КонецПроцедуры // ПриВыбореСчета

Процедура ПриВыбореЗакладки (НомерЗакладки, ЗначениеЗакладки)

Если НомерЗакладки = 1 Тогда

Форма. ИспользоватьСлой («Основной», 2);

Иначе

Форма. ИспользоватьСлой («СчетЗатрат», 2);

КонецЕсли;

Если Форма. ИспользоватьЗакладки() = 1 Тогда

Если Форма. Закладки. ТекущаяСтрока() = 1 Тогда

УправлениеКурсом();

УправлениеВидимостьюГрузополучателя();

УправлениеВидимостьюГрузоотправителя();

КонецЕсли;

КонецЕсли;

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

Модуль документа «СписаниеОС»

Если (БалансоваяСтоимость = 0) и (Сумма = 0) Тогда

Предупреждение («Введите балансовую стоимость»)

КонецЕсли;

Операция. НоваяПроводка();

Операция. НомерЖурнала = «ОС»;

Операция. СодержаниеПроводки = «Списана баланс. ст-ть»;

Операция. ПервичныйДокумент = глПредставлениеПервичногоДокумента(Контекст);

Операция. Сумма =? (БалансоваяСтоимость = 0, Сумма, БалансоваяСтоимость);

Операция. Количество = Количество;

Если ПустоеЗначение(Сч) = 1 Тогда

Операция. Кредит. Счет = Сч01_1;

Операция. Кредит. ОсновныеСредства = ОсновноеСредство;

Иначе

Операция. Кредит. Счет = Сч;

Операция. Кредит. ОсновныеСредства = ОсновноеСредство;

Если (Сч. Код = «01.4») или (Сч. Код = «01.6») или (Сч. Код = «01.8») или (Сч. Код = «01.9») тогда

Операция. Кредит. МестаХранения = ПодОтч;

КонецЕсли;

КонецЕсли;

Операция. Дебет. Счет = Сч01_5;

Операция. Дебет. ОсновныеСредства = ОсновноеСредство;

ОстаточнаяСтоимость =? (СчетНачисленияАмортизации. Забалансовый = 1, БалансоваяСтоимость, БалансоваяСтоимость - НачисленнаяАмортизация);

Если Сумма <>0 тогда

ОстаточнаяСтоимость = Сумма;

КонецЕсли;

Если ОстаточнаяСтоимость <> 0 Тогда

Операция. НоваяПроводка();

Операция. НомерЖурнала = «ОС»;

Операция. СодержаниеПроводки =? (СчетНачисленияАмортизации. Забалансовый = 1, «Списана баланс. ст-ть», «Списана остат. ст-ть»);

Операция. ПервичныйДокумент = глПредставлениеПервичногоДокумента(Контекст);

Если ПустоеЗначение(СчетЗатрат) = 0 тогда

Операция. Дебет. Счет = СчетЗатрат;

Операция. Дебет. Субконто (1, Субконто1);

Операция. Дебет. Субконто (2, Субконто2);

Операция. Дебет. Субконто (3, Субконто3);

ИначеЕсли ТипСписания = 1 Тогда

Операция. Дебет. Счет = Сч99_1;

Операция. Дебет. ПрибылиИУбытки = Перечисление. ПрибылиИУбытки. ЧрезвычайныеРасходы;

Иначе

Операция. Дебет. Счет = Сч91_2;

Операция. Дебет. ПрочиеДоходыИРасходы = СтатьяПрочихДоходовИРасходов;

КонецЕсли;

Операция. Кредит. Счет = Сч01_5;

Операция. Кредит. ОсновныеСредства = ОсновноеСредство;

Если ПустоеЗначение(Сумма) = 1 тогда

Операция. Сумма = БалансоваяСтоимость - НачисленнаяАмортизация

Иначе

Операция. Сумма = Сумма

КонецЕсли;

КонецЕсли;

Модуль документа «ТребованиеНакладная»

Если ПустоеЗначение(Сч) = 1 Тогда

Операция. Дебет. Счет = ТаблицаОстатков. СчетУчета;

Иначе

Операция. Дебет. Счет = Сч;

КонецЕсли;

Операция. Дебет. Субконто (1, Материал);

Операция. Дебет. Субконто (2,? (Флаг = 1, МестоХраненияПриемникГруппой, МестоХраненияПриемник));

Если ПустоеЗначение(Сч) = 1 Тогда

Операция. Кредит. Счет = ТаблицаОстатков. СчетУчета;

Иначе

Операция. Кредит. Счет = Сч;

КонецЕсли;

Модуль формы «УслугиСтороннихОрганизаций»

Процедура ПроверкаКнопок()

Если СС7681 = 1 Тогда

СС765 = 0;

Форма.СС765. Доступность(0);

Форма.СС7681. Доступность(1);

ИначеЕсли СС765 = 1 Тогда

СС7681 = 0;

Форма.СС765. Доступность(1);

Форма.СС7681. Доступность(0);

Иначе

СС7681 = 0;

СС765 = 0;

Форма.СС765. Доступность(1);

Форма.СС7681. Доступность(1);

КонецЕсли;

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

Модуль документа «ОтпускМатериаловНаСторону»

Если ПустоеЗначение(Себест) = 1 Тогда

Операция. Сумма = СуммаСписания;

Иначе

Операция. Сумма = Себест*КоличествоОтпущено;

КонецЕсли;

Если ВидОтпуска = 0 Тогда // отгрузка

Операция. НомерЖурнала = «МТ»;

Операция. СодержаниеПроводки = «Списан материал»;

Операция. ПервичныйДокумент = глПредставлениеПервичногоДокумента(Контекст);

Если ПустоеЗначение(СчетЗатрат1) = 1 Тогда

Операция. Дебет. Счет = Сч91_2;

Операция. Дебет. ПрочиеДоходыИРасходы = СтатьяПрочихДоходовИРасходов;

Иначе

Операция. Дебет. Счет = СчетЗатрат1;

Операция. Дебет. Субконто (1, Субконто4);

Операция. Дебет. Субконто (2, Субконто5);

Операция. Дебет. Субконто (3, Субконто6);

КонецЕсли;

Если ПустоеЗначение(Сч) = 1 Тогда

Операция. Кредит. Счет = Материал. СубСчет10

Иначе

Операция. Кредит. Счет = Сч

КонецЕсли;

Операция. Кредит. Материалы = Материал;

Операция. Кредит. МестаХранения = МестоХранения;

Операция. Количество = КоличествоОтпущено;

Если ПустоеЗначение(Себест) = 1 Тогда

Операция. Сумма = СуммаОтгрузки;

Иначе

Операция. Сумма = Себест*КоличествоОтпущено;

КонецЕсли;

Если СуммаРеализации > 0 Тогда

Операция. НоваяПроводка();

Операция. НомерЖурнала = «МТ»;

Операция. СодержаниеПроводки = «Реализ.по цене выбытия»;

Операция. ПервичныйДокумент = глПредставлениеПервичногоДокумента(Контекст);

Если ПустоеЗначение(СчетЗатрат) = 1 Тогда

Операция. Дебет. Счет = СчетРасчетовСПокупателем;

Операция. Дебет. Контрагенты = Контрагент;

Операция. Дебет. Договоры = Договор;

Иначе

Операция. Дебет. Счет = СчетЗатрат;

Операция. Дебет. Субконто (1, Субконто1);

Операция. Дебет. Субконто (2, Субконто2);

Операция. Дебет. Субконто (3, Субконто3);

КонецЕсли;

Если ПустоеЗначение(СчетЗатрат1) = 1 Тогда

Операция. Кредит. Счет = Сч91_1;

Операция. Кредит. ПрочиеДоходыИРасходы = СтатьяПрочихДоходовИРасходов;

Иначе

Операция. Кредит. Счет = СчетЗатрат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 с.

.А. Алексеев, О. Дерут, В. Егоров Описание типового языка программирования конфигурации «Зарплата и Кадры» в 2-х томах. Том 1. - М.: 1С, 2002. - 634 с.

.А. Алексеев, О. Дерут, В. Егоров Описание типовой конфигурации «Бухгалтерский учет» - М.: 1С, 2002. - 537 с.

.А. Алексеев, О. Дерут, В. Егоров Описание типового языка программирования конфигурации «Бухгалтерский учет» в 2-х томах. Том 1. - М.: 1С, 2002. - 689 с.

.А. Алексеев, О. Дерут, В. Егоров Описание типового языка программирования конфигурации «Бухгалтерский учет» в 2-х томах. Том 1. - М.: 1С, 2002. - 634 с.

.ГОСТ 12.1.030-81. Электробезопасность. Защитное заземление. - Введ.02.02.80. - М.: Изд-во стандартов, 1987. - 13 с.

.ГОСТ19.106-77. Требования к программным документам, выполненным печатным способом. - Введ.02.02.80. - М.: Изд-во стандартов, 1987. - 13 с.

.ГОСТ19.201-78. Техническое задание. Требования к содержанию и оформлению. - Введ.02.02.80. - М.: Изд-во стандартов, 1987. - 3 с.

.ГОСТ19.202-78. Спецификация. - Введ.02.02.80. - М.: Изд-во стандартов, 1987. - 3 с.

.ГОСТ19.301-79. Программа и методика испытаний. - Введ.02.02.80. - М.: Изд-во стандартов, 1987. - 2 с.

.ГОСТ19.401-78. Текст программы. - Введ.02.02.80. - М.: Изд-во стандартов, 1987. - 1 с.

.ГОСТ19.402-78. Описание программы. - Введ.02.02.80. - М.: Изд-во стандартов, 1987. - 2 с.

.ГОСТ19.404-79. Пояснительная записка. Требования к содержанию и оформлению. - Введ.02.02.80. - М.: Изд-во стандартов, 1987. - 2 с.

.ГОСТ19.502-78. Описание применения. Требования к содержанию и оформлению. - Введ.02.02.80. - М.: Изд-во стандартов, 1987. - 2 с.

.ГОСТ19.504-79. Руководство программиста. Требования к содержанию и оформлению. - Введ.02.02.80. - М.: Изд-во стандартов, 1987. - 2 с.



Конфигурирование программы "1С:Предприятие" на основе предприятия сельскохозяйственной отрасли Введ

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ