|
Регистры расчетов, начало | ☑ | ||
---|---|---|---|---|
0
Мандалай
27.03.17
✎
19:46
|
Начал изучать регистры расчета.
Изучаю по Чистову, вот такой листинг согласно его лекции должен записать Ресурс "Результат". Согласно отладчику НаборЗаписейРегистра заполняется, поле Результат заполнено. Но после записи в регистр ресурс Результат пустой. Пытался использовать Записать(Истина), но толку никакого. Поле результат такого же типа как и поле Параметр Число(15,2). НаборЗаписейРегистра = РегистрыРасчета.Начисления.СоздатьНаборЗаписей(); НаборЗаписейРегистра.отбор.Регистратор.Установить(Регистратор); НаборЗаписейРегистра.Прочитать(); Для каждого Запись из НаборЗаписейРегистра Цикл ВидРасчета = Запись.ВидРасчета; Если ВидРасчета = ПланыВидовРасчета.ВидыРасчета.ОкладУпарвленческий Тогда Запись.Результат = Запись.Параметр; ИначеЕсли ВидРасчета = ПланыВидовРасчета.ВидыРасчета.ПремияПроцентом Тогда Ресурсы = Новый Массив; Ресурсы.Добавить("Начисления.Результат"); Отбор = Новый Структура; Отбор.Вставить("Сотрудник","Начисления.Сотрудник"); ТЗ_База = Запись.ПолучитьБазу(Ресурсы,Отбор); База = ТЗ_База[0].Результат; Запись.Результат = База*Запись.Параметр/100; КонецЕсли; КонецЦикла; НаборЗаписейРегистра.Записать(); //вот тут набор записей корректно заполнен Подскажите в чем может быть проблема? |
|||
1
Волшебник
модератор
27.03.17
✎
19:49
|
опечатка в коде ОкладУпарвленческий
|
|||
2
Мандалай
27.03.17
✎
19:51
|
В предопределенных плана вида расчета такая же ошибка
|
|||
3
DrShad
27.03.17
✎
19:55
|
Какой-то бред а не код
|
|||
4
Волшебник
модератор
27.03.17
✎
19:55
|
(2) фу, бля
|
|||
5
mistеr
27.03.17
✎
20:17
|
(0) Транзакцию не забываешь зафиксировать?
|
|||
6
Мандалай
27.03.17
✎
20:42
|
(3)Допускаю, видео про расчеты у Чистова датируется 2009 годом. Я пока не отхожу от его уроков. Дальше яснее будет что и как правильно.
(4)Матиться тут нельзя, бан можно словить. (5)Без транзакции. Вот собсно ссылка на первый урок. https://vimeo.com/8283280 |
|||
7
Мандалай
27.03.17
✎
20:45
|
Вот кстати кусок который предшествует приведенному коду.
Движения.Начисления.Записывать = Истина; Для каждого стр из Начисления Цикл Запись = Движения.Начисления.Добавить(); ЗаполнитьЗначенияСвойств(Запись,Стр); Запись.ПериодРегистрации = ПериодРегистрации; КонецЦикла; Движения.Начисления.Записать(); Расчет.РасчетНачислений(Ссылка); |
|||
8
Волшебник
модератор
27.03.17
✎
20:46
|
(6) Имей смелость отойти от уроков 8 летней давности и обнови релиз. Вероятно, там уже многое исправлено.
Мне тут можно материться. Я человек добродетельный. |
|||
9
Мандалай
27.03.17
✎
20:50
|
Конечно то что старовато - это факт. Но я к спецу готовлюсь, а у него целый форум на эту тему.
Можешь подсказать автора который доступным языком объясняет актуальную логику работы регистров расчета? |
|||
10
Живой Ископаемый
27.03.17
✎
20:57
|
В коде что ты привел нет ничего специфического только Регистрам Расчетов. тот же самый код применим к любым регистрам.
|
|||
11
Мандалай
27.03.17
✎
21:02
|
(10)Это я понимаю, тем более странно что не пишется Результат
|
|||
12
Сергиус
27.03.17
✎
22:13
|
(0)Возможно в модуле набора записей данного регистра какой то код очищает данное поле.
|
|||
13
Cyberhawk
27.03.17
✎
22:13
|
"Но после записи в регистр ресурс Результат пустой" // Типы не совпадают, какое-нибудь приведение типов срабатывает
|
|||
14
Мандалай
28.03.17
✎
07:55
|
(12)Нет там ничего пустой регистр, я сам его сделал.
|
|||
15
Fedor-1971
28.03.17
✎
09:03
|
(14) ВидРасчета - замени на что нить, выделено как служебное слово
Ты где этот код написал? Судя по Движения.Записать() где-то в проведении документа. Т.е. ты записал движения документа, потом читаешь результат, по сути незафиксированные данные, что-то там делаешь и опять записываешь (можно считать, что угрохал стандартные движения) |
|||
16
Fedor-1971
28.03.17
✎
09:06
|
15+ разнеси код по ОбработкаПроведения и ПослеЗаписи - если уж очень нужно поправить движения
|
|||
17
DrShad
28.03.17
✎
09:17
|
(14) если ты готовишься к спецу, то есть смысл посмотреть типовой ЗУП, там уже давно набор записей это ТЧ документов, а по такому курсу Чистова ты спеца не сдашь
|
|||
18
Fedor-1971
28.03.17
✎
09:33
|
(17) по ходу, ТС просто пытается вникнуть в смысл работы с периодическими расчётами. Как, что и откуда движется.
В ЗУП (как и в любой типовой) слишком много предусмотрено и поначалу его просто запутает |
|||
19
DrShad
28.03.17
✎
09:34
|
(18) но спеца он так не сдаст все равно
а что и как работает в регистрах расчета я когда-то довольно быстро понял прочитав одну маленькую статью в книге знаний |
|||
20
DrShad
28.03.17
✎
09:36
|
вот она Книга знаний: Сложные периодические расчеты в 8.0 для чайников
хоть автора здесь не очень обожают, но для общего понимания вполне пригодно |
|||
21
Alexandr_U1982
28.03.17
✎
09:43
|
(0) Вот так попробуй
НаборЗаписейРегистра = РегистрыРасчета.Начисления.СоздатьНаборЗаписей(); НаборЗаписейРегистра.Записывать = Истина; НаборЗаписейРегистра.отбор.Регистратор.Установить(Регистратор); НаборЗаписейРегистра.Прочитать(); |
|||
22
Alexandr_U1982
28.03.17
✎
09:44
|
(0)Если этот код находится в процедуре "ОбработкаПроведения", то попробуй у документа в свойство "Запись движений при проведении" установить значение "Записывать модифицированные".
|
|||
23
Мандалай
29.03.17
✎
15:25
|
Всем спасибо.
Вот это (22) помогло. |
|||
24
Мандалай
29.03.17
✎
15:27
|
Да вы правы я пытаюсь разобраться в самых азах ЗУПа, давным давно я его еще как то знал а сейчас давно уже не трогал. Поэтому решил идти с самого начала.
То что я не сдам по этим видосам спеца это понятно, механизмы платформы и логика решения задач уже 10 раз изменилась. Но видос он тем и ценен что он видос :) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |