Обработка на Инфостарте
Чек-ап итогов и остатков 1С: месяц, позиция и короткий пересчёт
Когда остаток по позиции не бьётся с движениями, обработка показывает регистр, позицию и первый месяц, где хранимые итоги разошлись с суммой движений. Дальше она предлагает пересчёт за один-два месяца вместо всей истории, выполняет его по кнопке и сверяет заново. Все проверки, кроме самого пересчёта, только читают базу.
Обработка продаётся на Инфостарте за 10 SM, код открыт. Платформа 8.3.20 и новее, управляемые формы, любая конфигурация. К СУБД не подключается: SQL-скрипты формирует, но не выполняет.
Регистр остатков с включёнными итогами хранит готовый остаток на начало каждого месяца и отдельную строку текущих остатков. Запрос остатков на первое число берёт эту строку и движения не читает. Если строка испорчена, ошибку видно в любом отчёте, а перепроведение документов её не исправляет: при записи набора итоги меняются на разницу между старыми и новыми движениями, и у тех же движений эта разница нулевая.
Обычный совет в такой ситуации - пересчитать итоги целиком. На регистре с годами истории это окно на ночь, и до запуска никто не скажет, помог ли он. Обработка сначала находит место поломки, сравнивая итоги с активными движениями на каждой границе месяца, а потом пересчитывает только нужный период.
Сузить пересчёт по складу или товару платформа не даёт: методы пересчёта итогов отбора не принимают. Поэтому обработка выигрывает время за счёт периода, а место поломки показывает с точностью до позиции.
Что внутри
Обзор настроек итогов
По всем регистрам накопления и бухгалтерии: включены ли итоги и текущие итоги, период рассчитанных итогов и насколько он отстал, разделение итогов, агрегаты у оборотных, регламентное задание сдвига периода.
Сверка с движениями
Остаток из итогов на каждую границу месяца против суммы активных движений, отдельно текущие итоги. Оборотные регистры по месяцам, бухгалтерия по счетам с подчинёнными. Отбор по измерениям, быстрый режим по окну месяцев и оценка объёма до запуска.
План пересчёта и код к нему
Какой период пересчитать, чтобы закрыть найденные расхождения, и готовый код на встроенном языке. План ничего не меняет, код можно отдать администратору.
Пересчёт с проверкой
Выполняется по кнопке после подтверждения, пишется в журнал регистрации, после него сверка запускается снова и ставит вердикт "починилось" или "не починилось".
Движения и качество остатков
Движения непроведённых документов, несуществующие регистраторы, битые и помеченные на удаление ссылки в измерениях. Отрицательные остатки, копеечная "пыль" при нулевом количестве, зависшие остатки по старым документам.
Закрытые периоды и SQL для администратора
Снимок остатков на границах месяцев в JSON и сравнение с ним позже: что поменялось задним числом и какими документами. Четыре скрипта только на чтение под MS SQL и PostgreSQL с подписью регистра 1С у каждой таблицы.
Прогон на тестовой УТ
УТ 11.5.22.67, платформа 8.3.27.1606, MS SQL 2022 на той же машине, 101 регистр накопления. Время снято внутри обработки. Регистр бухгалтерии - копия рабочей базы на 8.3.20, только чтение.
| Показатель | Значение | Как надо | Вердикт | Что это значит |
|---|---|---|---|---|
| Обзор настроек итогов | 1,0 с | - | норма | 101 регистр накопления и регламентное задание |
| Сверка регистра товаров на складах | 0,2-0,7 с | - | норма | 2 898 позиций, 5 545 движений, 14 границ месяца |
| Сверка оборотного регистра выручки | 0,6-9,0 с | - | норма | 5 292 движения, 13 месяцев; разброс - холодный и тёплый кэш |
| Строка итогов, испорченная на копии | движения 52, итоги 59 | разница 0 | чинить | найдена позиция и граница 01.08, остальные месяцы и текущие итоги чистые |
| Пересчёт по плану и повторная сверка | 150 мс | - | норма | два месяца вместо всей истории, повторная сверка без расхождений |
| Проблемы в движениях, все регистры | 79 с | - | инфо | 101 регистр порциями по 20, в самом большом 10 млн движений |
| Качество остатков | 12,3 с | - | инфо | 133 проверки по всем регистрам остатков |
| Бухгалтерия, один счёт с подчинёнными | 370 с | - | внимание | быстрый режим, четыре границы, 120 451 движение в окне; полная история не уложилась в 25 минут |
Разбор результата
На регистрах накопления тестовой базы сверка занимает секунды, и испорченная строка находится с точностью до позиции и месяца. Тяжело только с бухгалтерией рабочего размера: там сверка по одному счёту идёт минутами, поэтому обработка начинает с оценки объёма, предлагает быстрый режим и отбор, а запускать её лучше вне пиковых часов.
Как пользоваться
- 01
Посмотреть обзор
Вкладка "Обзор" показывает настройки итогов по всем регистрам с вердиктом у каждой строки. Здесь видно, где итоги выключены или период рассчитанных итогов давно не сдвигался.
- 02
Сверить нужный регистр
Выбрать регистр, при необходимости отбор по складу или номенклатуре, глубину в месяцах. Для большого регистра сначала оценка объёма и быстрый режим.
- 03
Открыть план
Обработка покажет период пересчёта и код к нему. План ничего не меняет: его можно выполнить здесь же или отдать администратору.
- 04
Пересчитать и проверить
"Выполнить пересчёт" после подтверждения, лучше вне рабочего времени. Повторная сверка идёт сама, итог словом: починилось или нет.
Өзіңіз шеше алмай жатырсыз ба? Жазыңыз, бірге қараймыз
Регламенттік қызмет көрсетуді база тұрақты жұмыс істейтіндей, бэкаптар кепілді түрде қалпына келетіндей және дискілер кенет таусылмайтындай баптаймыз.
- Құны
- 450 000 ₸-денбір реттік баптау; сүйемелдеу - айына 150 000 ₸-ден; салықтарсыз
Тақырып бойынша талдаулар
Остатки в 1С не сходятся с движениями: как найти сломанный месяц итогов и не пересчитывать всю историю
Отчёт по движениям даёт одно число, запрос к остаткам другое, перепроведение ничего не меняет. Разбираем, как отличить сломанные итоги от ошибки в движениях, каким запросом найти позицию и месяц расхождения, почему строку итогов на 1 августа чинит пересчёт за август, а не за июль, в каком порядке пересчитывать текущие итоги и как посмотреть саму строку итогов на SQL. Все шаги проверены на тестовой копии УТ 11.5 с испорченной строкой.
CHECKDB нашёл ошибки в базе 1С: порядок действий до REPAIR и после
CHECKDB советует repair_allow_data_loss и на битый индекс, и на потерянные документы. Разбираем по шагам, что делать в первый час: что сохранить до исправления, как по таблице и номеру индекса понять, что задето в 1С, как перестроить битый индекс без потерь и как получить список пропавших документов, пока REPAIR не удалил их молча. Проверено на копии УТ для Казахстана с испорченными страницами.
Расхождение остатков 1С и WMS: как устроить сверку, которой можно верить
Когда сверка 1С и WMS регулярно находит расхождения, а склад их не подтверждает, первым делом проверяют саму сверку. Шесть требований к ней таблицей, порядок проверки по шагам и цифры из разбора робота, который за 60 дней сам создал 62,7% оборота технического склада.
Дедлок 1205 при проведении, а движения не пересекаются: что делать
Проведение падает с 1205, наборы записей по разным регистраторам не пересекаются ни одним ключом, диагностика по таблице движений возвращает пустоту. Это отдельный класс отказов, он живёт на таблице итогов, и лечится не тем, чем лечатся два соседних класса. Определитель по графу, три запроса проверки на своей базе, разбор пяти вариантов лечения с ценой каждого и список того, что в этом случае не поможет.
Рядом по теме
Остатки не сходятся с движениями
Разбор вручную: какой запрос находит месяц поломки, почему строку 01.08 чинит пересчёт за август и как посмотреть строки итогов на SQL.
Дедлок на таблице итогов регистра
Когда проведение падает на итогах, хотя наборы записей не пересекаются.
Чек-ап СУБД для 1С
Статистика, индексы, tempdb и обслуживание сервера, на котором живут эти регистры.
Жиі қойылатын сұрақтар
Почему перепроведение документов не исправило остаток?
При записи движений итоги меняются на разницу между старым и новым набором. Если движения те же, разница нулевая, и ошибка, которая уже лежит в строке итогов, остаётся. Мы проверили это на копии: перезапись 1 800 записей трёх документов строку не починила.
Можно пересчитать итоги только по одному складу?
Нет. ПересчитатьИтоги, ПересчитатьИтогиЗаПериод и ПересчитатьТекущиеИтоги отбора не принимают и работают по всему регистру. Обработка сужает пересчёт по времени: один-два месяца вместо всей истории.
Какие права нужны?
Для пересчёта - право "Управление итогами" на регистр. Обзор, сверка, план, проверки движений и остатков только читают базу.
Работает с регистрами бухгалтерии?
Да, сверка идёт по счетам с подчинёнными. На базе рабочего размера это минуты даже по одному счёту, поэтому сначала стоит посмотреть оценку объёма и включить быстрый режим по окну месяцев.
Что показывает сверка, если итоги у регистра выключены?
Тогда остатки считаются по движениям на лету, и разница всегда ноль. Проверять нечего, обработка отметит это в обзоре, а разбираться стоит в том, почему итоги выключены.
Если неправильные сами движения, сверка это увидит?
Нет, итоги честно соответствуют движениям, и разница будет нулевой. Для этого есть отдельный раздел проверок движений: непроведённые документы, несуществующие регистраторы, битые ссылки в измерениях.
1С жүйеңізге тегін экспресс-аудит
1-2 күнде базаңызды қарап, өнімділік қайда жоғалып жатқанын табамыз және не істеу керегін айтамыз. Міндеттемесіз.
Тапсырманы талқылайық
Ең жылдамы WhatsApp: тапсырма туралы бірер жол жазыңыз, жұмыс күні ішінде жауап береміз.