Вход | Регистрация


1С:Предприятие ::

Метки: 

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

Я
   247tsm
 
24.09.17 - 14:35
Добрый день, знатоки 1с83,
Понадобилось нашему директору ежемесячно чистить базу - удалять (от греха подальше) все прошлые документы - документы до начала текущего месяца. Я погуглил, но, к сожалению, так и не нашел подходящую обработку, т.к. они все заточены под определенные конфигурации или платные.
Итак, вкратце, задача такая:
1. Есть самописная конфигурация - 1с83 - управляемое приложение.
2. В ней куча разных регистров, в т.ч и бухгалтерии.
2. Нужно на начало месяца удалять все документы (приход, перемещение, расход...), оставляя лишь остатки по всем регистрам, включая бухгалтерию.

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

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

используя метаданные, пробежаться по всем регистрам, вычислить остатки по регистру, почистить регистр и записать в него остатки на заданную дату, а в качестве регистратора будет некий документ-регистратор.
   247tsm
 
43 - 24.09.17 - 16:20
(42) А насколько страшна или неправильна идея замены всех регистраторов всех регистров прошлого периода на "универсальный регистратор"? Может есть какие-нибудь подводные камни?
Ведь тогда не будут видны документы и проверяющим не к чему придраться.
Хотя база при этом не уменьшится.
   247tsm
 
44 - 24.09.17 - 16:22
(42) Соврал, база уменьшится за счет удаления старых документов.
   247tsm
 
45 - 24.09.17 - 16:26
(42) Т.е., 
1) заменяем регистраторы всех регистров до определенной даты на один и тот же "общий" регистратор
2) удаляем без боязни документы до даты "свертки" (т.к. они уже не являются регистраторами)

Какие подводные камни?
   Amra
 
46 - 24.09.17 - 16:35
(45) Подводные камни? Убитая база. На документы ссылки есть не только как на регистраторы, но и в измерениях регистров - в партиях товаров, во взаиморасчетах по документам
   h-sp
 
47 - 24.09.17 - 16:51
(43) проверяющим есть с чему придраться. Они сразу увидят, что нет предыдущих месяцев. Скажут, ну и где?
   247tsm
 
48 - 24.09.17 - 17:15
(47) а кто сказал, что в базе обязательно должны храниться все документы? Всегда есть отговорка: программа написана так, что хранятся только документы текущего месяца, а прошлые - смотрите бумажные документы.
   h-sp
 
49 - 24.09.17 - 17:21
(48) ну тут вы вообще чудите. Проверяющие проверяют по бумажным документам. С какого бодунам они вдруг решат полезть в базу? Да и кто им даст базу?
 
 Рекламное место пустует
   247tsm
 
50 - 24.09.17 - 17:28
(49) Тогда к чему (47)?
   h-sp
 
51 - 24.09.17 - 17:49
(50)  (47) это к (43) "не будут видны документы и проверяющим не к чему придраться"
   Cyberhawk
 
52 - 26.09.17 - 11:36
(32) Я имел в виду, что алгоритмы проведения типовых регистраторов заточены на всякие там проверки, что предыдущие записи сделаны таким-то документом, и на твой "универсальный регистратор" могут быть не рассчитаны. В типовых таких примеров масса.
   Cyberhawk
 
53 - 26.09.17 - 11:38
(31) Так движения-то есть (останутся), в свойствах которых и сидят ссылки на те самые документы, движения которых вероятно и буду свернуты. Но сами-то ссылки останутся ) Поэтому после свертки для вычищения нужно, например, те же документы расчетов заменять на какой-нибудь "подложный" новый документ.
А потом вдруг окажется, что какой-нибудь алгоритм проведения документа оплаты строит таблицу взаиморасчетов, опираясь на реквизиты регистратоа :)
   vadim777
 
54 - 26.09.17 - 11:53
Почитал ветку, и задался вопросом - а стоит ли вообще делать свертку на 8-ке, если документы удалять нельзя? Размер базы то все равно не уменьшится. Даже возрастет немного, на размер документов, формируемых сверткой.
   Cyberhawk
 
55 - 26.09.17 - 12:09
(54) Свертку жирных регистров как раз и делают, чтобы размер базы уменьшился. А ты что-то путаешь.
   Рэйв
 
56 - 26.09.17 - 12:32
(0)Для "сокрытия" ненужных телодвижений текущую базу превращают в черную, а рядом кладут белую, куда перегружают только белые и пушистые данные.

а свертка - это дело сугубо техническое, к учету мало имеющее отношение
   nicxxx
 
57 - 26.09.17 - 13:06
(41) Да это у тебя и так практически код. Что там сложного? Ты сам-то программист или кто?

Для каждого Регистр из Метаданные.Регистры Цикл
 Запрос.Текст = "
Выбрать
   Организация, Контрагент, СуммаОстаток
Из
   Регистр.Остатки(&ДатаОстатков)
";
Рез = Запрос.Выполнить();
Выборка = Рез.Выбрать();
ДокВводаОстатков = Документы.ВводОСтатков.Создать
Пока Выборка.Следующий() Цикл
  новСтр = ДокВводаОстатков.ТабЧасть.Добавить();
  новСтр.Организация = Выборка.Организация;



Список тем форума
Рекламное место пустует Рекламное место пустует
Программист всегда исправляет последнюю ошибку.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует