Свертка базы УТ 10.3. Новая концепция

13.07.24

База данных - Свертка базы

Представлена обработка для свертки УТ 10.3 по новой концепции - когда сворачиваем "подокументно", а не "целиком и сразу по всем регистрам".

Скачать файл

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

Наименование SM По подписке [?] Купить один файл
АнализДокументовРегистров вер. 5.0 - Свертка
.epf 24,74Kb
13
13
4 SM
Скачать Купить за 2 750 руб.

Представлена внешняя обработка. Разработана на платформе 1С:Предприятие 8.3 (8.3.23.1865), на конфигурации "Управление торговлей", редакция 10.3 (10.3.82.1), демо-версии.

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

Основной принцип - берутся движения документов (за сворачиваемый период, в разрезе организации) по регистрам накоплений и сведений, далее эти движения переносятся в документы "Корректировка записей регистров".

В процессе переноса движений - записи по регистрам сворачиваются

  • или естественным образом "плюс на минус": когда "приходы" сворачиваются с "расходами" в разрезе измерений; 
  • или просто группируются: когда вместо нескольких записей с одинаковыми измерениями остается одна запись, ресурсы при этом складываются.

В обоих случаях количество записей по регистрам уменьшается. В процессе переноса движений даты документов сдвигаются к сворачиваемой дате. Сами документы удаляются, в оконцовке остается один документ "Корректировка записей регистров" со всевозможными движениями за период.

Данная концепция подробно описана в первой публикации на эту тему:

И данная концепция сильно отличается от классической свертки, которая описана в публикации:

К слову сказать, для любой концепции вам пригодится сравнение остатков по регистрам накопления из публикации:

Итак, представленная обработка тестировалась на одной демо-базе. Поэтому пока предлагается не в качестве полноценного готового решения, а как вспомогательная обработка для сворачивания записей регистров. С этим она хорошо справляется. Открывается обработка через меню Файл-Открыть.

Для начала достаточно открыть обработку, выбрать организацию и период, нажать кнопку "Запустить анализ".

Предварительный анализ обязателен - вам надо выявить, все ли документы могут быть "сконвертированы" в документ Корректировка записей регистров. Вам надо просмотреть все документы, которые имеют остатки, обороты или сведения, которые должны быть свернуты.

Сама обработка подсказывает вам, что некоторые документы могут/не могут быть полностью сконвертированы - последний столбец показывает, что имеются регистры, которые возможно/нельзя перенести в документ "Корректировка записей регистров" (см. рис.)

Если вы видите, что документ можно не сворачивать - остатки по нему вам не интересны, то просто снимаете флажок "Вкл" (один из первых флагов в списке документов).

Если вы видите, что документ нужно свернуть, но по ряду регистров переносить остатки и сведения не нужно, тогда вы напротив соответствующих регистров снимаете галочки. При этом будут сняты галочки с этих регистров по всем документам из списка: как говорится, или переносим все записи по регистру, или ничего (см. рис.)

Для использования обработки, вам нужно обязательно добавить в документ "Корректировка записей регистров" новые реквизиты:

  • Организация (тип Справочники.Организации)
  • Имя документа (Строка (55 символов))
  • Свертка (тип Булево) 
  • ДокументОснование (тип любая ДокументСсылка) - см. рис.

Обработка не умеет обрабатывать регистры сведений, в которых в качестве реквизита указываются периоды действия записи регистра, например "Дата окончания" скидок в регистрах сведений подсистемы "Скидки и наценки" - см. рис.

При этом для этих регистров все подобные реквизиты регистров будут проигнорированы, сами записи регистров будут свернуты согласно последнему периоду действия записей: то есть, "кто последний - того и тапки".

Обработку можно использовать двумя способами:

  • по каждому виду документа - нажимаете кнопку "Свернуть" на уровне вида документа.
  • по всем документам - нажимаете кнопку в шапке обработке "Свернуть" - будут свернуты все документы с возведенным флагом "Вкл".

Первый способ удобен для тестов и в принципе, когда вам надо срочно уменьшить размер базы - актуально для файловых баз, например - сворачиваете какой-нибудь период по поступлениям товаров или реализациям товаров. При этом, кроме сворачивания регистров за период (связанных с документами поступлений и реализаций), будут очищены табличные части самих документов - что освободит много места.

В процессе переноса движений даты документов сдвигаются к сворачиваемой дате. Сами документы удаляются, в оконцовке остается один документ "Корректировка записей регистров" со всевозможными движениями за период - см. рис.

ПС. Важное замечание. Если у вас будут замечания по работе алгоритма (ошибки) - не бросайте камнями,  давайте решать их по мере поступления. И обязательно пробуйте сначала на копии.

11-04-2024г. Обновил алгоритм сворачивания записей по регистрам накопления. Убрал сворачивание с учетом видов движения "приход"/"расход". Например, для регистра ПартииТоваровНаСкладах результат сворачивания по такому принципу искажает исходную информацию. 

На этом все. Всем добра!

С пользой для клиентов, Rustig

Проверено на следующих конфигурациях и релизах:

  • Управление торговлей, редакция 10.3, релизы 10.3.82.1

свертка базы

См. также

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

Расширение позволяет за 1-2 дня свернуть информационную базу 1С Бухгалтерии 3.0 с десятками миллионов документов. Использует оптимизированный алгоритм определения документов, на которые нет ссылок, для последующего удаления 16 фоновыми заданиями. Не помечает документы на удаление.

38400 руб.

08.02.2024    931    3    0    

4

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

Универсальная свертка баз данных под 1С разработана для свертки баз данных различного объема и сложности. Обработка работает на простых и управляемых формах. Обработка позволяет легко и интуитивно понятно проводить работы по свертке базы данных и других необходимых операций связанных с обслуживанием баз данных.

6000 руб.

22.05.2024    2227    5    0    

14

Перенос данных 1C Оптовая торговля Свертка базы Системный администратор Программист Бухгалтер Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Хотите точно знать, что вы выгружаете? Хотите сворачивать товары по НДС или фильтровать товары по доп. реквизиту? Вы волшебник, которому необходимо превращать одних контрагентов в других? Хотите при выгрузке превратить группу товаров в один? Или просто нужен удобный OLE обмен между 1C:Управление торговлей (ред. 11 или 10) и 1С:Бухгалтерия предприятия (ред. 2 или 3). Тогда эта обработка для вас!

10900 руб.

19.04.2013    170836    354    397    

329

Свертка базы Программист Пользователь Платформа 1С v8.3 1С:Управление торговлей 10 Россия Платные (руб)

Обработка позволяет сделать процесс свертки базы данных намного более быстрым и удобным.

8400 руб.

31.01.2022    8555    11    5    

15

Свертка базы Системный администратор Программист 8.3.8 Конфигурации 1cv8 1С:Бухгалтерия 3.0 Россия Управленческий учет Платные (руб)

Механизм обрезки (свертки) базы 1С. Описан процесс переноса среза остатков в новую базу. Представлено прикладное решение - обработка по переносу данных. Обработка работает в толстом и в тонком клиентах. Реализован способ обмена между базами без длительного отключения рабочей базы.

7200 руб.

27.03.2023    4912    13    2    

17

Свертка базы Программист Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 Управленческий учет Платные (руб)

Обработка свертки базы 1С УНФ 1.6 выполнена в виде расширения конфигурации, которое встраивается в вашу базу без снятия с поддержки, и адаптирована под релиз УНФ 1.6.

4800 руб.

20.04.2021    16316    49    34    

56

Свертка базы Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Разработка универсальна, работает на любой конфигурации, на версиях платформ 8.1 и 8.2. Исходные коды открыты. Усекаются сразу все разделы учета (регистры бухгалтерии, регистры накопления, регистры сведений). Разработка представляет из себя cf-файл с одним единственным документом: ЗакрытиеПериода. В нём содержится функционал как по заполнению, так и по очистке регистров. Так же для версии 8.2 возможна переброска данных в "чистую" базу нажатием одной кнопки.

4800 руб.

21.02.2011    108743    112    248    

302

Свертка базы Программист Платформа 1С v8.3 1С:Управление торговлей 10 Управленческий учет Абонемент ($m)

Внешняя обработка (для конфигураций на обычных формах) сравнивает остатки на дату и в разрезе организации по всем регистрам накопления. Сравнение происходит между базами по технологии Com-соединение. Используется при свертке базы.

3 стартмани

27.03.2024    652    2    RustIG    0    

