IE2017

Быстрое сворачивание 1С 77 ТиС (от 10 до 40 минут) независимо от размера ИБ.

Обработки - Свертка базы

Хотя большинство пользователей перешло на 1С 8ХХ, но есть еще очень много торговых организаций до сих пор эксплуатирующих 1С 77 ТиС. И пока еще не собираются переходить на новую платформу, а свертку делать надо. Есть много решений, я решил поделиться своим. Основное отличие:
1. Универсальность
2. Быстрота
3. Свертку можно делать на любую дату (не обязательно на начало года)

Предисловие:

Прежде чем делать свертку обязательно снимите архив ИБ. Не забудьте сделать ТИИБ, чтобы не возникло неприятностей на следующих шагах. Не стоит напоминать что все последующие шаги надо делать от имени пользователя с установленной ролью "Полные полномочия" (настраивается в справочнике "Пользователи")

Содержимое архива:

1. Конфигурация 1cv7.md содержит три объекта - 1. Документ "ОстаткиПоРегистру", 2. Журнал "КорректировкаРегистров", 3. Обработка "СформироватьОстаткиПоРегистрам"

Итак откройте конфигурацию и загрузите эти три объекта в свою, далее запустите 1С Предприятие и выполните обработку "Сформировать остатки по регистрам". Обработка предложит выбрать вид операции:

1 - Сформировать остатки по регистрам на указанную дату (будут сформированы документы "ОстаткиПоРегистру")

2 - Пометить документы на удаление до указанной даты (включительно)

3 - Включить движений по регистрам для документов "ОстаткиПоРегистру"

Для начала укажите вид операции "1", дождитесь выполнение обработки, после закройте 1С и откройте Total Commander, найдите папку ИБ и удалите все файлы по маске RA*.*, RG*.*, тем самым мы сэкономим скорость удаления документов.

Вновь запустите 1С и переустановите ТА на начало века и вызовите обработку, но теперь вид операции укажите "2". Дождитесь исполнения (минут 5-10). Опять установите ТА на дату свертки и опять вызовите обработку (вид операции "3"). И наконец вызовите стандартную операцию "Проведение документов" и перепроведите все "проведенные" документы от даты свертки до текущей даты, дождитесь исполнения (15-20 минут). Свертка готова, последнее что нужно сделать это удалить помеченные документы.

Кстати перепровдение документов необходимо только есть после даты свертки есть проведенные документы (например, если вы сворачиваете ИБ не начало года).

Вот и все, таким способ постоянно сворачиваю ИБ размером 12 Гб. Забыл сказать, что ИБ если SQL вариант нужно выгрузить в файловый вариант и после свертки обратно загрузить в SQL.

P.S.

За основу была взята идея не помню какого автора. Что было доработано: в документе "ОстаткиПоРегистру" увеличил количество реквизитов "Измерения","Ресурс" до 5-ти. Для реквизита "Ресурс" увеличил длину до 19 и точность до 5 (в типовой ТиС есть регистр "ОстаткиТМ" у которого точность после запятой "5"). Также изменил строку:

"НазначитьТип("Измерение" + Сч, СокрЛП(ИзмТип[сч]));" на "НазначитьТип("Измерение" + Сч, СокрЛП(ИзмТип[сч]), СокрЛП(ИзмДлина[сч]), СокрЛП(ИзмТочность[сч]));"

Вроде бы мелочь, но когда сворачиваешь большие ИБ любая мелочь вызывает трудно отслеживаемые ошибки.

Удачи всем!

Скачать файлы

Наименование Файл Версия Размер
1cv7.md
.zip 12,70Kb
14.11.14
73
.zip 12,70Kb 73 Скачать

См. также

Комментарии
1. Дмитрий Литовченко (kompas-dm) 750 15.11.14 09:39 Сейчас в теме
2. Алексей Ситников (SiAl) 70 16.11.14 16:29 Сейчас в теме
"Забыл сказать, что ИБ если SQL вариант нужно выгрузить в файловый вариант и после свертки обратно загрузить в SQL."

Я так понимаю это связано с тем, что
после закройте 1С и откройте Total Commander, найдите папку ИБ и удалите все файлы по маске RA*.*, RG*.*, тем самым мы сэкономим скорость удаления документов.

Советую автору выучить язык SQL в плане конструкции DROP TABLE.
Может сама свертка работает и быстро, но сколько времени уходит на ТИИ, выгрузку из SQL в DBF и обратно? Сколько занимает перенос ТА с проведением документов?
3. dimi3o (etmarket) 16.11.14 17:20 Сейчас в теме
Несомненно есть минусы - все-таки много действий вручную. Но показатель - 10-40 минут для базы в 12 Гб, очень неплох!
4. Антон Рощин (wolfsoft) 2416 19.11.14 11:10 Сейчас в теме
У меня была похожая полу-универсальная свёртка регистров, в принципе, для любой конфигурации. Только не публиковал, потому как "полу" :)
5. Alex Steiner (OrsoBear) 20.11.14 15:17 Сейчас в теме
Как раз подобной сейчас базу сворачиваю.
Из идей, что можно добавить:
Выбор для каких регистров какие реквизиты не включать в свертку.
К примеру, у меня у меня долг формируется с указанием документа, а закрывается другим документом.
Ваш вариант схлапывает по документам, получается много ссылок на прошлый период, от которого избавляемся.
Приходится эти документы тянуть.
Сделал так, что Если вид регистра "Покупатели", Значение "КоррДокумент" в определении остатков не участвует.
Без учета документов Записей регистра остатков стало гораздо меньше, и бухгалтерию в принципе устроило.
Так же для поставщиков и прочих регистров.
Понимаю, что это больше в адрес предприятия, где так криво придумали закрывать документы.
Но мне встречается не первый раз.

В остальном хорошо придумано.
6. Вячеслав Бюльбюль-Оглы (SvSoft) 79 24.11.14 08:35 Сейчас в теме
(0) А как насчет партий ТМЦ, периодики (цены, единицы)???
7. Стас ТТТ (st8899) 06.02.15 16:33 Сейчас в теме
на этапе "2" на каждом месяце спрашивает по 10-100 документам, удалить подчиненные или нет! Не понятно что жать да или нет!
На этапе"после этапа 3, проводим все "проведенные документы", выдает ошибку:
На документ Строка выписки банка (приход) тт00014010 (28.12.2012) не зарегистрирован счет - фактура!
На документ Строка выписки банка (приход) тт00014021 (28.12.2012) не зарегистрирован счет - фактура!
Проведение документа: 31.01.2014 Запись книги покупок тг00000001
Документ - основание не проведен!
Документ не проводится!

Свертка делалась на 1 января 2013г, ТА 6 февраля 2015г. База ведется с 2006г.
Вот такие пироги... обработка не рабочая, не тратьте время и деньги зря...!
8. Titou Clair (TitouClair) 16.02.17 14:40 Сейчас в теме
(7)На этапе 2 при удалении документов получаю ошибку
ЗафиксироватьТранзакцию();
{Обработка.СформироватьОстаткиПоРегистрам.Форма.Модуль(206)}: Ошибка при выполнении процедуры ЗафиксироватьТранзакцию
Пришлось сделать без транзакций.

Но больше удивило, что дата выборки документов по конец года указанной даты - это зачем?
Хотел свернуть базу на 01.01.15, удалились все доки за 15-ый год.
9. Titou Clair (TitouClair) 16.02.17 18:43 Сейчас в теме
Не учтено максимальное кол-во строк табличной части в 9999 строк. В результате док ОстаткиПоРегистрам не проводится, 1С падает с сообщением о нехватке оперативы на ПК.
10. Сергей (Che) Коцюра (CheBurator) 3387 16.02.17 23:57 Сейчас в теме
(9) этого недостатка лишен использованные мной и доработанные документ "Универсальный двигатель объектов". Для свертки пользуюсь им. Полностью автоматической нет, в полуавтомате. Создал документ. Выбрал какой регистр свернуть. Получил совокупность документов, разбитую на обозримые порции в каждом документе. скорость в основном определяется скоростью сворачивальщика по указанию какие регистры сворачивать и удалением ненужных документов. 8 Гиг ТиС свертывается неспешно за час-полтора-два, сперерывами на кофе. если надо быстро - то сесть и свернуть без перерывов займет те же самые 40 минут-час.
11. Titou Clair (TitouClair) 17.02.17 07:24 Сейчас в теме
(10)можете поделиться? Мне этого будет достаточно. Хотя я, наверное, и в данный метод разделение на части вставлю.
12. Titou Clair (TitouClair) 17.02.17 10:35 Сейчас в теме
Что ж вставил проверку на кол-во строк в текущем документе, наткнулся на еще одну особенность:
номер документа дается по индексу регистра в метаданных.
опять же, зачем? Это где-то решает проблемы с нумерацией документа?
У меня получилось так, что документ по первому регистру содержит более 50000 строк. После моей правки док разбивался на 6 документов по 9999 строк. А этот способ нумерации оставляет тч только у первого документа, а остальные очищает, т.к. их номер соответствует индексу следующих регистров.
13. Titou Clair (TitouClair) 17.02.17 10:37 Сейчас в теме
О, ну класс, а еще время у документа не ставится в 0:0:0, как это указано в обработке

КР.УстановитьВремя(0, 0, 0);
КР.Записать();

не работает.
Прежде, чем установить время необходимо записать документ.

Т.о. универсальность обработки все же сомнительна. Доработка еще требуется.
14. rjhev korum (корум) 310 17.02.17 11:37 Сейчас в теме
свертку лучше брать испытанную на кошках, с публикацией 2006-2008 года.
15. probot (Probot1c) 17.02.17 11:47 Сейчас в теме
Ого! 10-40 минут! Звучит очень впечатляюще! у меня обычно около 2х часов уходило...
16. Сергей (Che) Коцюра (CheBurator) 3387 17.02.17 12:14 Сейчас в теме
17. Сергей (Che) Коцюра (CheBurator) 3387 17.02.17 12:16 Сейчас в теме
18. rjhev korum (корум) 310 17.02.17 12:23 Сейчас в теме
(17) ну ты жадина, хоть бы ссылку на нормально работающую приблуду на инфостарте выложил.

Смотри, тут теперь ВНЕЗАПНО кнопка "пожаловаться" появилась.

Накропают донос на тебя, как упёртого кулака-единоличника.
19. Titou Clair (TitouClair) 17.02.17 12:52 Сейчас в теме
(16)Что именно бред? Способ нумерации, который сделан в обработке? Согласен, бред. Но факт, там сделано именно так:


Для к = 1 По Метаданные.Регистр() Цикл
...
ОбработатьРегистр(к, ИмяРегистра);
...


Процедура ОбработатьРегистр(ИндексРегистра, ИмяРегистра)
КР = СоздатьОбъект("Документ.ОстаткиПоРегистру");
Если КР.НайтиПоНомеру(ИндексРегистра, КонДата) = 0 Тогда
КР.Новый();
КонецЕсли;
...
КР.УдалитьСтроки();
20. rjhev korum (корум) 310 17.02.17 13:50 Сейчас в теме
(11) лови бесплатное.
http://infostart.ru/public/13982/
(19) ну недописал автор нумерацию после того, как ему про 9999 строк указали.
21. Titou Clair (TitouClair) 17.02.17 14:14 Сейчас в теме
(20)благодарю. я уже и эту допилил. Не зря ж покупал. Но на всякий и ту схороню.
22. Дмитрий Неважнов (bsturtle) 160 12.07.17 18:39 Сейчас в теме
Неплохо. то что надо. спасибо. очень неплохой универсальный полуфабрикат. помогло
Оставьте свое сообщение