Имя: Пароль:
1C
1С v8
Программное создание приема на работу в зуп 3.1
0 nodrama
 
20.12.21
11:33
Добрый день. Пытаюсь программно создать прием на работу в зуп 3.1. Проблема возникает с начислениями. Причем как то очень странно.

Нужно добавить 2-а начисления.
1-ое добавляется номарольно
НачислениеПервое=док.Начисления.Добавить();
НачислениеПервое.Начисление=база.ПланыВидовРасчета.Начисления.НайтиПоНаименованию("Оплата по окладу (по часам)", Истина);
НачислениеПервое.ИдентификаторСтрокиВидаРасчета=1;
НачислениеПервое.Размер=НовыйОклад.Оклад;

Далее 2-ое начисление проблемное
        
НачислениеВторое=док.Начисления.Добавить();
НачислениеВторое.Начисление=база.ПланыВидовРасчета.Начисления.НайтиПоНаименованию("Доплата за вредность", Истина);
НачислениеВторое.ИдентификаторСтрокиВидаРасчета=2; (что с этой строкой что без результат один)
НачислениеВторое.Размер=НовоеЗаВредоность.КолПроцентов;

Что самое интересное. Оно добавляет начисление правильное все ок. Только Размер его оставляет пустым (не заполняет). Но что еще более интересное, оно это число прибавляет в поле ФОТ (выше над начислениями). Получается что второе начисление без числа, а ФОТ больше на это число.
1 Мультук
 
20.12.21
11:56
(0)

Создать этот документ руками и посмотреть "что там внутри" ?
Табличную часть "Показатели" заполняем ?
2 nodrama
 
20.12.21
12:13
(1) Возникает вопрос. когда создаешь руками. и НЕ заполняешь ТЧ показатели. то все работает и сохраняетс и так она остается пустым.
ПОлучается когда делаешь программно показатели заполнять обязательно? Попробую
3 DrZombi
 
20.12.21
12:33
(2) У ЗУП часть функционала на форме расположено, программно создавать чревато отслеживанием доработок от разрабов :)
4 nodrama
 
20.12.21
12:37
(3) Да все равно руками потом проверяют. Не понятна система
То есть когда создаешь руками добавляешь начисления ( показетели не заполняются в ТЧ там пусто). Но все равно все ок
А кода создаешь программно добавляешь начисления, показатели то же нужно заполнить. Причем если их потом удалить руками и провести, то все равно все ок )
5 DrZombi
 
20.12.21
12:38
(4) На форме куча реквизитов формы.
6 Фрэнки
 
20.12.21
12:42
(4) // Не понятна система

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

Обычно приходится делать что-то вроде Помошника или АРМ какого-то и туда затаскивать всю выявленную функциональность типовых документов. Трудоемкая разработка.
7 nodrama
 
20.12.21
12:43
(6) Ну то есть получается в этом случаи когда добавляешь начисление руками они там еще где то прописываются
А когда программно то приходится заполнять показатели. Причем если их потом удалить то все равно все норм. уже потестил
8 Мультук
 
20.12.21
13:10
(0)

>>>Пытаюсь программно создать прием на работу в зуп 3.1. Проблема возникает с начислениями. Причем как то очень странно.

Если программно из формы (например добавил свою кнопку) -- то тебя ждет много интересного.


P.S.

Как по мне, документ "Установка цен номенклатуры" из УТ 11.х просто отдыхает перед тем, что делают с формами и реквизитами в ЗУП.
9 nodrama
 
20.12.21
13:13
(8) Не программно не из формы)
Ну у меня возникла заупка только с начислениями вот. так все ровно легко и встало. регистры посмотрел вроде то же норм ка и руками создать заполнились
10 DrZombi
 
20.12.21
13:28
(9) К примеру как то меня попросили программно создавать корректировку отпусков, таки решение было одно, Программно + Интерактивно создавать документ. Сеё медленное творение, но раотает.
Пользователь нажимает кнопку и ему визуально создается документ + Открывается форма документ (все визуально-программно) и уже в открытой форме вызывается ряд процедур отвечающих за заполняемость полей, реквизитов.

В итоге медленно, но стабильно...
И чутка быстрее, чем руками ;)
11 Gucci76
 
20.12.21
13:43
(10) Для Отпуска проще - есть экспортная процедура ПерезаполнитьНачисленияСотрудника для форма.
Поэтому можно получить ФормуДокумента, заполнить нужные реквизиты и обратиться к
ФормаДокумента.ПерезаполнитьНачисленияСотрудника(ФормаДокумента.Объект.Сотрудник,,Истина);
12 nodrama
 
20.12.21
14:50
Меня больше удивило еще что по регистрам получилось все верно. как ни странно. регистры 1 в 1 как руками создать.
А на форме нет. Но я так понимаю если регистры верные то и зп верная.
В регистре есть два начисления с правильными суммами (плановые начисления сотрудника или как его там) на форме нет.
13 Мультук
 
20.12.21
14:56
(12)

Меня больше удивило еще что по регистрам получилось все верно. как ни странно. регистры 1 в 1 как руками создать.

>>>А на форме нет.
Табличную часть "Показатели" заполняем ?

Внутренности документа нужно смотреть "не на форме", а консолью запросов например.
И смотреть и шапку и все таб.части.

>>Но я так понимаю если регистры верные то и зп верная.
Затем кто-то что-то поменяет в данном заведомо кривом документе что-то руками и дальше что?
14 nodrama
 
20.12.21
15:00
(13) регистры заполнились правильно еще до того как я заполнил показатели. что меня и удивило.
Показатели добавил. посмотрю как теперь заполнится форма
15 Gucci76
 
20.12.21
15:12
А если сравнить отчет движения документа программно созданного и "ручками"? Будут отличия?
Можно еще начислить ЗП после ручного и программного документа.