4
Отзывы
16. RustIG 1720 18.04.24 12:21 Сейчас в теме
Удаление документов из базы по Организации - можно рассматривать как задачу по свертке, точнее частичной свертке. Есть документы, которые имеют реквизит "Организация", но делают движения по регистрам без разреза (без измерения) "Организация". Самый простой пример - это Реализация товаров - делает записи по регистру ПартииТоваровНаСкладах.
То есть просто так мы не можем удалить Реализацию по Организации - полетят остатки по регистру ПартииТоваров.
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Tarlich 116 03.04.24 23:15 Сейчас в теме
Идея интересная ! Если выбираю документ могу выбрать какие именно регистры меня интересуют ? (Пример - что касается НДС вообще хочу обнулить) (Увидел - как говорится, или переносим все записи по регистру, или ничего (см. рис.))
Свертка в понимании пользователей - это так же уход от накопленных ошибок учета - пересорт по измерениям .
как я понимаю что данная свертка конечно свернет все как есть , но к примеру партии или взаиморасчеты по док расчетов - (как привило это и есть для многих основные регистры) часто хочется повесить на одну партию (для товара) или на один начальный док расчетов (для взаиморасчетов)
А как поведет себя регистр - накопленные скидки по продажам ?
Вижу основной плюс что можно частями делать , но опять же на примере - что мне даст только свертка реализации без других документов которые делают движения по тем же регистрам ?
Да Табличные части очищены - но эти все документы помеченные на уд будут висеть же - т.к на них будут ссылки .
Почему временные док Корректировок - не удалить бы сразу непосредственно ?
Andreev.a; +1 Ответить
2. RustIG 1720 04.04.24 08:44 Сейчас в теме
(1)
Если выбираю документ могу выбрать какие именно регистры меня интересуют ?

Да, можно выбрать галочками. Остальное игнорируется и не переносится - по сути информация удалится.
3. RustIG 1720 04.04.24 08:54 Сейчас в теме
(1)
но к примеру партии или взаиморасчеты по док расчетов

Есть идея добавить такой функционал - для определенных регистров задать правило "заменять документ расчета на заданный документ":

Док = Документы.ДокументРасчетов.Создать();

СоответствиеРегистровИДокументов = Новый Соответствие;
СоответствиеРегистровИДокументов .Вставить("ИмяРегистра", Док.Ссылка);

Затем во всех переносах записей заменять ДокументРасчета на Док.Ссылка.

Я бы так сделал, я уже думал об этом.
4. RustIG 1720 04.04.24 08:58 Сейчас в теме
(1)
А как поведет себя регистр - накопленные скидки по продажам ?

регистр называется ПредоставленныеСкидки
он свернется по измерениям - регистр оборотный - в представленной концепции ничем не отличается от регистров остатков.
Если нужно какие-то измерения "обнулить" в процессе сворачивания, то можно задействовать идею из сообщения 3.
5. RustIG 1720 04.04.24 09:01 Сейчас в теме
(1)
Вижу основной плюс что можно частями делать , но опять же на примере - что мне даст только свертка реализации без других документов которые делают движения по тем же регистрам ?

1) если у вас файловая база - уменьшите объем базы - найдите в своей файловой базе самые большие таблицы - начните свертку с них - для файловых баз размер имеет значение
2) если у вас клиент-серверная база, то сами решайте - нужна ли вам свертка. Подокументно - нужно когда технологическое окно такое, что не успеваете удалить все документы (и реализации, и поступления) за один раз.
6. RustIG 1720 04.04.24 09:06 Сейчас в теме
(1)
Почему временные док Корректировок - не удалить бы сразу непосредственно ?

Думал об этом - пока надо оставить, чтобы у людей было понимание, что происходит, и чтобы не было ощущения "фокуса". Добавлю опцию "удалять промежуточные корректировки".


(1)
Да Табличные части очищены - но эти все документы помеченные на уд будут висеть же - т.к на них будут ссылки .

Да, пож-та - зависит от вашей задачи - ссылки можно заменить на какой-то документ, или же оставьте: сами ссылки не будут занимать много места, поскольку таких документов должно остаться мало после свертки.
11. RustIG 1720 05.04.24 14:01 Сейчас в теме
(1) просто отключите регистр ПартииТоваровНаСкладах и ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов, и все. Тогда информация по этим регистрам исчезнет по документам за выбранный период. Это самый простой способ.
12. RustIG 1720 05.04.24 14:58 Сейчас в теме
(11)Дополню свой ответ. Если тех.окно малое - то сворачиваем "как есть". Когда полностью свернули (за несколько итераций, несколько дней) можно применить классическую свертку - использовать спец. документ, например "Оприходование товаров" для выравнивания остатков по регистрам ТоварыНаСкладах и ПартииТоваровНаСкладах. Вот такой симбиоз я вижу.
7. Tarlich 116 04.04.24 09:37 Сейчас в теме
Ну еще из пожеланий - добавить удаление возможных помеченных документов - этот процесс может быть по времени дольше чем сама свертка , а из вершины чуда будет добавить удаление неиспользуемых справочников (хотя бы основные - номенклатура и контрагенты ) -))
8. RustIG 1720 04.04.24 09:50 Сейчас в теме
(7) все это прекрасно, что вы предлагаете. :)
Думаю, рано или поздно - все это появится в обработке для обычных и управляемых форм.

...В моей истории была файловая база, которая прирастала каждую неделю, и оставалось 1,5 месяца до "Апокалипсиса файловой базы", а технологическое окно не позволяло провести никакую классическую свертку. "Соль" представленной обработки - как раз уложиться в любое технологическое окно.
У вас только 2 часа по вечерам? - пож-та!
У вас одно вос-е в неделю? - пож-та!
В таком режиме тратить время на удаление помеченных в коротком тех. окне - это значит неправильно распределять предоставленное время тех. окна.
Поэтому изначально обработка заточена на минимум действий для достижения максимум результата в предложенных обстоятельствах.
Все, что вы предложили - можно делать во время работы пользователей, то есть не зависимо от тех. окна.
user2041697; support; Andreev.a; +3 Ответить
9. Tarlich 116 04.04.24 12:16 Сейчас в теме
(8) А вот с УФ может быть все не так - там и дата проведения может быть не равна дате документов и движения могут делать справочники
10. RustIG 1720 04.04.24 13:08 Сейчас в теме
13. RustIG 1720 08.04.24 15:17 Сейчас в теме
В моем алгоритме пока не используется пакетная обработка документов. В этой связи, есть где ускорить алгоритм - просто применить пакетную обработку документов (наработки по которой я применил в обработке удаления документов из другой своей публикации).
14. RustIG 1720 11.04.24 13:56 Сейчас в теме
11-04-2024г. Обновил алгоритм сворачивания записей по регистрам накопления. Убрал (а точнее закомментировал для истории) сворачивание с учетом видов движения "приход"/"расход". Например, для регистра ПартииТоваровНаСкладах результат сворачивания по такому принципу искажает исходную информацию. А для регистра ТоварыНаСкладах - в принципе подходит, но в общем случае закомментировал дополнительное сворачивание.
15. RustIG 1720 12.04.24 12:23 Сейчас в теме
Свертка базы не заканчивается на предложенной обработке.
К примеру есть документы в УТ "Закрытие заказов покупателей" - в табличной части которых заказы по разным организациям. На мой взгляд, это упущение и недоработка разработчиков типовых конфигураций. Типовые конфигурации надо разрабатывать так, чтобы легко было сворачивать остатки.
Так вот, документ "Закрытие заказов покупателей" не только не содержит разреза по Организации, но и содержит в табличной части заказы по всем организациям. Внедренцы сталкиваются с тем, что по данному документу-регистратору нельзя будет свернуть остатки в разрезе только одной Организации.
Сейчас сворачиваю базу - предложенная обработка помогает, но не закрывает потребности. Очень много приходится дополнительно программировать вспомогательных обработок.
16. RustIG 1720 18.04.24 12:21 Сейчас в теме
Удаление документов из базы по Организации - можно рассматривать как задачу по свертке, точнее частичной свертке. Есть документы, которые имеют реквизит "Организация", но делают движения по регистрам без разреза (без измерения) "Организация". Самый простой пример - это Реализация товаров - делает записи по регистру ПартииТоваровНаСкладах.
То есть просто так мы не можем удалить Реализацию по Организации - полетят остатки по регистру ПартииТоваров.
Оставьте свое сообщение