Не изменяется регистр остатков...хелп #537090


#0 by happy___wolf
Всем привет! Пишу простенькую проводку документов: Приход,Расход. Использую регистры. Документы проводятся, но значение в регистре не меняется. Смысл примерно такой: взял сумму из сейфа - сделал Расход. Положил сумму в сейф - сделал Приход. И в каждом документе должна отображаться текущая сумма регистра. Помогите начинающему... ----------------- Модуль Документа: ----------------- -------------
#1 by happy___wolf
Приходный документ сделан по образу и подобию.
#2 by Morphius
#3 by Morphius
#4 by happy___wolf
По - не получается.... регистр не меняется. Да и почему в табличной части документа я могу добавить только одну строку??? может из-за этого?
#5 by Rie
Для начала - а зачем присваивание Затем вопрос - а в ОбработкаПроведения вообще заходит? У самого документа - признак, что документ проводится - выставлен?
#6 by Rie
+ Ну и ещё момент: выдал сообщение об ошибке - ну и скажи СтатусВозврата; Возврат; Однако сама проверка - бредова. Вид документа в ОбработкаПроведения известен. И не может быть никаким иным, кроме как указанный.
#7 by Rie
Ну а почему в табличной части можешь добавить только одну строку - это уж у тебя спросить надо, как ты смог добиться подобного эффекта. Есть, конечно, несколько способов; но если применил один из них - то уж должен бы знать, какой :-)
#8 by ДенисЧ
что бы это значило?
#9 by happy___wolf
Для : ДокРасхСум = ТекущийДокумент; - просто видел, что  так делают. В обработку проведения заходит. Галочка "Разрешить проведение документа" стоит. Для : Ошибок при проведении не выдается. И документ в журнале помечается как проведенный. Для : может быть я что-то и применил, но мне это не ведомо. Специально этим не занимался.
#10 by happy___wolf
Для : это для табличной части документа. Я предполагал, что в документ можно вносить разные строчки расхода/прихода...это цикл по этим строкам.
#11 by Rie
И кто это так делает? Где видел? Возможно, что понадобилось кому-то переменную использовать - например, для параметра в запросе. Но это же не означает, что теперь надо её везде пихать. В - имелось в виду несколько иное. А именно - бредовость проверки на вид проводимого документа в ОбработкаПроведения. И необходимость корректно отменить проведение в случае ошибки. Ну а в процедуру ОбработкаПроведения - заходит? Что по этому поводу говорит товарищ Отладчик, например?
#12 by Эльниньо
Что в итоге получится, подумал?
#13 by Rie
+ Впрочем, "могу завести только одну строку" и отсутствие движений по регистру тесно связаны. Вероятно, ты вообще _ни одной строки_ в документ не вносишь. Вот цикл и выполняется 0 (Ноль) раз. А поскольку движения делаются в цикле...
#14 by happy___wolf
должны получится документы которые меняют значения регистра и которые в форме документа показывают остаток регистра.
#15 by Rie
И ещё вопрос - а как ты проверяешь, что документ _не_ делает движения?
#16 by happy___wolf
Отладчик проходит всю процедуру Обработки проведения без ошибок.
#17 by happy___wolf
Модуль формы должен при открытии формы выдавать значение регистра. А он пишет постоянно 0.
#18 by happy___wolf
- да это хорошее замечание. Как это проверить?
#19 by Rie
В журнале встань на документ. И в меню "Действия" выбери "Движения документа".
#20 by Rie
Ты же утверждаешь, что Отладчиком шёл по процедуре. Был или не был цикл - заметил бы. (Кстати, переписал процедуру как в посоветовали? Или до сих пор двойной цикл крутишь?)
#21 by happy___wolf
там большая таблица и в графе СуммаХХХ записано значение которое я вводил в документе.
#22 by happy___wolf
я не совсем умею пользоваться отладчиком. Куда нужно точки останова ставить? Если ставить только в начало процедуры обработки проведения, то он останавливается на "Если Вид = "ДокМен1" Тогда" Если ставить в начало и конец процедуры обработки проведения, то машинка все проезжает))))
#23 by happy___wolf
цикл переписал как в .
#24 by happy___wolf
Если в разделе "Движения документа" появляются суммы которые я ввожу и на против них стоит знак зеленого плюса или красного минуса, то значит регистр меняется? Я правильно понимаю?)
#25 by Rie
Значит, документ движение делает. А это значит, что ошибка - в более другом месте, а именно - при получении остатков из регистра. Вот остановился Отладчик в точке останова. А дальше, используя волшебные кнопки F10 и F8... Впрочем, рассказывать конец детектива - неприлично. Так что попробуй сам. (А ещё есть замечательные книжки, где всё это описано. А ещё есть в Отладчике вверху командная панель, или на худой конец - меню. А там - много чего интересного).
#26 by Rie
Верно понимаешь!
#27 by happy___wolf
Тогда как в форме правильно окошко запрограммировать чтоб показывалось сколько на данный момент в регистре хранится?
#28 by Rie
Ну, например, открыть СП и прочитать о методе СводныйОстаток.
#29 by happy___wolf
- обязательно это сделаю еще раз. Спасибо))) Но все же у меня в модуле документа есть "СводныеОстатки" Или я не правильно их написал? Я делаю сообщить Сообщить(ИтогоСейф) при открытии документа и он мне пишет, что в регистре 0. Хотя я документ провожу с операцией ДвижениеПриходВыполнить. Почему? Регистр не записался что-ли?
#30 by Rie
Включаем голову. И думаем. Регистр - записался, это увидели ещё в . Теперь смотрим в СП или ЖКК - а какие ж такие параметры у метода СводныеОстатки? Сопоставляем с тем, что написано в . И понимаем, что параметры указаны неверно.
#31 by happy___wolf
- да там в не правильно написано, но по другому у меня не получается... где я косячу? Переписал вот... Мне пишется, что Переменная не определена (СейфХХХ) Как так? Я же создал регистр с таким измерением. Не понимаю((( Или я не правильно регистр создал??? Структура регистра: Измерения + СейфХХХ -> Тип:строка Ресурсы + СуммаХХХ -> Тип:число Реквизиты + Сейф
#32 by ДенисЧ
"Мне пишется, что Переменная не определена (СейфХХХ) Как так? Я же создал регистр с таким измерением2 В огороде бузина, а в метод СводныйОстаток нужно передать переменную со значением измерения...
#33 by happy___wolf
-  подскажите на примере как это можно сделать....
#34 by ДенисЧ
И дальше по тексту/
#35 by happy___wolf
-  примерно понял)) спасибо)
#36 by andrewks
#37 by happy___wolf
Даже если создать справочник Сообщить (ИтогоСейф) все равно 0 выдает... (((
#38 by andrewks
иттить! код давай! наверное ТекущийЭлемент забыл или ещё чего
#39 by happy___wolf
ДА у меня в справочнике нет ничего. Я это его создал для пробы. Меня интересует как получить одно число из регистра. Извиняюсь за ошибки. Просто я в 1С не особо шарю. По работе приспичило сделать такую штуку. Как создать регистр чтоб вытаскивать из него только одно число и без заморочек со справочниками?
#40 by andrewks
у тебя вообще какая структура регистра сейчас?
#41 by andrewks
#42 by andrewks
в последнем блоке скобки не хватает Для Н=1 По Метаданные.Регистр(Инд).Реквизит Цикл
#43 by happy___wolf
Структура регистра в
#44 by andrewks
Измерения вот за это и называют потом криворуким. убери все измерения, если тебе они не нужны, и получай просто значения ресурсов только сдаётся мне, что тебе нужны будут остатки в разрезе сейфов, а посему неизбежно создание Справочник.Сейфы и указание его в измерении как ссылки, а не как строки (!)
#45 by happy___wolf
Вывод такой: Измерение/СейфХХХ/Строка./10.0 Ресурс/СуммаХХХ/19.2 Реквизит/Сейф/Строка./10.0
#46 by happy___wolf
Пардоньте :) не знал....
#47 by happy___wolf
Возможно глупый вопрос, но как получать остатки только по значениям ресурсов? т.к. в СП написано, что нужно вводить измерения... А если у меня пока один сейф, Справочник.Сейфы мне не нужен?
#48 by andrewks
тут ключевое слово "пока". если точно знаешь, что он всегда будет один - можешь и не вводить измерение. но лучше заглянуть чуть вперёд и сделать это, чтобы потом не возвращаться к этому моменту
#49 by happy___wolf
В Можно уточнить? Разрез это просто имеется в виду остаток по нескольким регистрам?
#50 by Rie
Разрез - имеется в виду остатки по одному регистру по некоторому измерению (или набору измерений). И ещё. В - измерение при проведении не указываешь (возможно, в исправленном варианте оно указывается, но в ветке об этом - ни слова). Если измерение имеется, то в регистре оно будет иметь пустое значение. А когда будешь выбирать остатки по конкретному значению этого измерения - получишь красивый большой 0.
#51 by Rie
Что касается "только по значениям ресурсов" - видимо, имеется в виду, что значение измерения несущественно, и нужен суммарный остаток по всем. В таком случае в СводныйОстаток (и в СводныеОстатки - что там сейчас используется) соответствующий этому измерению параметр просто не указывается (оставляешь пустое место).
#52 by happy___wolf
С ресурсами и измерениями примерно понял. Спасибо. Не пойму, а мне вообще надо делать "ВременныйРасчет" и "РассчитатьРегистрыПо" я пишу, например, Сообщить(ИтогоСейф) и мне 1с всё показывает. Ошибки не будет, если я модуль формы упрощу до: Подскажите плиз... в литературе ответа не нашел... Справочник "Сейфы" с реквизитом "СейфХХХ" создал на всякий случай как советовали. А в реквизит "СейфХХХ" надо что-нибудь записывать или он может и пустой быть?
#53 by Rie
Если не сделаешь временный расчёт - показывает данные на ТА. Если нужно на другой момент времени - делаешь временный расчёт. В твоём "упрощённом" варианте будет показывать остатки именно на ТА. (ТА - "точка актуальности итогов"). В справочнике Сейфы реквизит СейфХХХ и даром не нужен. Ты неправильно понял совет. Тебе советовали создать справочник Сейфы (какие там будут реквизиты - по барабану) и измерение СейфХХХ типа Справочник.Сейфы.
#54 by happy___wolf
Всем больше спасибо за советы. Теперь осознал. Rie отдельная благодарность :) Буду пробовать.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям