|
1с ЗУП 3.1 ДоходВНатуральнойФорме программно | ☑ | ||
---|---|---|---|---|
0
illiona
naïve
02.02.24
✎
05:15
|
Добрый день. Создаю документ пустой в базе, затем обработка его заполняет, всё на форме вижу. Но при нажатии на кнопку пересчитать, у сотрудников исчезает Территория, если еще раз пересчитать она встает обратно. Не могу понять с чем это связано. При ручном вводе документа, Терриория не исчезает. Подскажите может кто сталкивался.
|
|||
1
SleepyHead
02.02.24
✎
08:00
|
(0) В табличной части "Начисления" нет колонки "Территория". Возможно, определяется по подразделению или месту получения дохода.
У вас обе эти колонки заполняются? |
|||
2
illiona
naïve
02.02.24
✎
08:18
|
да, эти колонки заполняются в табличной части РаспределениеПоТерриториямУсловиямТруда, и при открытии документа территория заполнена.
|
|||
3
SleepyHead
02.02.24
✎
08:20
|
(2) Спрашивал про табличную часть "Начисления"
|
|||
4
dchumak
02.02.24
✎
08:21
|
(0) Скорее всего программно что-то недозаполнено (реквизит). Создайте 2 документа, один вручную, второй программно и сравните реквизиты в шапке и табличных частях (например, через консоль запросов).
|
|||
5
Гена
02.02.24
✎
08:25
|
(2) Программно куда сумму вносите? Только в свою ячейку или параллельно и в ячейку территории?
Для данного сотрудника точно уже есть территория или пусто? |
|||
6
SleepyHead
02.02.24
✎
08:27
|
(5) При пересчете табличная часть "Распределение по территориям" пересчитывается. Как и все прочие, кроме "Начислений". А что в начислениях - автор молчит, как партизан.
|
|||
7
Гена
02.02.24
✎
08:29
|
(6) Уверены? По памяти вроде как не пересчитывается. Пересчитывается только по команде Отменить исправления сотрудника.
|
|||
8
Gucci76
02.02.24
✎
09:15
|
(0) Вы запускали процедуру программно:
Процедура ПерезаполнитьДанныеФормыНаСервере(Знач Сотрудники, СохранятьИсправления = Истина) Экспорт |
|||
9
illiona
naïve
02.02.24
✎
09:21
|
Начисления программно тоже табличная часть заполняется
Заполнение территории: НСт=ОбъектДляЗаполнения.РаспределениеПоТерриториямУсловиямТруда.Добавить(); НСт.Территория=Стр.Территория; НСт.ИдентификаторСтроки=Идент; НСт.Результат=Стр.Результат; НСт.ДоляРаспределения=1; |
|||
10
Гена
02.02.24
✎
09:31
|
(8) А может наоборот надо, = Ложь, раз идёт сумма в распределение по территориям? Нет?
|
|||
11
Gucci76
02.02.24
✎
09:37
|
(10) Я привел ссылку на саму процедуру в модуле формы документа ДоходыВнатуральнойФорме.
В ней параметры это массив сотрудников, которые надо пересчитать и флаг сохранения ручных исправлений (он без указания этого параметра будет Истина исправления фиксируются специальным реквизитом - если его предварительно не указать, то думаю все равно 1С пересчитает |
|||
12
Гена
02.02.24
✎
09:42
|
(11) Да это понятно. Я просто подумал, а может наоборот - надо отменить ручные исправления.
Короче, практика - критерий истины. Подождём результатов экспериментов автора. |
|||
13
illiona
naïve
02.02.24
✎
09:43
|
В ручном добавлении доля 1
|
|||
14
illiona
naïve
02.02.24
✎
09:44
|
(11) Не поняла, что надо поставить?
|
|||
15
SleepyHead
02.02.24
✎
09:48
|
(7) Не уверен, но по логике должна именно пересчитываться.
Когда вы вносите данные в документ вручную, вы заполняете только табличную часть "Начисления". Территория есть только в табличной части "Распределение по территориям", и она заполняется программно, по данным подразделения и места получения дохода. |
|||
16
Gucci76
02.02.24
✎
11:19
|
(14) Вы все руками заполняете? Или потом запускаете типовой функционал расчета/перерасчета?
Рекомендую второй вариант, для этого воспользуйтесь процедурой из (8) |
|||
17
illiona
naïve
02.02.24
✎
11:23
|
да все запускается вручную из файла
|
|||
18
Gucci76
02.02.24
✎
14:15
|
(17) Так там много различных табличных частей.
По идее надо заполнить таблицы Начисления и Показатели (ФизическиеЛица наверно сами заполнятся, но если не трудно...), а потом попросить 1С пересчитать с помощью процедуры из (8) |
|||
19
illiona
naïve
04.02.24
✎
17:31
|
У меня получается есть ссылка на документ, а как запустить пересчет?
|
|||
20
Gucci76
04.02.24
✎
18:50
|
(19) Получить форму документа. И к ней через точку обратиться к процедуре (предварительно надо подготовить массив сотрудников)
|
|||
21
Gucci76
04.02.24
✎
18:51
|
ПараметрыФормы = Новый Структура("Ключ",Объект.ДокументСсылка);
УпрФорма = ПолучитьФорму("Документ.ДоходВНатуральнойФорме.ФормаОбъекта",ПараметрыФормы,ЭтаФорма); УпрФорма.ПерезаполнитьДанныеФормыНаСервере(МассивСотрудников,Истина); |
|||
22
Gucci76
04.02.24
✎
18:54
|
Почти во всех документах есть эта процедура (разовое, премия.....).
Вот в назначении планового начисления нет - и ни одна экспортная процедура не дает пересчитать программное заполнение документа (((((( Может кто знает как посчитать размер доплаты в этом документе? |
|||
23
illiona
naïve
13.02.24
✎
09:52
|
Еще вопрос. А табличная часть Показатели, как должна быть заполнена в случае, если начисление фиксированная сумма(не по формуле)?
|
|||
24
Gucci76
13.02.24
✎
11:21
|
(23) Никак.
|
|||
25
SleepyHead
13.02.24
✎
11:43
|
(23)
Как посмотреть, как должен быть заполнен документ: 1. Создайте документ вручную, проведите 2. В конфигураторе зайдите в модуль формы, поставьте точку останова в начало ПриСозданииНаСервере и откройте документ 3. Вы окажетесь в отладчике 4. Смотрите, что в документе, через Объект.Ссылка в табло или через вычисление выражения по Shfr+F9 |
|||
26
illiona
naïve
14.02.24
✎
06:30
|
C пересчетом решилось. Теперь другая проблема. Под расчетчиком в обработке:
прав не хватает именно в момент РасчетЗарплатыРасширенный.СоздатьМенеджерРасчета() ПривилигированныйРежим не срабатывает. А если пересчитать сотрудников из документа, то проходит это место). Может кто-то сталкивался с такой проблемой? |
|||
27
SleepyHead
14.02.24
✎
06:58
|
(26) В обработке привелигированный режим не включается.
|
|||
28
Гена
14.02.24
✎
07:06
|
Придёт Волшебник и покажет вам обоим кузькину мать... Будете потом кричать, что вас насильно привели и привили...
|
|||
29
SleepyHead
14.02.24
✎
07:42
|
(28) Ну да, я все время в этом слове путаюсь. Хотя в школе учительница мне говорила, что у меня врождённая грамотность.
|
|||
30
illiona
naïve
14.02.24
✎
08:20
|
привилигированный режим стоит и в модуле где создается менеджер расчета. Подскажите как в обработке это сделать)
|
|||
31
Страждущий
14.02.24
✎
11:09
|
Нужно установить в обработке безопасный режим в ложь
|
|||
32
SleepyHead
14.02.24
✎
11:28
|
(31) Не всегда это помогает.
Может помочь, если дать обработке права на такой режим, прописав их в сведениях о внешней обработке, и подключив обработку в подсистему допобработок. Но у меня пока такое не получилось, программист я еще так себе. В любом случае, в отладке автор все равно будет использовать внешнюю обработку, а в ней такой режим не поставишь. Автор, копай сторону внешнего модуля РаботаВБезопасномРежиме.РазрешениеНаИспользованиеПривилегированногоРежима ВерсияБСП=СтандартныеПодсистемыСервер.ВерсияБиблиотеки(); ПараметрыРегистрации=ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(ВерсияБСП); // ... тут подключаем вид обработки и так далее Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеПривилегированногоРежима(); ПараметрыРегистрации.Разрешения.Добавить(Разрешение); |
|||
33
illiona
naïve
16.02.24
✎
04:53
|
При добавлении обработку в программу, через дополнительные обработки всё получилось
|
|||
34
Гена
16.02.24
✎
07:56
|
(33) Можно поздравить, уже перешли окончательно на ЗУП?
Натуралка в теме - это суточные сверх нормы? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |