В процессе работы с программой 1С:Зарплата и управление персоналом 3.1 пользователи нередко сталкиваются с неприятной ситуацией: при формировании реестров на выплату зарплаты в банк сбивается автонумерация реестров. Достаточно один раз случайно или намеренно ввести ошибочный (например, слишком большой) номер реестра в документе Ведомость в банк, как все последующие документы начинают автоматически нумероваться по порядку от этого неверного числа. Даже если вручную исправить номер в последней ведомости, программа все равно продолжает настойчиво предлагать ошибочную последовательность при создании новых документов.
В рамках этой статьи мы подробно разберем, почему так происходит, как устроен внутренний механизм автонумерации в системе 1С:ЗУП 3.1, и рассмотрим пошаговые инструкции по исправлению этой ошибки как стандартными средствами, так и с помощью инструментов для технических специалистов. Для регулярного технического сопровождения и проверки баз на ошибки применяется Обновлятор 1С для автоматического обслуживания баз, упрощающий выполнение сервисных задач.
Для начала проанализируем ситуацию и поймем, откуда программа берет номер для каждого нового реестра. Логично было бы предположить, что система ищет последний созданный документ Ведомость в банк в списке, считывает его номер и прибавляет к нему единицу. Однако на практике алгоритм работает иначе.
Для оптимизации работы и отслеживания выгрузок в конфигурации используется специальный регистр сведений — Состояния документов зачисления зарплаты (техническое имя: СостоянияДокументовЗачисленияЗарплаты). Именно в этом регистре при проведении ведомостей фиксируются все актуальные номера реестров. Алгоритм автонумерации работает по следующему принципу:
Состояния документов зачисления зарплаты.Максимум + 1). Этот номер и подставляется в новый документ.По этой причине простое редактирование номера на форме уже проведенной ведомости не дает результата. Номер в самом документе меняется, но запись в регистре сведений остается прежней, содержащей старый ошибочный номер. Система продолжает ориентироваться на данные регистра, игнорируя визуальные изменения в форме документа.
Самый простой и правильный способ синхронизировать данные документа и регистра сведений — выполнить полное перепроведение проблемных документов в строгой последовательности. Рассмотрим этот процесс по шагам.
Шаг 1. Отмена проведения ведомостей.
Найдите все ведомости, в которых были допущены ошибочные или некорректные номера реестров. Нажмите на них правой кнопкой мыши и выберите команду «Отменить проведение». Крайне важно сделать это для всех документов с некорректными номерами. Если ведомости останутся проведенными, программа не позволит перезаписать регистр правильными данными.
Шаг 2. Корректировка номера реестра.
Откройте непроведенный документ Ведомость в банк и вручную укажите в поле «Номер реестра» правильный порядковый номер.
Шаг 3. Повторное проведение документа.
Нажмите кнопку «Провести» или «Провести и закрыть». В момент проведения система заново сформирует движения по регистрам и запишет в регистр Состояния документов зачисления зарплаты именно тот номер реестра, который вы только что указали вручную.
Шаг 4. Проверка последующих документов.
Если ошибочных документов было несколько, повторите шаги 1–3 для каждого из них в хронологическом порядке. Важно, чтобы последний проведенный документ содержал актуальный правильный номер. После этого создайте новую проверочную ведомость — ее номер должен определиться автоматически и корректно.
Иногда пользователю или техническому специалисту требуется лично убедиться, какие именно записи хранятся в регистре сведений, чтобы понять, на каком документе произошел сбой. Разработчики 1С заблокировали данный регистр для прямого интерактивного редактирования — в нем нет кнопок создания или удаления записей, его нельзя скорректировать документом Перенос данных. Однако его можно открыть для просмотра.
Выясним, как перейти в этот регистр:
Состояния документов зачисления зарплаты.Shift + F11 (переход по ссылке), вставьте в появившееся окно навигационную ссылку, представленную ниже, и нажмите «Перейти»:e1cib/list/РегистрСведений.СостоянияДокументовЗачисленияЗарплаты
Бывают ситуации, когда стандартное перепроведение документов не помогает или повреждена сама база данных (например, документ был некорректно удален, а «битая» запись с огромным номером реестра осталась в регистре сведений). В таком случае исправить ситуацию можно только с помощью написания небольшого кода во внешней обработке или через групповую обработку реквизитов. Для корректной очистки информационной базы от данных отдельной организации используется Выборочное удаление организаций, учитывающее все внутренние связи объектов.
Рассмотрим пример кода на языке 1С, который позволяет программно очистить или перезаписать некорректное движение в регистре сведений для конкретной ведомости:
// Создаем набор записей регистра сведений по конкретному регистратору
НаборЗаписей = РегистрыСведений.СостоянияДокументовЗачисленияЗарплаты.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Ведомость.Установить(СсылкаНаПроблемнуюВедомость);
// Считываем текущую запись из базы данных
НаборЗаписей.Прочитать();
Если НаборЗаписей.Количество() > 0 Тогда
Для Каждого Запись Из НаборЗаписей Цикл
// Принудительно устанавливаем верный номер реестра в регистре
Запись.НомерРеестра = НужныйНомерРеестра;
КонецЦикла;
// Записываем обновленные данные в информационную базу
НаборЗаписей.Записать();
Сообщить("Запись в регистре успешно скорректирована!");
КонецЕсли;
Этот код позволяет напрямую обойти блокировку интерфейса и принудительно изменить зависшее значение номера реестра в базе данных.
Проанализируем еще несколько важных технических особенностей, о которых следует знать при работе с реестрами в 1С:ЗУП 3.1:
Состояния документов зачисления зарплаты отсутствует разрез по зарплатным проектам. Это означает, что если внутри одной организации у вас открыто несколько зарплатных проектов в разных банках (например, в Сбербанке и ВТБ), нумерация реестров все равно будет идти сплошным сквозным потоком для всей организации. Разделить ее стандартными настройками невозможно.Используя приведенные инструкции и понимая логику работы платформы 1С, вы сможете быстро локализовать и устранить любые проблемы с нумерацией реестров зачисления заработной платы.