Но по идее показатели должны заполняться - без них никак.
Кстати, про Регистр сведений "Значения периодических показателей расчета зарплаты (для сотрудников)" речь выше шла?                                
Или про Регистр сведений "Плановые начисления" (2)?
16 nodrama
 
20.12.21
15:17
(15) Собственно теперь другая проблема.
Программно все созадлось. начисления норм, показатели заполнил все встало. Все красиво.

Но ФОТ все равно на форме увеличил на второй начисление.
то есть оклад по дням допустим 10.000
доплата процентов 5%. По
по регистрам все норм.
А в ФОТ в поле пишет 10.005. если нажать на обновить то убирает 5 пишет норм 10.000
Почему он добавляет эту сумму процентов в фот не понятно) видимо надо вычитать еще как то
17 Gucci76
 
20.12.21
15:22
А программно создавали не через Параметры.Свойство("ЗначенияЗаполнения")?
18 Gucci76
 
20.12.21
15:23
Как правило для большинства документов встроена обработка автозаполнения. Может ей воспользоваться?
19 Gucci76
 
20.12.21
15:24
Или через получение формы (на клиенте) и запуска экспортного события для реквизита
20 nodrama
 
20.12.21
15:32
(17) Нет, заполнял просто сам.
Причем "ФОТ" не трогал. оно видимо само после проведение заполняется
21 Фрэнки
 
20.12.21
15:33
(20) ФОТ интерактивно рассчитывает сразу при заполненни или обновлении формы.
22 nodrama
 
20.12.21
15:36
(21) если руками заполнять то он заполняет верно.
если програмнно добавить два начисления и провести документ то регистры верные, а фот получается 1 + 2 начисление.. но второе это процент доплаты. то есть 10000 оклад + 5% допустим доплаты
фот получается 10005 при заполнении программно
23 nodrama
 
20.12.21
15:37
вопрос как теперь сделать так что бы он второе начисление процента доплаты не тащил в фот
24 nodrama
 
20.12.21
15:40
То есть я программно сам заполняю все данные. все норм было пока не появилось необходимость добавить второй строкой второе начисление процент доплат.
Теперь он и его добавляет. только фот сумирует)
25 Gucci76
 
20.12.21
15:48
Сравните таб части Начисления и Показатели для программного документа и ручного.
26 Gucci76
 
20.12.21
15:49
Начисления.Размер и Показатели.Значение - на эти реквизиты внимание
27 nodrama
 
20.12.21
15:51
(25) Там все норм. я сравнил.  и в регистрах норм
10 оклад
5 надбавка
но фот пишет 15 ))
Если нажать "Обновить рядом с фото, пересчитать" то он сразу же пишет 10-ь
На реквизите формы есть реквизит ФОТ, как раз эти два поля.  Но проблема в том что я программно создаю этот документ из другой базы. и она не 3.1 зуп
Так бы я открыл форму дока и поменял реквизит ФОТ.. но как я понимаю такой фокус работать не будет из другой базы
НовФорма=ПолучитьФорму("база.Документ.ПриемНаРаботу.ФормаОбъекта", новый Структура("Ключ",док.ссылка));
28 Gucci76
 
20.12.21
15:55
Прежде чем пересчитывать нажмите подробности расчета ФОТ (это кнопка с пиктограммой "лупа") И посмортие колонку "Вклад в фот"
29 nodrama
 
20.12.21
15:56
(28) в зуп 3.1 это карандашек. он открывает колонку Вклад в фот.
там все верно
10 и 5
30 nodrama
 
20.12.21
15:57
(28) мне больше интересно как программно из другой базы откуда я коннекчусь к нужной и создаю прием на работу. ИЗменить фот на верный
31 Gucci76
 
20.12.21
16:00
Странно. ФОТ это расчетный показатель, он при открытии считается на основании реквизитов. Колонка "Вклад в фот" (скорее всего)
33 nodrama
 
20.12.21
16:07
(31) Ошибку увидел.

в начислениях. Размер заполнен. как у Оклада так и у процентной надбавки.

То есть я добавил 2-а начисления
и 2 показателя.

так как "размер" у надбавки во вкладке фот заполнен. он суммирует.
При пересчете. фот он размер от туда удаляет и встает все норм
Но если я не заполняю размер в процентной надбавки и оставляю пустым. то он и остается пустым "..." и подчеркивает красным
34 nodrama
 
20.12.21
16:10
то есть у меня два начисления

1. начисление добавить
реквизиты
оклад
размер
1. показатели добавить
оклад
размер

Тут все норм

2. начисление добавить
процкнт надбавки
размер
2 показатели добавит
процент надбавки размер

Если во втором начисление заполнить размер то он пихает его в фот потому что при ручном добавлении он пустой.
А если не заполнить то он и остается пустым на всегда даже с заполненым показателям ... я уже сам запутался
35 Мультук
 
20.12.21
16:15
(34)

Делаем два документа:
- один руками
- другой программно

Ищем в форме функцию

Процедура РассчитатьИтогиПоФОТ(Форма)

Далее разбираемся, почему в ручном документе ФОТ один, а в программном другой.
Дел на полчаса под кофе.
36 Gucci76
 
20.12.21
16:23
(35) Мне кажется в Начисления.Размер в этом реквизите затык
37 Said_We
 
20.12.21
21:24
Не пойму в чем "затык".
В начисления заполняется размер уже посчитанный по показателю.
В показатели запихивается размер показателя.

Т.е. Если оклад 200 рублей и премия 20% от оклада, то в начисления по премии будет размер = 40 рублей. В показатели 20%.
38 SleepyHead
 
21.12.21
06:13
(0) Показатели забыл.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.