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