Имя: Пароль:
1C
1С v8
ЗУП 3. Расчетная база за период
, , ,
0 2S
 
20.08.18
08:25
Подсобите, есть ли функция в ЗУП, которая позволяет получить расчетную базу за произвольный период? Аналог 77 глПолучитьБазуВР().
1 Фрэнки
 
20.08.18
08:26
(0) а где ее нужно получать (в каком контексте)?
2 мистер игрек
 
20.08.18
08:28
(0) А разве в регистре расчета нет такого?
3 2S
 
20.08.18
08:42
(1) требуется собрать базу для премии, но премия берется за произвольный период, т.е. не полный месяц. Стандартной настройки не нашел.
(2)хм, это как?
4 2S
 
20.08.18
08:43
(2) есть запись "оплата по окладу" с 01.01 по 20.01
Период премии с 10.01 по 15.01, вот и нужно выцепить базу за этот период
5 Фрэнки
 
20.08.18
08:47
(3) теперь задачу понял :)

вот какая интересная процедура попалась на глаза

Процедура ПроверитьНаличиеБазовыхВидовРасчета(ВидРасчетаОбъект, Отказ) Экспорт
    
    // Проверяем, что если в формуле присутствует показатель Расчетная база, список базовых начислений не пуст.
    
    РасчетнаяБаза = ОбщегоНазначенияКлиентСервер.ПредопределенныйЭлемент("Справочник.ПоказателиРасчетаЗарплаты.РасчетнаяБаза");
    
    Если ВидРасчетаОбъект.Показатели.Найти(РасчетнаяБаза, "Показатель") <> Неопределено
        И ВидРасчетаОбъект.БазовыеВидыРасчета.Количество() = 0 Тогда
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
            НСтр("ru = 'Не заполнен список базовых начислений.'"), , "БазовыеВидыРасчета", , Отказ);
    КонецЕсли;
    
КонецПроцедуры

это в общем модуле РасчетЗарплатыРасширенный
6 2S
 
20.08.18
08:49
(5) как это связно с сабжем?
7 Фрэнки
 
20.08.18
08:51
(6) если где-то будет найдено что-то готовое, то оно будет использовать некоторые процедуры или функции, в параметрах которых будет торчать тип "Справочник.ПоказателиРасчетаЗарплаты.РасчетнаяБаза"
8 Фрэнки
 
20.08.18
08:53
(6) т.к. готового решения у меня нет, но стало интересно - а как бы я решил такую задачу - полез смотреть.
9 2S
 
20.08.18
09:01
(8) спасибо
может еще и решишь возмездно? :)
10 мистер игрек
 
20.08.18
09:08
Не это?

Отбор = Новый Структура();
Ресурсы = Новый Массив(1);
Ресурсы[0] = "РаспределениеОсновныхНачислений.Результат";
Измерения = Новый Структура("ФизЛицо,Организация,Отдел,Должность");
Измерения.Вставить("ФизЛицо","РаспределениеОсновныхНачислений.Физлицо");
Измерения.Вставить("Организация","РаспределениеОсновныхНачислений.Организация)";
Измерения.Вставить("Отдел","РаспределениеОсновныхНачислений.Отдел");
Измерения.Вставить("Должность","РаспределениеОсновныхНачислений.Должность");
Разрезы = Новый Массив(1);
Разрезы[0] = "РаспределениеОсновныхНачислений.СпособРаспределения";

Регистр = РегистрыРасчета.ОсновныеНачисленияСотрудников;
НаборЗаписей = Регистр.СоздатьНаборЗаписей();
ДокументыНачислений = Запрос.Выполнить().Выгрузить();
Для Каждого Документ Из ДокументыНачислений Цикл
    Отбор.Вставить("Регистратор",Документ.Регистратор);
    Данные = Регистр.ПолучитьБазу(Отбор,Ресурсы,Измерения,Разрезы);
    БазовыеДанныеСвод = Данные.Скопировать();
    БазовыеДанныеСвод.Свернуть("НомерСтроки","Результат");
    НаборЗаписей.Отбор.Регистратор.Значение = Документ.Регистратор;
    НаборЗаписей.Прочитать();
    ОсновныеДанные = НаборЗаписей.Выгрузить();

    // обработка строк набора записей

    // ...

КонецЦикла;
11 2S
 
20.08.18
09:16
(10)
хм, что такое запрос и где отбор по периодам, не читается
12 мистер игрек
 
20.08.18
09:18
Есть метод ПолучитьБазу()
13 El_Duke
 
гуру
20.08.18
09:52
(3) В начале прошлого года делал так
Создал ВР Премия, указал из чего состоит расчетная база и прочие настройки. В доке Премия указывал свой ВР, в разделе Прериод, по итогам указывал произвольный период. И все работало, проверял, база собиралась верно.
Будет ли работать сейчас, учитывая нынешнее качество типовых - надо проверять
14 Фрэнки
 
20.08.18
10:06
(13) Опередил

(9) Только что проверил через создания нового ВР и с использованием типового документа Премия. Расчетная база подтягивается точно за тот период, который указан в шапке документа.
15 2S
 
20.08.18
10:35
(14) о как, значит "золотые руки растут из жопы".
Понял, спасибо, проверю
16 El_Duke
 
гуру
20.08.18
10:52
(15) Не факт
В прошлом же году по весне в очередном из релизов был адский баг, который всю схему из (13) выводил из строя.
Суть бага - документ не реагировал на переключатель Период, по итогам ...
Указание своего произвольного интервала ничего не давало. Исправили через пару релизов. Так что не всегда руки из опы виноваты.
17 VladRd
 
20.08.18
13:00
А так просто не получится? Если выгрузить из вида начисления "Премия" базовые виды начислений в массив БазовыеВидыРасчета и сотрудников в массив Сотрудники...

ВЫБРАТЬ
    ОсновныеНачисленияРаботниковОрганизаций.Сотрудник,
    СУММА(ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК СуммаБаза
ИЗ
    РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
ГДЕ
    ОсновныеНачисленияРаботниковОрганизаций.Сотрудник В(&Сотрудники)
    И ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета В(&БазовыеВидыРасчета)
    И ОсновныеНачисленияРаботниковОрганизаций.БазовыйПериодНачало >= &БазовыйПериодНачало
    И ОсновныеНачисленияРаботниковОрганизаций.БазовыйПериодКонец <= &БазовыйПериодКонец

СГРУППИРОВАТЬ ПО
    ОсновныеНачисленияРаботниковОрганизаций.Сотрудник
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.