Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 17:40

Странная работа регистра накопления

Автор Orion, 09 янв 2018, 23:01

0 Пользователей и 1 гость просматривают эту тему.

Orion

Замечена одна странность в поведении регистра накопления (остатки).
Если текущей датой выполнена операция расхода, и остаток на счете изменился, то в тот же момент в регистре накопления этот факт не отображается, и остаток остается прежним. Если выйти из 1С 8.3, а затем заново войти, остаток обновляется и становится актуальным. Попытки выяснить причины такого странного поведения через отладчик показали, что остаток фиксируется датой проведения операции, но время устанавливается 0:00:00.
Не понимаю, почему это происходит и как это исправить...
Иными словами, как принудительно обновить информацию в регистре накопления? Или есть какое-то иное решение? 

Дмитрий@

У регистра накопления менеджера есть команды обновления итогов, но во многих конфигурациях есть встроенные механизмы для пересчета итогов.
Добавлено: 10 янв 2018, 09:28


В пользовательском режиме.

Orion

Спасибо, Дмитрий!
У меня не стандартная конфигурация, я пытаюсь разработать ее самостоятельно - эдакий учебно-практический проект. Вариант с пользовательским режимом также не устраивает, - считаю, что такие вопросы должны быть реализованы уже на этапе разработки.
Поэтому, если можно, насчет возможности обновления регистра накопления поподробнее...

IL2016

Цитата: Orion от 09 янв 2018, 23:01Если текущей датой выполнена операция расхода, и остаток на счете изменился, то в тот же момент в регистре накопления этот факт не отображается
иными словами после проведения документа, его движения в регистре не формируются.

Цитата: Orion от 09 янв 2018, 23:01остаток остается прежним.
как Вы это определяете? формируете отчет по остаткам либо на форме документа есть реквизиты, в которых должен отображаться актуальный остаток До и После проведения?

Цитата: Orion от 09 янв 2018, 23:01остаток фиксируется датой проведения операции, но время устанавливается 0:00:00.
Просто в отладчике увидели значение периода в начале первой итерации цикла когда документ еще не провелся, вот и время на начало дня. После проведения, время меняется на текущее, в том случае если оперативное проведение.

А так это просто косяк в самописной конфе.



Orion

Цитата: IL2016 от 10 янв 2018, 21:13
Цитата: Orion от 09 янв 2018, 23:01Если текущей датой выполнена операция расхода, и остаток на счете изменился, то в тот же момент в регистре накопления этот факт не отображается
иными словами после проведения документа, его движения в регистре не формируются.

Нет, в регистре остатков все формируется корректно... в смысле, все записи об операциях там присутствуют

Цитата: IL2016 от 10 янв 2018, 21:13
Цитата: Orion от 09 янв 2018, 23:01остаток остается прежним.
как Вы это определяете? формируете отчет по остаткам либо на форме документа есть реквизиты, в которых должен отображаться актуальный остаток До и После проведения?

Да, именно так - на главной странице выводится динамический список, в котором должна отображаться информация об актуальных остатках, и эти данные не верны, - остатки показываются по состоянию ДО проведения операции, а не ПОСЛЕ, как должно быть. И, как я понимаю, именно из-за времени, т.к. отладчик показывает корректную дату, но время проведения операции - 0:00:00, т.е. тот список на главной странице почему-то не обновляется после проведения операции. Но стоит только выйти из программы и войти снова, все показывается корректно.

Цитата: IL2016 от 10 янв 2018, 21:13
Цитата: Orion от 09 янв 2018, 23:01остаток фиксируется датой проведения операции, но время устанавливается 0:00:00.
Просто в отладчике увидели значение периода в начале первой итерации цикла когда документ еще не провелся, вот и время на начало дня. После проведения, время меняется на текущее, в том случае если оперативное проведение.

Вот, в том-то и дело, что эти данные некорректны

Цитата: IL2016 от 10 янв 2018, 21:13
А так это просто косяк в самописной конфе.

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

IL2016

Цитата: Orion от 11 янв 2018, 06:26на главной странице выводится динамический список, в котором должна отображаться информация об актуальных остатках
имеете ввиду начальную страницу работы пользователя 1С (т.е. рабочий стол)? Но это ведь форма, вынесенная на раб.стол.
Добавьте для этой формы обработчик события ,например ПриСозданииНаСервере (может другой поэкспериментируйте), в котором опишите такие действия отображения данных этой формы , в результате чего на экране появлялись актуальные остатки.

Регистр накопления здесь ни причем.


Orion

Цитата: IL2016 от 11 янв 2018, 21:02
Цитата: Orion от 11 янв 2018, 06:26на главной странице выводится динамический список, в котором должна отображаться информация об актуальных остатках
имеете ввиду начальную страницу работы пользователя 1С (т.е. рабочий стол)? Но это ведь форма, вынесенная на раб.стол.
Добавьте для этой формы обработчик события ,например ПриСозданииНаСервере (может другой поэкспериментируйте), в котором опишите такие действия отображения данных этой формы , в результате чего на экране появлялись актуальные остатки.

Регистр накопления здесь ни причем.

Спасибо! Поэксперименитирую...
Хотя бы понятно, в каком направлении экспериментириовать.
Только первая часть ответа меня смутила. А именно, акцентирование внимания, что форма расположена на "рабочем столе". А что, есть какая-то разница, где именно расположена форма вывода?

AIFrame

Динамический список <> автообновление. Добавьте к этому списку кнопку или как-то еще нужно вызывать метод список.обновить()

IL2016

Цитата: Orion от 11 янв 2018, 21:16Только первая часть ответа меня смутила. А именно, акцентирование внимания, что форма расположена на "рабочем столе". А что, есть какая-то разница, где именно расположена форма вывода?
это для описания и лучшего восприятия, потому ваше описание проблемы было как бы издалека,и в результате выяснилась совсем другая проблема.
Данные базы хранятся на сервере, и чтобы получить их нужен запрос на сервер.
Форма на раб.столе у вас обновляется при запуске программы 1С , вы в этом убедились, потому что при запуске идет обращение к серверу и выводятся последние данные.
Самостоятельно ваша форма на раб.столе обновляться не умеет.

 


Похожие темы (5)

Рейтинг@Mail.ru

Поиск