Имя: Пароль:
1C
1С v8
ЗУП 3.1. Автоматическое создание документов.
0 Антиквар
 
24.01.18
23:44
Всем привет!
Кто-нибудь писал обработку по автоматическому созданию документов начислений в ЗУП 3.1.?
Интересуют Разовые начисления и Материальная помощь.
Мы на ЗУП 3.1 только переходим, изучаем, данные документы нужно подгружать обработкой. В ЗУП 2.5. у меня это просто делалось, здесь же вообще не могу въехать.
Ну создать документы и заполнить основные значения не проблема. Но в этих документах при выборе сотрудника в табличной части до фига всего делается, а именно заполняются различные реквизиты.
Например, в разовых начислениях заполняются невидимые в табличной части графики работы. А затем эти графики проводятся в регистр расчета. Наверняка они там нужны.
В материальной помощи тоже много всего.
И если в ЗУП 2.5 было как-то прозрачно, то тут я пытаюсь по коду следить где что заполняется, и тупик, мозгов не хватает дойти до конца. Все процедуры заполнения не экспортные. Получается только если форму документа открывать и вызывать процедуры обработки выбора каждого сотрудника например...
Короче совета прошу, куда лучше копать, ибо конфа для меня незнакомая, начинаю разбираться, но пока очень тяжко.
1 SleepyHead
 
гуру
25.01.18
07:56
(0) А зачем вам вообще создавать документы автоматически?

В ЗУП 3.1 есть такие возможности подбора сотрудников в документы, которых в 2.5 не было. Может быть, вам просто в документ подбирать нужно по определенным правилам?
2 Антиквар
 
25.01.18
08:05
(1) Нет, дело в том, что у нас в сторонней программе это всё делается, а в ЗУП загружается. В 2.5 также было.
3 SleepyHead
 
гуру
25.01.18
08:07
(2) Я делал загрузки в назначение плановых начислений, и в разовые начисления. Да, там есть ссылки на графики и все такое, но все эти значения особо не влияют, если вы загружаете готовые суммы, которые считать вам уже не надо.

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

Там, где требовалось загрузить график - подставлял график работы сотрудника, и все.
4 SleepyHead
 
гуру
25.01.18
08:18
(0) Для матпомощи вам вообще нужно грузить только колонку "Начисления", и может быть, "показатели". Перед проведением прописать

ДокОБъект.ОбменДанными.Загрузка = Истина;

Провести, и открыть документ как пользователю., выставить прочие параметры, все что нужно само подтянется, в том числе расчет НДФЛ, если требуется.
5 Джо-джо
 
25.01.18
08:47
(2) Загружай значение показателей (один Регистр), а начисление делай Начислением зп
6 SleepyHead
 
гуру
25.01.18
08:51
(5) начисление матпомощи? Сезон вредных советов открыт!
7 Фрэнки
 
25.01.18
09:00
Не знаю вредный это будет совет или нет, но в 3.1 есть опция в настройках расчета зарплаты - Выполнять автоматический пересчет документов при их редактировании -
вероятно, что будет лучше в случае топика это отключить.
Далее, просмотреть на события и обработчики, которые срабатывают при заполнении строки табличной части в интерактивном режиме. Собственно, это довольно очевидный совет.
8 Фрэнки
 
25.01.18
09:01
Т.е. заполнив программно все строки, пройдя по вызовам обработчиков, в самом конце сделать вызов, который сидит под кнопкой пересчета на форме документа.
9 SleepyHead
 
гуру
25.01.18
09:04
(8) Для этого нужно делать внешнюю обработку, которая подключается к форме документа. Что-то я такое делал пару лет назад, получалось.

А у автора, насколько я понял, задача просто создать документ, заполнить и провести. Я бы не заморачивался, создал, провел бы, а потом открыл и пересчитал показатели по кнопочке.
10 Alexandr_U1982
 
25.01.18
11:22
По поводу полей с графиками работы, насколько я понял, они заполняются по следующему принципу:

"ГрафикРаботы" - Если для сотрудника в месяце начисления есть табель или индивидуальный график, ставится ссылка на сотрудника; в противном случае ставится график работы по сотруднику на дату начала.

"ГрафикРаботыНорма" - Если для сотрудника в месяце начисления есть индивидуальный график, ставится ссылка на сотрудника; в противном случае ставится график работы по сотруднику на дату начала.

"ОбщийГрафик" - Всегда ставится график работы по сотруднику на дату начала.

Есть еще такие поля:
"ПериодРегистрацииВремени" - Если для сотрудника в месяце начисления есть табель или индивидуальный график, ставится месяц начисления (период регистрации); в противном случае не заполняется.

"ПериодРегистрацииНормыВремени" - Если для сотрудника в месяце начисления есть индивидуальный график, ставится месяц начисления (период регистрации); в противном случае не заполняется.

На что может повлиять некорректное заполнение этих полей пока не знаю, еще не разобрался.
11 mikeA
 
25.01.18
12:10
(0) Дежавю какое-то.
ЗУП31 Начисление ЗП

Вкратце, если допустимо заполнение документа человеком, загружайте только данные для расчёта зарплаты и настраивайте начисления. Человек будет открывать документ и нажимать кнопку Заполнить.

