Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Документ Приходная_накладная




&НаКлиенте

Процедура МатериалыКоличествоПриИзменении(Элемент)

СтрокаТабличнойЧасти=Элементы.Материалы.ТекущиеДанные;

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

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

 

&НаКлиенте

Процедура МатериалыЦенаПриИзменении(Элемент)

СтрокаТабличнойЧасти=Элементы.Материалы.ТекущиеДанные;

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

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

 

Документ Оказание_услуг

&НаКлиенте

Процедура ПереченьНоменклатурыКоличествоПриИзменении(Элемент)

СтрокаТабличнойЧасти=Элементы.ПереченьНоменклатуры.ТекущиеДанные;

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

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

 

&НаКлиенте

Процедура ПереченьНоменклатурыЦенаПриИзменении(Элемент)

СтрокаТабличнойЧасти=Элементы.ПереченьНоменклатуры.ТекущиеДанные;

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

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

 

&НаКлиенте

Процедура ПереченьНоменклатурыНоменклатураПриИзменении(Элемент)

//получить текущую строку табличной части

СтрокаТабличнойЧасти =Элементы.ПереченьНоменклатуры.ТекущиеДанные;

//установить цену

СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.РозничнаяЦена(Объект.Дата,

СтрокаТабличнойЧасти.Номенклатура);

//пересчитать сумму строки

 

Общий модуль РаботаСДокументами

Процедура РассчитатьСумму(СтрокаТабличнойЧасти)

Экспорт

СтрокаТабличнойЧасти.Сумма=СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена;

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

Общий модуль РаботаСоСправиочниками

Функция РозничнаяЦена(АктуальнаяДата,ЭлементНоменклатуры) Экспорт

//создать вспомогательный объект Отбор

Отбор = Новый

Структура("Номенклатура",ЭлементНоменклатуры);

//получить актуальные значения ресурсов регистра

ЗначенияРесурсов=РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата, Отбор);

Возврат ЗначенияРесурсов.Цена;

КонецФункции

 

ПроведениеРасчетов

// Процедура расчета начислений.

//

Процедура РассчитатьНачисления(НаборЗаписейРегистра, ТребуемыйВидРасчета, СписокСотрудников) Экспорт

 

Регистратор = НаборЗаписейРегистра.Отбор.Регистратор.Значение;

 

// Рассчитать первичные записи

Если ТребуемыйВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Оклад Тогда

 

Запрос = Новый Запрос;

Запрос.Текст = "

|ВЫБРАТЬ

| НачисленияДанныеГрафика.ЗначениеПериодДействия КАК Норма,

| НачисленияДанныеГрафика.ЗначениеФактическийПериодДействия КАК Факт,

| НачисленияДанныеГрафика.НомерСтроки

|ИЗ

| РегистрРасчета.Начисления.ДанныеГрафика(

| Регистратор = &Регистратор

| И ВидРасчета = &ВидРасчета

| И Сотрудник В (&СписокСотрудников)) КАК НачисленияДанныеГрафика";

Запрос.УстановитьПараметр("Регистратор", Регистратор);

Запрос.УстановитьПараметр("ВидРасчета", ТребуемыйВидРасчета);

Запрос.УстановитьПараметр("СписокСотрудников", СписокСотрудников);

 

ВыборкаРезультата = Запрос.Выполнить().Выбрать();

 

Для Каждого ЗаписьРегистра Из НаборЗаписейРегистра Цикл

 

СтруктураНомер = Новый Структура("НомерСтроки");

СтруктураНомер.НомерСтроки = ЗаписьРегистра.НомерСтроки;

ВыборкаРезультата.Сбросить();

Если ВыборкаРезультата.НайтиСледующий(СтруктураНомер) Тогда

Если ВыборкаРезультата.Норма = 0 Тогда

Сообщение = Новый СообщениеПользователю;

Сообщение.Текст = "Вид расчета: Оклад - нет рабочих дней в заданном периоде!";

Сообщение.Сообщить();

ЗаписьРегистра.Результат = 0;

Иначе

ЗаписьРегистра.Результат = (ЗаписьРегистра.ИсходныеДанные / ВыборкаРезультата.Норма) * ВыборкаРезультата.Факт;

Сообщение = Новый СообщениеПользователю;

Сообщение.Текст = "Выполнен расчет " + ЗаписьРегистра.Регистратор + " - " + ЗаписьРегистра.ВидРасчета + " - " + ЗаписьРегистра.Сотрудник;

Сообщение.Сообщить();

КонецЕсли;

КонецЕсли;

 

КонецЦикла;

 

ИначеЕсли ТребуемыйВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Премия Тогда

 

Запрос = Новый Запрос;

Запрос.Текст = "

|ВЫБРАТЬ

| НачисленияБазаНачисления.РезультатБаза КАК База,

| НачисленияБазаНачисления.НомерСтроки КАК НомерСтроки

|ИЗ

| РегистрРасчета.Начисления.БазаНачисления(

| &ИзмеренияОсновного,

| &ИзмеренияБазового,

|,

| Регистратор = &Регистратор

| И ВидРасчета = &ВидРасчета

| И Сотрудник В (&СписокСотрудников)) КАК НачисленияБазаНачисления";

 

Измер = Новый Массив(1);

Измер[0] = "Сотрудник";

 

Запрос.УстановитьПараметр("ИзмеренияОсновного", Измер);

Запрос.УстановитьПараметр("ИзмеренияБазового", Измер);

Запрос.УстановитьПараметр("Регистратор", Регистратор);

Запрос.УстановитьПараметр("ВидРасчета", ТребуемыйВидРасчета);

Запрос.УстановитьПараметр("СписокСотрудников", СписокСотрудников);

 

ВыборкаРезультата = Запрос.Выполнить().Выбрать();

 

Для Каждого ЗаписьРегистра Из НаборЗаписейРегистра Цикл

СтруктураНомер = Новый Структура("НомерСтроки");

СтруктураНомер.НомерСтроки = ЗаписьРегистра.НомерСтроки;

ВыборкаРезультата.Сбросить();

Если ВыборкаРезультата.НайтиСледующий(СтруктураНомер) Тогда

ЗаписьРегистра.Результат = ВыборкаРезультата.База * (10 / 100);

Сообщение = Новый СообщениеПользователю;

Сообщение.Текст = "Выполнен расчет " + ЗаписьРегистра.Регистратор + " - " + ЗаписьРегистра.ВидРасчета + " - " + ЗаписьРегистра.Сотрудник;

Сообщение.Сообщить();

КонецЕсли;

КонецЦикла;

КонецЕсли;

 

КонецПроцедуры // РассчитатьНачисления()

 

Отчет Материалы

ВЫБРАТЬ

ОстаткиМатериаловОстаткиИОбороты.Склад,

ОстаткиМатериаловОстаткиИОбороты.Материал,

ОстаткиМатериаловОстаткиИОбороты.КоличествоНачальныйОстаток,

ОстаткиМатериаловОстаткиИОбороты.КоличествоПриход,

ОстаткиМатериаловОстаткиИОбороты.КоличествоРасход,

ОстаткиМатериаловОстаткиИОбороты.КоличествоКонечныйОстаток

ИЗ

РегистрНакопления.ОстаткиМатериалов.ОстаткиИОбороты КАК ОстаткиМатериаловОстаткиИОбороты

 

Отчет РеестрДокументовОказанияУслуг

ВЫБРАТЬ

Оказание_Услуг.Склад,

Оказание_Услуг.Мастер,

Оказание_Услуг.Клиент,

Оказание_Услуг.Ссылка КАК Документ

ИЗ

Документ.Оказание_Услуг КАК Оказание_Услуг

 

УПОРЯДОЧИТЬ ПО

Документ

 

Отчет РейтингУслуги

ВЫБРАТЬ

СпрНоменклатура.Ссылка КАК Услуга,

ПродажиОбороты.ВыручкаОборот КАК Выручка

ИЗ

Справочник.Номенклатура КАК СпрНоменклатура

ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты

ПО ПродажиОбороты.Номенклатура = СпрНоменклатура.Ссылка

ГДЕ

СпрНоменклатура.ЭтоГруппа = ЛОЖЬ

И СпрНоменклатура.ВидНоменклатуры = &ВидНоменклатуры

 

УПОРЯДОЧИТЬ ПО

Выручка УБЫВ

 

Отчет ВыручкаСотрудников

ВЫБРАТЬ

ПродажиОбороты.Мастер,

ПродажиОбороты.Период,

ПродажиОбороты.Клиент,

ПродажиОбороты.ВыручкаОборот КАК Выручка

ИЗ

РегистрНакопления.Продажи.Обороты(,, День,) КАК ПродажиОбороты

 

Отчет ПереченьУслуг

ВЫБРАТЬ

спрНоменклатура.Родитель КАК ГруппаУслуг,

спрНоменклатура.Ссылка КАК Услуга,

ЦеныСрезПоследних.Цена

ИЗ

Справочник.Номенклатура КАК спрНоменклатура

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних(&ДатаОтчета,) КАК ЦеныСрезПоследних

ПО ЦеныСрезПоследних.Номенклатура = спрНоменклатура.Ссылка

ГДЕ

спрНоменклатура.ВидНоменклатуры = &ВидНоменклатуры

 

Отчет РейтингКлиентов

ВЫБРАТЬ

ПродажиОбороты.Клиент,

ПродажиОбороты.ВыручкаОборот КАК Выручка,

ПродажиОбороты.СтоимостьОборот КАК Стоимость

ИЗ

РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты

 

Отчет Универсальный

ВЫБРАТЬ

ПродажиОбороты.Номенклатура,

ПродажиОбороты.Клиент,

ПродажиОбороты.Мастер,

ПродажиОбороты.КоличествоОборот,

ПродажиОбороты.ВыручкаОборот,

ПродажиОбороты.СтоимостьОборот

ИЗ

РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...