Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Оценочные обязательства ЗУП25 в СКД - как лучше сделать?

Оценочные обязательства ЗУП25 в СКД - как лучше сделать?
Я
   lexushka
 
09.09.16 - 10:34
Добрый день

Понадобился мне такой отчет
Повозившись в коде в итоге я получаю отчет по сотрудникам в СКД
а средний заработок и остаток отпусков получаю неизящно:

для среднего заработка создаю в транзакции документ начисленеи одновневного отпуска, записываю его, рассчитываю механизмом 1с, возвращаю результат в СКД и отменюя транзакцию

остатки отпусков примерно так же, только без создания документа
Работает есесно небыстро…
Но за то цифры типа такие же как бух сам получит из своих документов

И было бы полбеды
Так теперь бы еще надо эти два значения умножать между собой для получения оценочного обязательства

А в вычисляемых полях в СКД нельзя использовать результаты других вычисляемых полей…

Простой вариянт опять вызвать эти две мои функции и пусть этот небыстрый отчет работает еще в два раза медленнее…

Либо результат работы моих функций сохранять в Хранилище данных, или в Константах и в третьей функции их оттуда считывать


Вопросы:

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

2 если другого способа нет как мне побыстрее найти произведении двух моих вычисляемых полей?

Да ЗУП25 из последних, конечно

спасибо
 
 
   Alexandr_U1982
 
1 - 09.09.16 - 10:43
Зачем такие сложности с вычисляемыми полями? Выполнить все расчеты в коде, а в СКД результаты расчетов передайте через внешние наборы данных

ВнешниеНаборыДанных = Новый Структура;
ВнешниеНаборыДанных.Вставить("РезультатыРасчета", ПосчитатьВсеЧтоНужно());

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки   = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);

и т.д.
   Alexandr_U1982
 
2 - 09.09.16 - 10:48
Альтернативное решение:
Для расчета оценочных обязательств создать документ и регистр. Все тяжелые расчеты будут делаться в документе, результаты расчетов будут записываться в регистр.
Отчет будет только выводить результаты расчетов из регистра.
На одном проекте делал таким способом.
   lexushka
 
3 - 09.09.16 - 11:02
на п1

как я себе это видел - у них любимый отчет на СКД по сотрудникам, который они настраивают как их в голову придет

я из этого отчета получаю сотрудника, дату, организацию и вычисляю недостающее…

а вы предлагаете перехватывтаь настройки отчета перед его формированием и вычислить недостающие данные и уже после этого формировать отчет на СКД с передачей ему нужных мне полей

так?
   lexushka
 
4 - 09.09.16 - 11:03
на п2

изначально хотели отчет, про документ я не понял :(
   Alexandr_U1982
 
5 - 09.09.16 - 11:29
(3)Да так. Если это будет возможно. Нужно использовать события "ПриКомпоновкеРезультата" модуля отчета.
   lexushka
 
6 - 09.09.16 - 11:33
(5) ох, надо таки пройти фаритовские курсы по СКД…
   Alexandr_U1982
 
7 - 09.09.16 - 11:44
(4)Можно создать новый документ «Расчет оценочных обязательств». Этот документ нужно будет формировать после начисления зарплаты. Документ должен будет заполняться по всем сотрудникам, для каждого сотрудника будет рассчитываться средний заработок, также для каждого сотрудника будут рассчитываться остатки отпусков.

Для прозрачности проверки расчета остатка отпусков, информацию об отпусках можно выводить в виде:
 - Вид отпуска,
 - Остаток на начало периода,
 - Израсходовано дней отпуска,
 - Заработано дней отпуска,
 - Остаток на конец периода.

Для прозрачности проверки расчета оценочных обязательств, информацию о них можно выводить в виде:
 - Оценочные обязательства на начало периода,
 - «Израсходованные» обязательства,
 - «Заработанные» обязательства,
 - Оценочные обязательства на конец периода.

Документ будет «тяжелым» и рассчитываться будет долго, но зато результаты всех расчетов потом можно будет сложить в новый регистр накопления «Оценочные обязательства». Отчет будет просто читать уже рассчитанную информацию из регистра. За счет этого отчет будет работать быстро.

Вот как-то так в общих словах...
   Alexandr_U1982
 
8 - 09.09.16 - 11:46
+(7)Скорее нужно использовать регистр сведений, а не накопления.
   supersonic
 
9 - 09.09.16 - 12:36
+(7) Смысл тот же, но реализовал несколько иначе:

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

Поначалу тоже использовал только независимый рс. Но потом были вопросы по конечному результату, поэтому решил использовать два регистра. независимый рс и рн (остатки).
Были такие учетные ситуации, когда у сотрудника получался остаток отпуска - ноль, а резерв есть...вот тут мне помогал уже рн.
рс - расчет по остаткам отпусков на дату.
рн - движения за месяц.
Кроме того, это позволило выводить абсолютно всех сотрудников в отчет, в том числе и уволенных (мне конкретно вынесли этим мозги).
   Homer
 
10 - 09.09.16 - 14:01
У меня сделана на отчете СКД без создания документов)) Но шаг влево шаг право и может не пойти средний заработок (выборочно у всех идет, но переводческий находим у кого на рубли не идет)
формирование отчета 3-5 минут (>500 чел). В другой конторе дольше делается, но у них сервак слабый, а сотрудников больше))
 
 Рекламное место пустует
   lexushka
 
11 - 09.09.16 - 14:06
(10) вы сами в запросе данные вычисляете?
   Homer
 
12 - 09.09.16 - 14:09
(11) Средней в запросе, Остатки отпусков в коде. потом таблицей передаю СКД
   lexushka
 
13 - 09.09.16 - 14:10
(12) я как-то писал код который остатки в запросе вычислял, если его подпилить в плане отпуска за свой счет… :)
   Homer
 
14 - 09.09.16 - 14:13
на инфостарте есть уже такие обработки как ты хочешь!
   dimaldinho
 
15 - 09.09.16 - 14:27
(0) Вариантов много

А. Документ расчета вспомогательных данных + регистр сведений с регистратором + отчет

Б. Ночное регламентное задание расчета вспомогательных данных + независимый регистр сведений + отчет

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует