Проверка актуальности итогов регистров накоплений

11.12.18

Задачи пользователя - Корректировка данных

Иногда возникают ситуации, когда с остатками происходит что-то непонятное. Остаток на начало + Оборот != Остаток на конец. После пересчета итогов проблема уходит. Но как узнать вовремя, что что-то не так?

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Проверка актуальности итогов регистров накоплений:
.epf 5,03Kb
30
30 Скачать (1 SM) Купить за 1 850 руб.

Если пересчет итогов не занимает много времени, то можно просто время от времени пересчитывать итоги.

А вот если пересчет итогов по одному регистру занимает несколько часов, то уже возникает вопрос, как же быть уверенным, что с итогами все нормально.

Для себя закрыл вопрос написав обработку и включив ее в регламент. Теперь каждую ночь обработка проверяет регистры накопления и шлет письмо, если что-то не так.

Как работает? Сверяет обороты по с периодичностью "запись" с оборотами без периодичности. Проверяет последний год от текущей даты. Проверяет все регистры накоплений.

Механизм проверки выглядит так:

	Для Каждого Рег Из Метаданные.РегистрыНакопления Цикл 
		
		ТекстЗапроса = 
		"ВЫБРАТЬ
		|	РегОбороты.Измерение,
		|	СУММА(РегОбороты.Ресурс) КАК РесурсПериод,
		|	0 КАК Ресурс
		|ПОМЕСТИТЬ ТаблицаДанных
		|ИЗ
		|	РегистрНакопления.ИмяРегистра.Обороты(&D1, &D2, Запись, ) КАК РегОбороты
		|
		|СГРУППИРОВАТЬ ПО
		|	РегОбороты.Измерение
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	РегОбороты.Измерение,
		|	0,
		|	СУММА(РегОбороты.Ресурс)
		|ИЗ
		|	РегистрНакопления.ИмяРегистра.Обороты(&D1, &D2, , ) КАК РегОбороты
		|
		|СГРУППИРОВАТЬ ПО
		|	РегОбороты.Измерение
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|	ТаблицаДанных.Измерение,
		|	СУММА(ТаблицаДанных.РесурсПериод) КАК РесурсПериод,
		|	СУММА(ТаблицаДанных.Ресурс) КАК Ресурс
		|ПОМЕСТИТЬ ТаблицаДанныхГрупп
		|ИЗ
		|	ТаблицаДанных КАК ТаблицаДанных
		|
		|СГРУППИРОВАТЬ ПО
		|	ТаблицаДанных.Измерение
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|	ТаблицаДанныхГрупп.Измерение,
		|	ТаблицаДанныхГрупп.РесурсПериод,
		|	ТаблицаДанныхГрупп.Ресурс
		|ИЗ
		|	ТаблицаДанныхГрупп КАК ТаблицаДанныхГрупп
		|ГДЕ
		|	ТаблицаДанныхГрупп.Ресурс <> ТаблицаДанныхГрупп.РесурсПериод
		|";
		
		ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "Измерение", Рег.Измерения[0].Имя);
		ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "Ресурс", "" + Рег.Ресурсы[0].Имя + "Оборот");
		ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ИмяРегистра", Рег.Имя);

Если есть проблема по какому-то регистру, пересчитываем этот регистр:

РегистрыНакопления[ИмяРег].ПересчитатьИтоги()

P.S. Обработка протестирована на релизе 1С:Предприятие 8.2 (8.2.19.130). Должна работать на любых релизах 8.2-8.3.

См. также

Корректировка данных Зарплата Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет НДФЛ Платные (руб)

Обработка исправляет технические ошибки по НДФЛ, взаиморасчетам с сотрудниками в 1С:ЗУП (1С:ЗКГУ) на начало года. Фактически все ошибки, которые проявляются в ведомостях на выплату, расчетных листках, при заполнении ведомостей на выплату и отчетах 6-НДФЛ и т.д. нужно начинать исправлять с начала расчетного года. Это позволит быть уверенными, что после завершения расчетов предыдущего года, начали работать с «чистого листа» без ошибочных остатков.

60000 руб.

06.10.2023    4806    38    20    

46

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    34313    109    152    

75

Корректировка данных Системный администратор Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Незаменимая обработка для сопровождения конфигураций: ERP, УТ, КА. Позволяет вычистить многие ошибки в ключах аналитики, в ключевых справочниках конфигурации.

3600 руб.

10.02.2017    111786    673    175    

712

Корректировка данных Программист Пользователь Платформа 1С v8.3 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)

Представьте, что есть система QR - кодирования, которая НЕ ТРЕБУЕТ изменения конфигурации, НЕ ТРЕБУЕТ изменения ни одной печатной формы для добавления QR-кода, включая внешние, НЕ ХРАНИТ данные штрихкодов и их связь, от чего база не "пухнет", ИМЕЕТ возможность закодировать в QR-коде произвольные данные параметров для последующей обработки полученных данных, УМЕЕТ прикреплять сканы, УМЕЕТ обработать считанный QR-код как ВЫ захотите. А также ХРАНИТ историю операций в обход базы для каждого пользователя в отдельности и УМЕЕТ работать с 2D - сканерами. А также автоматически распознавать отсканированные печатные формы (картинки или pdf-файлы) и выполнять заданные произвольные алгоритмы, в том числе прикрепление их к документам! Обновление 3.2 от 09.06.2024!

19200 руб.

26.08.2018    52764    16    61    

55

Закрытие периода Корректировка данных Программист Пользователь Платформа 1С v8.3 Система компоновки данных 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)

Внешняя обработка, позволяющая произвольным образом заполнять документ "Корректировка регистров" Предназначена для использования в конфигурациях "Управление торговлей 11", "Управление небольшой фирмой", "ERP Управление предприятием", а также в других конфигурациях, в состав которых входит библиотека стандартных подсистем (БСП) версии 2.2+ и указанный выше документ.

2400 руб.

13.07.2015    51501    175    29    

127

Корректировка данных Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Налоговый учет Налог на прибыль Платные (руб)

Обработка служит для: выравнивания бухгалтерского и налогового учета на определенную дату по выбранным счетам; закрытия остатков по выбранным счетам; обнуления налогового учета (ПР, ВР также будут обнулены)

2880 руб.

05.05.2024    753    11    0    

7

Корректировка данных Программист Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет НДС Платные (руб)

Обработка предназначена для ООО для смены системы налогообложения УСН на ОСНО, без ведения раздельного учета, входящего НДС по способам учета. При реализации перехода в операции формируются проводки по выделению НДС, который ранее учитывался в стоимости номенклатуры, регистр «НДС Предъявленный».

6000 руб.

22.01.2025    445    1    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. PerlAmutor 157 12.12.18 20:20 Сейчас в теме
Задумался сегодня на эту тему, попробовал реализовать свой вариант "на коленке" и вот что немного смутило в процессе.

Рег.Ресурсы[0].Имя


Тут мы берем первый попавшийся ресурс регистра накопления. С одной стороны это быстро и голову ломать не нужно. А с другой стороны, это может быть ресурс, который просто напросто не используется прикладным решением исходя из настроек какой-нибудь функциональной опции и всегда имеет значение 0. В то время как ошибка может засесть в других ресурсах того же самого регистра.
3. dmt 69 13.12.18 04:42 Сейчас в теме
(1) Гм. С новыми конфигурациями слабо знаком. Там такое действительно есть? Можно пример? Или это теория?
5. PerlAmutor 157 13.12.18 05:54 Сейчас в теме
(3) Теория. Но если брать на вскидку такой ресурс как СтоимостьНУ. То у нас в базе, например, налоговый учет не ведется и этот ресурс всегда 0.
7. dmt 69 13.12.18 06:24 Сейчас в теме
(5)
) Теория. Но если брать на вскидку такой ресурс как СтоимостьНУ. То у нас в базе, например, налоговый учет не ведется и этот ресурс всегда 0.


Понятно. Если еще кто-нибудь из коллег присоединится к мнению, что такая проблема существенна, перепишу обработку.
2. CheBurator 2697 12.12.18 23:54 Сейчас в теме
Костыль.
Понятно, что с костылем кловылять всяко лучше чем без костыля, но хотелось бы не допускать травматизма.
То бишь - причины такого разбегания в чем? как устранить эти причины?
4. dmt 69 13.12.18 04:45 Сейчас в теме
(2) Самому интересно. Ходят слухи, что это связанно с демоническим обновлением, но я не верю.
6. PerlAmutor 157 13.12.18 06:00 Сейчас в теме
(2) Причины практически те же, что и в случаях, когда в базе появляются объекты с одинаковым GUIDом из-за обмена или переноса данных. Когда проведенный документ не имеет движений там где они быть должны. Когда непроведенный документ имеет движения. Когда помеченный на удаление документ имеет движения. Когда в подчиненных справочниках появляются элементы без владельца.

В 1С гарантий нет ни от чего. С кривыми итогами встречаюсь периодически в своей базе. Раньше раз в неделю делал реструктуризацию базы вручную, бонусом и итоги пересчитывались и фрагментация таблиц снижалась. Теперь такая возможность пропала. Позавчера включал пересчет итогов, так как отчеты стали врать. Помогло. В БСП не обнаружил регламентных заданий по пересчету итогов.
8. CheBurator 2697 14.12.18 02:53 Сейчас в теме
(6) "когда в базе появляются объекты с одинаковым GUIDом из-за обмена или переноса данных."
- ну это еще, допустим, чисто технологическая заморочка, совпадение гуидов еще может быть вроде как, 100% гарантии здесь нет

"Когда проведенный документ не имеет движений там где они быть должны. Когда непроведенный документ имеет движения. Когда помеченный на удаление документ имеет движения. Когда в подчиненных справочниках появляются элементы без владельца."
- это следствие чего-то? кривого кода? сбоя в механизмах платформы? насколько мне известно - технологически в 8-ке совсем не запрещено иметь движения у непроведенных документов.. и у помеченных на удаление... Так в результате чего такие "нестыковки"..?
9. PerlAmutor 157 14.12.18 06:06 Сейчас в теме
(8)
Так в результате чего такие "нестыковки"..?


ОбменДанными.Загрузка = Истина;
10. dmt 69 14.12.18 06:21 Сейчас в теме
(6), (8), (9) Что-то вы намешали, коллеги.
Проблемы с итогами, это ИМХО, проблемы платформы.
Проблемы с кодом "ОбменДанными.Загрузка = Истина" это уже проблемы конфигурации и/или программиста.

На самом деле, не все так плохо с 8-кой. На нормально обслуживаемой базе, с нормальным железом, проблемы типа (0) происходят довольно редко. Я даже и не помню когда была предыдущая подобная ситуация, год или два назад.
Самое-то неприятное, что проблему обычно выявляют пользователи, через какой-то промежуток времени после возникновения ситуации. И тогда:
1. Непонятно когда вообще наступил час Х.
2. Если это было несколько дней назад, трудно вспомнить, что же именно могло привести к беде.
11. aegoncharov 14.12.18 11:47 Сейчас в теме
Я что-то не понял... Виртуальная таблица "Обороты" для регистров типа "Остатки" вроде как читает только таблицу реальных записей, то есть никакие таблицы итогов не читаются в принципе, и результат от сбитых итогов не может зависеть. Эта обработка что ли только для оборотных регистров?

Цитата из книги:
Алгоритм, применяемый системой для получения оборотов регистра накопления остатков.
Для построения виртуальной таблицы оборотов регистра накопления остатков всегда используются данные таблицы движений регистра (из базы данных).
12. dmt 69 14.12.18 12:07 Сейчас в теме
(11) Хм. Похоже на то.

Словил проблему на РП "Продажи". Написал (0) для проверки результата. Поймал проблему еще на одном (самописном) оборотном регистре...

Косяк. Ввел коллег в заблуждение.
13. aegoncharov 14.12.18 12:18 Сейчас в теме
Вообще, конечно, идея хорошая, сам недавно нарвался на базе заказчика на сбитые итоги. Сначала по регистру бухгалтерии, причем у них около пяти месяцев была эта проблема и они в оборотках видели нереальные остатки, и закрывали счета исходя из неверных остатков. Пересчет итогов привел к тому, что в оборотках изменились остатки по закрытым периодам (то есть отразились реальные остатки), счета 26, 20, 40 раскрылись, в общем ужас-ужас. Потом, там же, нарвался на слетевшие итоги в регистре УчетЗатратРегл. Полный пересчет итогов, конечно, помог, но надежный инструмент диагностики для быстрого выявления проблем хотелось бы иметь.
14. aegoncharov 14.12.18 12:22 Сейчас в теме
Причем по регистру бухгалтерии сбитые итоги выглядели так: видимо был какой-то документ с проводками, эти проводки были учтены в таблицах итогов, потом сам документ с проводками пропал, а в таблицах итогах все осталось как с этими проводками.
При этом вроде бы запись записей в регистр и апдейт таблиц итогов должен же быть в одной транзакции, как сбой происходит, ума не приложу. MS SQL.
15. dmt 69 14.12.18 12:27 Сейчас в теме
(14) О, я правильно понял? Если грохнуть документ на SQL, не трогая движения, и потом прогнать (0), если покажет различия, то механизм годный?
16. aegoncharov 14.12.18 12:32 Сейчас в теме
(15) Если движения и таблицу итогов не трогать, то итоги продолжат соответствовать движениям, то есть с итогами как таковыми все нормально будет.
Чтобы создать проблему, нужно в MSSQL зайти в таблицу итогов и поправить там циферки, вот тогда будет проблема и можно тестировать обработку.
17. dmt 69 14.12.18 12:44 Сейчас в теме
(16) Тогда этого немного долго проверять.
18. Franchiser 47 06.07.24 20:24 Сейчас в теме
Обработка проверяет корректность остатков? Что с чем сверяется ?
Оставьте свое сообщение