Свертка нетиповой 1С базы #805372


#0 by 247tsm
Добрый день, знатоки 1с83, Понадобилось нашему директору ежемесячно чистить базу - удалять (от греха подальше) все прошлые документы - документы до начала текущего месяца. Я погуглил, но, к сожалению, так и не нашел подходящую обработку, т.к. они все заточены под определенные конфигурации или платные. Итак, вкратце, задача такая: 1. Есть самописная конфигурация - 1с83 - управляемое приложение. 2. В ней куча разных регистров, в т.ч и бухгалтерии. 2. Нужно на начало месяца удалять все документы (приход, перемещение, расход...), оставляя лишь остатки по всем регистрам, включая бухгалтерию. Стартмани у меня нет, поэтому нужна бесплатная обработка. Буду очень признателен и просто за конкретный код процедуры для сохранения остатков одного регистра (например, в неком документе или еще как-нибудь) и его последующей очистки, а я тогда смогу, наверно, тупо размножить ее для каждого регистра или сделать процедуру с передачей регистра через параметры. Большое спасибо.
#1 by mehfk
Бесплатный обработки создаются самостоятельно в режиме конфигуратора.
#2 by 247tsm
Думаю, на свете не перевелись еще добрые люди.
#3 by mehfk
Вместо з/п тебе твой босс "спасибо" говорит?
#4 by Смотрящий
Не перевелись, но рыночный оскал заставляет скалиться в ответ
#5 by mehfk
Я бы брал свертку с ИТС и уже ее бы дорабаывал под себя.
#6 by 247tsm
значит, рынок - зло
#7 by Смотрящий
Догада ... Плановую похоронили - жрите чо дают
#8 by Cyberhawk
"ежемесячно чистить базу - удалять (от греха подальше) все прошлые документы - документы до начала текущего месяца" // Зачем тогда вообще база?
#9 by Смотрящий
обычно три месяца держат - остальное в архивную сливают
#10 by Cyberhawk
Такое могут позволить только те, кому документы-объекты БД из прошлых периодов не нужны
#11 by 247tsm
По секрету - а если он не хочет показывать "левый" товар? Три месяца ждать не "комфортно".
#12 by 247tsm
ему не нужны прошлые документы. Тем более, что перед сверткой можно делать архив
#13 by Смотрящий
Все вводом остатков доработанных разруливается. Надо что то совсем уж до штуки/копейки посмотреть - лезут в архивную
#14 by Cyberhawk
Ты что-то напутал. Никакая свертка не решает задачу удаления данных из базы.
#15 by 247tsm
А если свертка не чистит базу, зачем она нужна?
#16 by Cyberhawk
Свертка решает единственную возложенную на нее задачу - уменьшение размера, занимаевого БД на диске. В основном за счет свертки _регистров_, а никакой не "базы".
#17 by Смотрящий
Эмммм ... Просвети про это "Никакая свертка не решает задачу удаления данных из базы"
#18 by Cyberhawk
Свертка = свертка регистров. Остального универсального не существует, поэтому и зваться сверткой оно не может.
#19 by 247tsm
т.е. в базе остаются все документы за 10 лет?
#20 by 247tsm
А что занимает больше места: записи регистров или документы?
#21 by NorthWind
так свертка в обычном понимании действительно не удаляет документы. Она очищает регистры. Документы все остаются для просмотра и распечатки, только проводить их нельзя, чтобы не создавались движения в "свернутом" периоде.
#22 by NorthWind
То что требуется автору - это совершенно не типовая свертка. Ему требуется автоматизировать ввод остатков в чистую базу
#23 by Cyberhawk
Конечно остаются, ведь они сидят в движениях регистров, в т.ч. свернутых. Документы никакая свертка трогать не должна, ибо сворачивать можно вообще только какой-то один жирный регистр.
#24 by Cyberhawk
Так это зависит от дерева метаданных уже. Смотрится на каждой базе индивидуально перед принятием решения, а что же, собственно, надо сворачивать для уменьшения ее размера
#25 by 247tsm
согласен, можно задачу сформулировать и так.
#26 by NorthWind
то бишь надо из старой базы в XML или еще куда выгрузить остатки, а потом автоматически создать в новой чистой базе документы ввода остатков. Задача эта под каждую базу решается индивидуально, никакого общего механизма тут быть не может.
#27 by h-sp
ну а зачем сворачивать каждый месяц? Это глупо. И очень дорого. Лучше например создать базу на флешке, и флешку на ночь сдавать в задний карман брюк директора.
#28 by 247tsm
А можно сделать универсальный регистратор и в цикле пройтись по всем регистрам, определить остатки и зафиксировать их этим регистратором?
#29 by Cyberhawk
И все равно это не будет универсально, тем более если регистратор "сделать". Алгоритмы проведения, например, в куче мест заточены под тип регистратора и его реквизиты.
#30 by 247tsm
А если внезапно в магазин приходят "люди в черном" и забирают комп с флешкой, где вся база?
#31 by Смотрящий
(18, 21) Ну а как же парадигма типовых "нет движений - нет и документов" ?
#32 by 247tsm
А зачем проводить универсальный документ-регистратор? Ведь можно движения создать программно и запретить перепроводить документ-регистратор. Или я что-то не то говорю?
#33 by NorthWind
ну, парадигма парадигмой, а жизнь она "ширее" парадигм :)
#34 by 247tsm
Движения это записи в регистре. Почему нельзя использовать метаданные, чтобы пробежаться по всем регистрам, вычислить остатки, почистить регистр и записать в него остатки, и где в качестве регистратора будет некий документ-регистратор? Вот мне бы пример такого цикла, или скорее там будут вложенные циклы.
#35 by NorthWind
инфостарт вам в помощь, там такое попадается. Вот к примеру
#36 by NorthWind
хотя это под семерку, прошу прощения
#37 by 247tsm
но тогда нужно строго-настрого запретить перепроводить старые оставшиеся в базе документы. Хотя, по-моему, удалять только движения - это полумера.
#38 by NorthWind
это делается автоматически. Устанавливается специальный признак, и документ не проводится ни при каких обстоятельствах.
#39 by Смотрящий
Документы прошлых периодов после свертки базы _надо удалять_.
#40 by Смотрящий
(+39) Чистятся справочники от старой информации (v7v8), снижается нагрузка на полнотекстовый поиск (v8), режется общий размер базы. Исключается вариант постанализа данных недобросовестными сотрудниками (засланными казачками) и т.д.
#41 by 247tsm
Но всё же. Кто-то может показать код: используя метаданные, пробежаться по всем регистрам, вычислить остатки по регистру, почистить регистр и записать в него остатки на заданную дату, а в качестве регистратора будет некий документ-регистратор.
#43 by 247tsm
А насколько страшна или неправильна идея замены всех регистраторов всех регистров прошлого периода на "универсальный регистратор"? Может есть какие-нибудь подводные камни? Ведь тогда не будут видны документы и проверяющим не к чему придраться. Хотя база при этом не уменьшится.
#44 by 247tsm
Соврал, база уменьшится за счет удаления старых документов.
#45 by 247tsm
Т.е., 1) заменяем регистраторы всех регистров до определенной даты на один и тот же "общий" регистратор 2) удаляем без боязни документы до даты "свертки" (т.к. они уже не являются регистраторами) Какие подводные камни?
#46 by Amra
Подводные камни? Убитая база. На документы ссылки есть не только как на регистраторы, но и в измерениях регистров - в партиях товаров, во взаиморасчетах по документам
#47 by h-sp
проверяющим есть с чему придраться. Они сразу увидят, что нет предыдущих месяцев. Скажут, ну и где?
#48 by 247tsm
а кто сказал, что в базе обязательно должны храниться все документы? Всегда есть отговорка: программа написана так, что хранятся только документы текущего месяца, а прошлые - смотрите бумажные документы.
#49 by h-sp
ну тут вы вообще чудите. Проверяющие проверяют по бумажным документам. С какого бодунам они вдруг решат полезть в базу? Да и кто им даст базу?
#50 by 247tsm
Тогда к чему ?
#51 by h-sp
это к "не будут видны документы и проверяющим не к чему придраться"
#52 by Cyberhawk
Я имел в виду, что алгоритмы проведения типовых регистраторов заточены на всякие там проверки, что предыдущие записи сделаны таким-то документом, и на твой "универсальный регистратор" могут быть не рассчитаны. В типовых таких примеров масса.
#53 by Cyberhawk
Так движения-то есть (останутся), в свойствах которых и сидят ссылки на те самые документы, движения которых вероятно и буду свернуты. Но сами-то ссылки останутся ) Поэтому после свертки для вычищения нужно, например, те же документы расчетов заменять на какой-нибудь "подложный" новый документ. А потом вдруг окажется, что какой-нибудь алгоритм проведения документа оплаты строит таблицу взаиморасчетов, опираясь на реквизиты регистратоа :)
#54 by vadim777
Почитал ветку, и задался вопросом - а стоит ли вообще делать свертку на 8-ке, если документы удалять нельзя? Размер базы то все равно не уменьшится. Даже возрастет немного, на размер документов, формируемых сверткой.
#55 by Cyberhawk
Свертку жирных регистров как раз и делают, чтобы размер базы уменьшился. А ты что-то путаешь.
#56 by Рэйв
Для "сокрытия" ненужных телодвижений текущую базу превращают в черную, а рядом кладут белую, куда перегружают только белые и пушистые данные. а свертка - это дело сугубо техническое, к учету мало имеющее отношение
#57 by nicxxx
Да это у тебя и так практически код. Что там сложного? Ты сам-то программист или кто?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С