Если же нужно полностью автоматическое создание документов тогда да, в дополнении к этому придётся копипастить процедуры из модуля формы. С этим надо повозиться, но тоже решаемо.

И да, всё вышесказанное для ЗУП КОРП 3.1.1. Хотя в 3.1.5 в этом плане видимо мало что изменилось, раз до сих пор возникает этот вопрос)
12 Антиквар
 
25.01.18
13:47
(3) Да, я загружаю готовые суммы, считать не надо ничего. В настройках указано как Вы и написали, фиксированной суммой.
Но боюсь, что из-за отсутствия в регистре расчета тех же графиков например, в будущем где-то вылезет проблема.
13 Антиквар
 
25.01.18
13:51
(4) Не понял, что имеете ввиду вот этим:
"Провести, и открыть документ как пользователю., выставить прочие параметры, все что нужно само подтянется, в том числе расчет НДФЛ, если требуется"

По матпомощи я решил создавать программно документ, после чего открывать на экране его форму, и тогда я думаю будут доступны все процедуры и функции формы, которые я также программно смогу вызвать через эту открытую форму, после чего форму закрыть.
Вы про это имели ввиду?
14 Антиквар
 
25.01.18
13:55
(8) "Т.е. заполнив программно все строки, пройдя по вызовам обработчиков, в самом конце сделать вызов, который сидит под кнопкой пересчета на форме документа."

В том и проблема, я надеялся что у этих документов на кнопках пересчета висят какие-нибудь экспортные процедуры (ну не обязательно сразу на кнопке, ну чтоб потом хоть вызывались). Но к сожалению там обычные процедуры, в модулях самих форм. Т.е. для возможности их программного вызова надо открыть на экране саму форму. Ну я так думаю, вроде делал такое когда-то. Правда не с управляемыми формами это было.
15 Антиквар
 
25.01.18
14:02
(9) Можете пояснить это: "Для этого нужно делать внешнюю обработку, которая подключается к форме документа"

Я внешней обработкой и гружу. Я выше в сообщениях описал, как хочу сделать, должно ведь сработать?

"А у автора, насколько я понял, задача просто создать документ, заполнить и провести."

Да, задача такая, даже проводить не надо, расчетчики проведут. Просто очень большие списки подгружаются, чтоб вручную не вносить.

"Я бы не заморачивался, создал, провел бы, а потом открыл и пересчитал показатели по кнопочке."

Не получится. Например, я проверял, что в разовых начислениях при пересчете документа и проведении заполняется только один график из трех. А все три заполняются только при выборе сотрудника.
А в мат. помощи почему-то вообще нет пересчета. Я убрал в настройках автоматический пересчет документов, кнопка Пересчитать в мат.помощи появилась, но всегда недоступна.
Не разбирался пока почему так. По идее в мат. помощи достаточно перевыбрать вид начисления в шапке документа, и строки пересчитываются (и код вычета, и сумма вычета). Но грузить будут расчетчики, а они ничего перевыбирать не будут, зайдут, глазами окинут список, и проведут.
16 Антиквар
 
25.01.18
14:04
(10) спасибо за полезную инфу
17 Антиквар
 
25.01.18
14:14
(11) Действительно похожая тема, но не моя. Начисление ЗП у нас создается ручками в ЗУПе, ни откуда не грузится. Ну и вопросы у человека несколько другие были.
18 Фрэнки
 
25.01.18
15:06
(15) помимо просто Пересчитать, нужно заполнять документ последовательно и отловить отладчиком, замером производительности... как угодно протрассировать работу. В конце, по кнопке Пересчитать должно сделать не только вызов внутренних процедур формы, а вытянется кое-что из общих модулей. И вытаскивать это должен действительно расчетчик, а не оператор вводимых данных.

И когда давал совет, то имел ввиду не использование формы буквально, а переписывание к себе нужных(!) строчек кода в свой модуль. Но вот думаю сейчас, что придется собственную форму вам делать, в которой выполниться весь необходимый код в контексте Клиента и в контексте Сервера в верной последовательности.
19 bolobol
 
25.01.18
15:41
И так поработает до ближайшего обновления и - снова всё копипастить.
20 Антиквар
 
25.01.18
15:50
(18) Не понял про отладчик и замер производительности...
(19) согласен.
Мне кажется тут лучше форму открывать и вызывать её событие, чтобы быть уверенным, что после нового релиза всё будет работать.
21 bolobol
 
25.01.18
16:00
(20) Хм... А такое возможно?
22 Вафель
 
25.01.18
16:02
(20) а как все это в рег задание потом запихать?
23 Alexandr_U1982
 
25.01.18
16:04
(21)Вся проблема в том, что в модуле формы у некоторых процедур/функций не хватает слова "Экспорт".
24 Alexandr_U1982
 
25.01.18
16:05
(22)В какое рег.задание?
25 Фрэнки
 
25.01.18
16:41
(19) если структурно назначение полей в табчасти дока не поменяется, то ничего там не придется копипастить. Я думал, что идея прикрутить к этой теме расширение как-то сама собой придет в голову.
26 Вафель
 
25.01.18
16:48
(23) сделай расширение и добавь где нужно
27 Мыш
 
25.01.18
16:51
(0) Сделай обработку заполнения табличной части.