8.х ВидРасчета.ФормулаРасчета ЗУиП 8.1

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем yty65, 22 окт 2010.

  1. TopicStarter Overlay
    yty65
    Offline

    yty65

    Регистрация:
    24 авг 2010
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    Объясните пожалуйста, как через конфигуратор определить ФормулуРасчета для ВидаРасчета, надо не посредственно создать ВидРасчета с нужными параметрами, спасибо...
  2. TopicStarter Overlay
    yty65
    Offline

    yty65

    Регистрация:
    24 авг 2010
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    Код:
    ВРО = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.СоздатьВидРасчета();
    
    ВРО.Код = Лев(Наименование,3);
    ВРО.Наименование = "Оплата за"+" "+НРег(Наименование);
    ВРО.СпособРасчета = .......... ????
    и др. требуемые реквизиты.....
    ВРО.Записать();
    ВидРасчета = ВРО.Ссылка;
    
    
  3. has
    Offline

    has Опытный в 1С

    Регистрация:
    18 июн 2009
    Сообщения:
    708
    Симпатии:
    0
    Баллы:
    26
    Там же тип перечисление СпособыРасчетаОплатыТруда, в УПП по крайней мере так.
  4. TopicStarter Overlay
    yty65
    Offline

    yty65

    Регистрация:
    24 авг 2010
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    Мне нужна произвольная формула расчета
  5. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.638
    Симпатии:
    948
    Баллы:
    204
    Смотрите, "СПОСОБ расчета" это то каким способом будет расчитываться расчет - это перечисления. Например Процентом,месячной тарифной ставки и т.д.
    В модуле проведения расчетов прописанно, что сначала смотрится что за способ расчета а потом расчитываются его показатели.

    Вот как это в коде выглядет. в общем модуле проведениеРасчетов

    Код:
    ИначеЕсли СпособРасчета = Перечисления.СпособыРасчетаОплатыТруда.ПоМесячнойТарифнойСтавкеПоДням или 
    СпособРасчета = Перечисления.СпособыРасчетаОплатыТруда.ПоМесячнойТарифнойСтавкеПоЧасам или
    СпособРасчета = Перечисления.СпособыРасчетаОплатыТруда.ОтСтажаПоМесячнойТарифнойСтавкеПоДням или 
    СпособРасчета = Перечисления.СпособыРасчетаОплатыТруда.ОтСтажаПоМесячнойТарифнойСтавкеПоЧасам Тогда
    
    НормаВремени = ИсходныеДанные.НормаВремениЗаМесяц;
    СообщениеОбОшибке = Ложь;
    ОтработаноВремениОсновное = ОплачиваемоеВремя(ИсходныеДанные, СтрокаДвижений, КомментироватьРасчет, КомментарийВидаРасчета, СообщениеОбОшибке, ГрафикиБезРабочегоВремени);
    Если НЕ СообщениеОбОшибке И НормаВремени = 0 Тогда
    ОбщегоНазначения.ОшибкаРасчета(ИсходныеДанные.СотрудникНаименование + "; " + ИсходныеДанные.ВидРасчетаНаименование + ": Нет рабочих дней в заданном периоде");
    КонецЕсли;
    Если НормаВремени <> 0 Тогда
    Результат = СтрокаДвижений[ПоказательРазмер] * ОтработаноВремениОсновное / НормаВремени;
    Если КомментироватьРасчет Тогда
    ОбщегоНазначения.КомментарийРасчета("Тарифная ставка: " + СтрокаДвижений[ПоказательРазмер], КомментарийВидаРасчета);
    ОбщегоНазначения.КомментарийРасчета("Норма времени: " + НормаВремени, КомментарийВидаРасчета);
    КонецЕсли;
    КонецЕсли;
    
    СтрокаДвижений.ОплаченоДнейЧасов = ОтработаноВремениОсновное * ?(СтрокаДвижений.Сторно,-1,1);
    
    

    НУ а что Вам мешает указать произвольную формулу, добавить свои показатели и считать
  6. TopicStarter Overlay
    yty65
    Offline

    yty65

    Регистрация:
    24 авг 2010
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    Да, этот модуль есть, но зачем он мне нужен :angry:

    Опишу сит-ию! В справочник добавляется новый элемент, в форме элемента добавлена кнопка - для создания вида расчета, в зависимости от текущего элемента справочника. Создать и записать вид расчета в ПланВидовРасчета у меня вышло (соответственно могу указать и наименование, и код и ряд других реквизитов), а как указать произвольную формулу расчета с показателями из справочника показателей, размер которых мне известен, не пойму. А расчет формулы по этим показателям мне пока не нужен.
    Или я чего-то не понемаю :D

    Код:
    Процедура ОсновныеДействияФормыСоздатьВидРасчета(Кнопка)
    ВРО = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.СоздатьВидРасчета();
    ВРО.Код = Лев(Наименование,3);
    ВРО.Наименование = "Оплата за"+" "+НРег(Наименование); 
    ВРО.Записать();
    ВидРасчета = ВРО.Ссылка;
    КонецПроцедуры
    
    
  7. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.638
    Симпатии:
    948
    Баллы:
    204
    Вы не совсем понимаете. У вида расчета есть реквизит ФормулаРасчета - это строка, в которую будут записана формула, по которой будет происходить расчет. Затем при расчете эти показатели заполняются илбо пользователем либо автоматом и в процесе расчета система анализиует сколько показателей и какие в них значения.

    вот вам пример кода
    Код:
    СпособРасчета = Перечисления.СпособыРасчетаОплатыТруда.ПроизвольнаяФормула Тогда
    
    ФормулаРасчета = ИсходныеДанные.ФормулаРасчета;
    
    Если ЗначениеЗаполнено(ФормулаРасчета) Тогда //Возможно, что формула пустая, тогда результат вводится руками
    
    // проверим, все ли показатели получены			
    Если ИсходныеДанные.КоличествоПоказателей <> Null Тогда
    Для НомерСтроки = 1 По ИсходныеДанные.КоличествоПоказателей Цикл
    Если ИсходныеДанные["Показатель"+НомерСтроки] = Null Тогда
    ОбщегоНазначения.ОшибкаРасчета(ИсходныеДанные.СотрудникНаименование + "; " + ИсходныеДанные.ВидРасчетаНаименование + ": не получен Показатель """ + ИсходныеДанные["Показатель"+НомерСтроки+"Наименование"] + """");
    РезультатПолучен = Ложь;
    ИначеЕсли КомментироватьРасчет Тогда
    
    Вы напишите простой запрос к плану видов расчета основные начисления с выводом всех реквизитов и увидите как это все устроено. т.е. есть реквизит формулаРасчета и там например "Оклад*факт/норму"
  8. TopicStarter Overlay
    yty65
    Offline

    yty65

    Регистрация:
    24 авг 2010
    Сообщения:
    27
    Симпатии:
    0
    Баллы:
    1
    Я правильно понял, что я занесу в ФормулуРасчета типа строка какую-ту произвольную формулу, например "СуммаЗаДерево*Кол-воСрубленныхДеревьев", а затем при расчете буду искать показатели, которые мне нужны для расчета этой формулы...
  9. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.638
    Симпатии:
    948
    Баллы:
    204
    Впринцпе да. я бы Вам советовал глянуть общий модуль ПроведениеРасчетов функцию РассчитатьЗаписьРегистраРасчета и строччки кода со строки
    ИначеЕсли СпособРасчета = Перечисления.СпособыРасчетаОплатыТруда.ПроизвольнаяФормула Тогда

    Поймете что да как

Поделиться этой страницей