Перезаполнение таблиц отбора счетов (_1SACCSEL) и отбора по субконто (_1SSBSEL)
В бухгалтерской подсистеме для 1С 7.7 в SQL версии есть несколько таблиц:
1. Счета —_1SACCS, операции — _1SOPER, проводки — _1SENTRY;
2. Обороты между счетами — _1SBKTTLC (Содержит итоговые обороты по счетам по месяцам), Остатки — _1SBKTTL Хранит остатки и обороты по счетам по субконто по месяцам);
3. Отбор счетов — _1SACCSEL, Отбор проводок по субконто (для видов субконто, у которых включен режим отбора) — _1SSBSEL
2 и 3 группа таблиц заполняются на основе 1 группы.
Возникают случаи несоответствия первоначальным данным. Штатные средства 1С могут пересчитать таблицы только в монопольном режиме через «Управление бух. итогами»
В моем случае произошел также случай, когда и полный пересчет приводил к SQL ошибке.
В итоге был разаработан скрипт SQL, который позволяет перезаполнить таблицы из группы 3, не заходя в монопольный режим.
Скрипт может быть запущен в Microsoft SQL Management Studio.
Далее необходимо выбрать базу данных вашей 1С и указать во второй строке период пересчета:
set @period = ‘XXXXX%’
например: set @period = ‘20%’ — пересчет за все даты из 2000,
set @period = ‘202406%’ — пересчет только за июнь 2024 года.
TODO:
Сделать скрипт через внешнюю обработку для 1С
Добавить в скрипт пересчет бухгалтерских итогов (группа таблиц 2)
PS: Перед использованием скрипта не забудьте сделать резервную копию вашей базы данных.