- IT
- Cancel
Столкнулся с неприятной проблемой: в одной из баз «Бухгалтерский учет 4.5», файл с бухгалтерскими итогами достиг 2 гигабайт. Естественно, ни один документ провести не получается и свернуть базу стандартной обработкой wrap.ert — тоже. При любом пересчете бухгалтерских итогов появлялось сообщение об ошибке записи в 1SBKTTL.DBF (Codebase Error #: -120. Writing to file).
Проблема усугублялась ещё и тем что в этой базе было более 300 тысяч единиц номенклатуры и несколько десятков тысяч документов за два с половиной года. В общем база данных приличного размера.
Так как у меня под рукой был настроеный сервер с MS SQL, то самым простым способом мне показалось «выгрузить данные», загрузить их в SQL, а уже там свернуть той самой стандартной wrap.ert. Более того, я уже так делал пару раз.
Но с SQL-базой не вышло. При загрузке номенклатуры, примерно на 270800-й позиции, выдавалась «ошибка загрузки данных» без объяснения подробностей. А разобраться, какой же там непечатный символ (или ещё что-нибудь) в 840-мегабайтном файле выгрузки не хочет «съесть» SQL, просто не реально.
Точно так же (по непонятным причинам), не сработал и метод с использованием kernel33.dll — файлы отказались расти больше двух гигабайт.
Пришлось решать задачу альтернативными методами.
Для начала нужно было сделать так чтобы 1С ничего не писала в файл с итогами при свёртке базы. Ведь данные об итогах добавляются при записи новых «операций вручную» с остатками. Пришлось доработать wrap.ert, заменив «операции» на непроведённые «бухгалтерские справки». Файл итогов перестал увеличиваться и все документы по вводу остатков сформировались.
Но это ещё не всё! Обработка свёртки начала удалять старые документы и тут внезапно появилась знакомая ошибка записи в 1SBKTTL.DBF. При удалении или распроведении документов в файл бухгалтерских итогов 1С всё равно что-то пишется. Оказалось для того чтобы этого не происходило, нужно «установить расчёт» (управление бухгалтерскими итогами) куда-нибудь назад, чтобы удаляемые документы были позже по дате проведения.
Помечать на удаление несколько десятков тысяч документов пришлось самописной обработкой. Ну а дальше уже всё легко: пометка на удаление всей номенклатуры, удаление помеченых объектов, снятие пометки удаления с оставшейся номенклатуры, проведение бухгалтерских справок с проводками ввода остатков, полный пересчёт итогов и упаковка таблиц базы данных.
На весь этот «путь к успеху», в моём случае, было потрачено несколько суток, но это в основном из-за большого количества номенклатуры и из-за метода «научного тыка».
spaiker
11.11.10
✎
08:45
При открытии бызв и попытка перенести остатки на слдедующий месяц возникает ошибка Codebase Error -120. Как исправить?
Характеристика базы:
1с.Тис 7
Тип: файловая
Объем: >5Гб
Табуретко
11.11.10
✎
08:47
ТИИ?
andrewks
11.11.10
✎
08:48
dbf/cdx больше гига есть?
spaiker
11.11.10
✎
08:49
RG9480.DBF весит 2 гига и на него и ругаетьтсяь пишет типа неможет произвести чтение
Табуретко
11.11.10
✎
08:51
при таких обьемах наверное следует хотябы уменьшить период хранения остатков
andrewks
11.11.10
✎
08:51
(3) дотянул. надо было или на sql переходить, или базу резать. теперь патч надо ставить
ДенисЧ
11.11.10
✎
08:52
Снеси все rg* и пересчитай итоги. Должно немного уменьшиться.
spaiker
11.11.10
✎
08:52
какой патч? скажите где взять плиз
spaiker
11.11.10
✎
08:53
ДенисЧ а поподробнее пожалйста можно?
ДенисЧ
11.11.10
✎
08:54
(8) куда уж подробней…
Удали из каталога базы все файлы rg*.*
зайди в конфигуратор — ТиИ — пересчет итогов
Табуретко
11.11.10
✎
08:54
(9)+бекап
andrewks
11.11.10
✎
08:56
+(9) но поможет это ненадолго. срочно надо или резать, или на sql, т.к. патч, насколько я читал, пашет не идеально
spaiker
11.11.10
✎
08:57
если удалить эти файлы данные останутьс целыми?
andrewks
11.11.10
✎
08:57
(12) да
Табуретко
11.11.10
✎
08:57
это файлы хранения регистров… они востановятся при ТИИ
Табуретко
11.11.10
✎
08:58
но лишний бэкап не будет лишним (c)
spaiker
11.11.10
✎
09:01
Спасибо всем
filh
11.11.10
✎
09:04
RA9480.DBF сколько весит?
spaiker
11.11.10
✎
09:04
2 гига
andrewks
11.11.10
✎
09:05
filh
11.11.10
✎
09:05
(18) т.е. у тебя RG9480.DBF и RA9480.DBF по 2 гига?
spaiker
11.11.10
✎
09:05
RA9480.DBF 58 мб
filh
11.11.10
✎
09:09
(21) ну…у тебя регистр не закрывается.
filh
11.11.10
✎
09:09
+22
что за регистр, посмотри в dd
spaiker
11.11.10
✎
09:11
где посмотреть? что то я запутался если чесно
andrewks
11.11.10
✎
09:12
(22) +100000
filh
11.11.10
✎
09:13
(24) открой файл 1Cv7.DD и найди строчки с T=RA9480
andrewks
11.11.10
✎
09:13
(24) 1cv7.dd найди T=RA9480
spaiker
11.11.10
✎
09:13
а чем фал открыть?
andrewks
11.11.10
✎
09:13
(28) 
ДенисЧ
11.11.10
✎
09:14
нотепадом.
Или фаром. Или тоталкомандиром.
spaiker
11.11.10
✎
09:15
#==TABLE no 339 : Регистр (Дв.) КДРДокументы
# Name |Descr |Type[A/S/U]|DBTableName|ReUsable
T=RA9480 |Регистр (Дв.) КДРДокументы |A |RA9480 |1
#——Fields——-
# Name |Descr |Type|Length|Precision
F=IDDOC |ID Document’s |C |9 |0
F=LINENO |LineNo |N |4 |0
F=ACTNO |Action No |N |6 |0
F=DEBKRED |Flag Debet/Kredit |N |1 |0
F=SP9474 |(P)СФ |C |13 |0
F=SP9475 |(P)Номенклатура |C |9 |0
F=SP9476 |(P)Количество |N |19 |6
F=SP9477 |(P)СуммаБезНДС |N |19 |6
F=SP9478 |(P)СуммаНДС |N |19 |6
F=SP9479 |(P)СуммаОплаченного |N |19 |6
#—-Indexes——
# Name |Descr |Unique|Indexed fields |DBName
I=IDLINE |of IDDOC+LineN|0 |IDDOC,LINENO,ACTNO |IDLINE
#
Табуретко
11.11.10
✎
09:17
Уж точно не типовая ТИС
andrewks
11.11.10
✎
09:18
че у тебя в Рег.КДРДокументы ???
spaiker
11.11.10
✎
09:18
не база полностью нетиповая ..ее писали под нас
andrewks
11.11.10
✎
09:21
(34) таким писателям надо руки пообрывать. опять какую-то структуру сунули в регистр остатков, вместо того чтобы сделать по-человечьи
spaiker
11.11.10
✎
09:22
andrewks
абсолюьно с тобой с этим согласен
filh
11.11.10
✎
09:25
(31) а покажи еще RG9480
spaiker
11.11.10
✎
09:26
#==TABLE no 338 : Регистр КДРДокументы
# Name |Descr |Type[A/S/U]|DBTableName|ReUsable
T=RG9480 |Регистр КДРДокументы |A |RG9480 |1
#——Fields——-
# Name |Descr |Type|Length|Precision
F=PERIOD |Period Registr |D |8 |0
F=SP9474 |(P)СФ |C |13 |0
F=SP9475 |(P)Номенклатура |C |9 |0
F=SP9476 |(P)Количество |N |19 |6
F=SP9477 |(P)СуммаБезНДС |N |19 |6
F=SP9478 |(P)СуммаНДС |N |19 |6
F=SP9479 |(P)СуммаОплаченного |N |19 |6
#—-Indexes——
# Name |Descr |Unique|Indexed fields |DBName
I=PROP |PERIOD+PROP |0 |PERIOD,SP9474,SP9475 |PROP
#
kiruha
11.11.10
✎
09:31
Грубо говоря — у тебя полно остатков вида
Номенклатура Пылесос
Количество 0.00000
СуммаБезНДС 0.00000
СуммаНДС 0.00000
СуммаОплаченного 0.00001
Надо задним числом ввести самописный документ —
обнуляющий все такие остатки с нулевым количеством
например каждые полгода
filh
11.11.10
✎
09:34
(38) а что за отчеты формируете по «кадровые документы» или еще как…
andrewks
11.11.10
✎
09:34
(39) не факт что остатки нулевые и не факт что это поможет. скорее всего тут просто ошибочно выбрали рег.остатков для какой-то хни, которую надо было по-другому хранить
Шурик71
11.11.10
✎
09:40
Фигня какая-то. для того, чтобы регистр с движениями 58 мб и 2 измерениями имел остатки в 2 гб… считать неохота, но на глазок лет 25 понадобится, при этом, чтобы совсем ничего эти 25 лет не закрывать.
Так что скорее всего, какой-то сбой. Удалить rg + пересчет итогов должен помочь.
spaiker
11.11.10
✎
09:48
я удалил все R*.*. сделал пересчет итогов..помогло…
Табуретко
11.11.10
✎
09:51
и каков теперь вес указанных файлов? не корысти ради, интереса для…
Шурик71
11.11.10
✎
09:52
Хотя не совсем, прикинул — за лет эдак 7-8 работы реально соорудить (3 года это теоретический вариант, когда эти 56 мб набили в начале и забыли, и они каждый месяц падают себе из RA на RG)
spaiker
11.11.10
✎
09:53
все R весят 254 кб
andrewks
11.11.10
✎
09:54
(46) O_O
Табуретко
11.11.10
✎
09:54
чето както оно даже подозрительно…
Шурик71
11.11.10
✎
09:54
(43) все R*.* или RG*.* ?
Если RA удалил — то восстанавливайся из архива.
Ну или перепроводи всю базу 
Шурик71
11.11.10
✎
09:56
Жесть… даже совет в форуме прочитать правильно не может…
filh
11.11.10
✎
09:56
(46) перепроводи доки, либо бекап
filh
11.11.10
✎
09:59
+51
лучше бекап, т.к. не факт, что не проводили доки взад.
1Сергей
11.11.10
✎
10:14
(52) он уже все регистры грохнул. Только бекап спасет теперь
andrewks
11.11.10
✎
10:15
(53) не только. перепроведение тоже рулит. правда, времени уйдет…
Табуретко
11.11.10
✎
10:21
(15)+100 если читал вниматочно…
kiruha
11.11.10
✎
10:26
Пригласите спеца — сами похоже не разрулите
Эльниньо
11.11.10
✎
10:30
Форум надо почитывать периодически, дабы на грабли не наступать.
Перейти к контенту
Если база данных 1С Предприятие 7.7 используется в файловом варианте (DBF), а объем регистрируемых данных велик, то рано или поздно её придётся уменьшать. Один из самых быстрорастущих файлов в базе данных — это 1SBKTTL.DBF. Этот файл содержит рассчитанные бухгалтерские итоги остатков и оборотов по синтетическим счетам и объектам аналитики. Когда размер файла достигает 1.99ГБ (2 147 440 385 байт), начинают сыпаться ошибки: error # -120, error # -110, error # -100, error # -70, error # -60 и т.п. Подробнее про ошибки…
Ошибки появляются при проведении документов или пересчёте бухгалтерских итогов. Программа пытается произвести запись в файл dbf, а особенности файловой системы не позволяют ей это сделать. Если размер файла «подкрадывается» к двум гигабайтам — рекомендуется произвести «свёртку» базы данных с помощью обработки WRAP.ert. При выполнении это процедуры — остатки свернуться на начало отчётного периода (желательно на начало года). Предварительно обязательно сделайте архивную копию, так как эта процедура не обратимая. Если базу «резать» по каким-то причинам нельзя, то можно воспользоваться сторонним решением «Kernel3x». Применение этой компоненты решает эту проблему, однако используете Вы её на свой страх и риск!
Для профилактики и уменьшения размера файла 1SBKTTL.DBF, рекомендую периодически выполнять следующие операции:
1) Выгрузка — загрузка информационной базы данных1С. Запускаем 1С в режиме «Конфигуратор». Не забываем выделить нужную базу в списке. Заходим в Меню -> Администрирование -> Выгрузка данных. Выбираем путь к файлу, в который будет выгружена база. Нажимаем «ОК». Ждём…
После того как база данных будет выгружена, загружаем её из того же(!) файла. Заходим в Меню -> Администрирование -> Загрузка данных. Выбираем путь к файлу, в который будет выгружена база. Нажимаем «ОК». Программа выдаст подтверждающее сообщение «При загрузке данных все существующие данные будут уничтожены! Продолжить выполнение операции?». Нажимаем «Да». Операция длительная. Может занимать до нескольких часов. Зависит от общего объема информационной базы данных и железа, на котором Вы выполняете операцию.
2) После выгрузки-загрузки информационной базы — рекомендую выполнить полное тестирование и исправление. Запускаем 1С в режиме «Конфигуратор». Не забываем выделить нужную базу в списке. Заходим в Меню -> Администрирование -> Тестирование и исправление. Устанавливаем все признаки. Птичку ставим на «Тестирование и исправление». Нажимаем «Выполнить». Процедура длительная — ждём.
После выполнения всех операций заходим в каталог нашей базы данных и смотрим на размер файла 1SBKTTL.DBF. В нашем примере, он уменьшился более чем в два раза. Это позволит нам вести учёт еще некоторое время без принятия дополнительных мер. На скриншоте видно, что уменьшился не только 1SBKTTL.DBF, но и другие файлы DBF (1SENTRY.DBF, 1SACCSEL.DBF, DT50647.DBF, 1SCONST.DBF и прочие).
Помните, что профилактические меры в любой среде обходятся намного экономичние и занимают меньше временных и материальных затрат, чем последующее исправление и восстановление. База данных 1С это постоянно растущий механизм, за которым нужно наблюдать, исправлять ошибки, производить регламентные задания. Если Вам нужен специалист по 1С, который выполнит эти и любые другие работы, можете обратиться через контактную форму.
Если Вы хотите заказать услугу «Выполнение регламентных операций (чистка, свёртка, исправление ошибок) и администрирование 1С» (код 2.9). Пожалуйста, ознакомьтесь с прайс-листом и оформите заявку через контактную форму.
Copyright©, «Программист 1С в г.Минске», 10.10.2015
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Показывать по
10
20
40
сообщений
Новая тема
Ответить
Eustas
Дата регистрации: 17.06.2008
Сообщений: 1
База на DBF.<br><br>Не дает проводить накладные. При проводке пишет:<br>Error # : -120<br>writing to file<br>D:\…\1SENTRY.DBF<br><br>и выбрасывает из 1С.
QDeSnic
Дата регистрации: 12.04.2007
Сообщений: 98
1. Проверьте доступ на папку с базой<br>2. Можно попробовать сделать тестирование и исправление (но не забудте сначала сделать архивную копию)<br>3. Если и это не помогло, то возможно у вас проблемы с жестким диском. Попробуйте сделать так:<br> — В конфигураторе сделайте «Выгрузить данные»<br> — Скопируйте базу в другое место (лучше даже на другой компьютер) и там уже сделайте «Загрузить данные»
creative
Дата регистрации: 24.07.2007
Сообщений: 787
1SENTRY — dbf-ка содержащая проводки.<br><br>Сейчас бьюсь над восстановлением базы в которой как раз с этой ошибки всё и началось.<br>Бух-ия одной конторы давно столкнулась с этой ошибкой, но через раз-два удавалось проводить документ. Когда же ошибка стала критической, то бишь транспорант стал вываливаться при каждой попытке проведения с последующим вылетом из базы, обратились за помощью к нам.<br><br>Результат:<br>Из-за ошибки возникшей в файловой системе где-то месяцев 6 назад происходило постепенное разрешение структуры ряда dbf-ок.<br>В конечном итоге при попытке тестирования выяснилось что рухнули файлы 1Sentry, 1Soper, 1Saccs<br>то бишь, содержимое операций, содержимое проводок и план счетов.<br>Попытка восстановить базу штатными средствами приводила к тому что из за нарушения структуры ссылок система не смогла восстановить связи и просто напросто очищала всю информацию об операциях, перепроведение документов приводило к сообщению о том что «Указанный в проводке счёт не принадлежит указанному плану счетов»<br><br>Решение:<br>Создал пустую базу.<br>Нашёл неплохую обработочку при помощи которой можно выгрузить документы и связанные с ними записи справочников.<br>Где нашёл не помню, вроде как с инфостарта ссылочка привела<br>имя архива perenos_ole_126.zip<br>Обработка работает через OLE что существенно ускоряет процесс.<br>Машинка слабоватая конечно, но за 10 часов обработка перенесла мне данные (причём без «неиспользующихся» записей справочников) за 8 лет плодотворной работы (примерный объём 20-25 документов в день)<br><br>Если штатные процедуры конфигуратора не помогут, советую воспользоваться данной методикой.<br>Рекомендую отключить опцию проведения при выгрузке (очень мешает из-за наличия учётных косяков в базе) А после полной загрузки выполнить проведение при помощи групповой обработки документов.<br><br>З.Ы. Кстати вот ссылочка, нашёл снова, может кому пригодится http://www.infostart.ru/profile/987/projects/1120/
Показывать по
10
20
40
сообщений
Читают тему:
При открытии бызв и попытка перенести остатки на слдедующий месяц возникает ошибка Codebase Error -120. Как исправить? Характеристика базы: 1с.Тис 7
dbf/cdx больше гига есть?
RG9480.DBF весит 2 гига и на него и ругаетьтсяь пишет типа неможет произвести чтение
при таких обьемах наверное следует хотябы уменьшить период хранения остатков
дотянул. надо было или на sql переходить, или базу резать. теперь патч надо ставить
Снеси все rg* и пересчитай итоги. Должно немного уменьшиться.
какой патч? скажите где взять плиз
ДенисЧ а поподробнее пожалйста можно?
куда уж подробней… Удали из каталога базы все файлы rg*.* зайди в конфигуратор — ТиИ — пересчет итогов
+ но поможет это ненадолго. срочно надо или резать, или на sql, т.к. патч, насколько я читал, пашет не идеально
если удалить эти файлы данные останутьс целыми?
это файлы хранения регистров… они востановятся при ТИИ
но лишний бэкап не будет лишним (c)
RA9480.DBF сколько весит?
пока идет ТИИ почитай-ка:
т.е. у тебя RG9480.DBF и RA9480.DBF по 2 гига?
ну…у тебя регистр не закрывается.
+22 что за регистр, посмотри в dd
где посмотреть? что то я запутался если чесно
открой файл 1Cv7.DD и найди строчки с T=RA9480
нотепадом. Или фаром. Или тоталкомандиром.
#==TABLE no 339 : Регистр (Дв.) КДРДокументы # Name |Descr |Type[A/S/U]|DBTableName|ReUsable T=RA9480 |Регистр (Дв.) КДРДокументы |A |RA9480 |1 #——Fields——- # Name |Descr |Type|Length|Precision F=IDDOC |ID Document’s |C |9 |0 F=LINENO |LineNo |N |4 |0 F=ACTNO |Action No |N |6 |0 F=DEBKRED |Flag Debet/Kredit |N |1 |0 F=SP9474 |(P)СФ |C |13 |0 F=SP9475 |(P)Номенклатура |C |9 |0 F=SP9476 |(P)Количество |N |19 |6 F=SP9477 |(P)СуммаБезНДС |N |19 |6 F=SP9478 |(P)СуммаНДС |N |19 |6 F=SP9479 |(P)СуммаОплаченного |N |19 |6 #—-Indexes—— # Name |Descr |Unique|Indexed fields |DBName I=IDLINE |of IDDOC+LineN|0 |IDDOC,LINENO,ACTNO |IDLINE #
че у тебя в Рег.КДРДокументы ???
не база полностью нетиповая ..ее писали под нас
таким писателям надо руки пообрывать. опять какую-то структуру сунули в регистр остатков, вместо того чтобы сделать по-человечьи
andrewks абсолюьно с тобой с этим согласен
#==TABLE no 338 : Регистр КДРДокументы # Name |Descr |Type[A/S/U]|DBTableName|ReUsable T=RG9480 |Регистр КДРДокументы |A |RG9480 |1 #——Fields——- # Name |Descr |Type|Length|Precision F=PERIOD |Period Registr |D |8 |0 F=SP9474 |(P)СФ |C |13 |0 F=SP9475 |(P)Номенклатура |C |9 |0 F=SP9476 |(P)Количество |N |19 |6 F=SP9477 |(P)СуммаБезНДС |N |19 |6 F=SP9478 |(P)СуммаНДС |N |19 |6 F=SP9479 |(P)СуммаОплаченного |N |19 |6 #—-Indexes—— # Name |Descr |Unique|Indexed fields |DBName I=PROP |PERIOD+PROP |0 |PERIOD,SP9474,SP9475 |PROP #
Грубо говоря — у тебя полно остатков вида Номенклатура Пылесос Количество 0.00000 Надо задним числом ввести самописный документ — обнуляющий все такие остатки с нулевым количеством например каждые полгода
а что за отчеты формируете по «кадровые документы» или еще как…
не факт что остатки нулевые и не факт что это поможет. скорее всего тут просто ошибочно выбрали рег.остатков для какой-то хни, которую надо было по-другому хранить
Фигня какая-то. для того, чтобы регистр с движениями 58 мб и 2 измерениями имел остатки в 2 гб… считать неохота, но на глазок лет 25 понадобится, при этом, чтобы совсем ничего эти 25 лет не закрывать. Так что скорее всего, какой-то сбой. Удалить rg + пересчет итогов должен помочь.
я удалил все R*.*. сделал пересчет итогов..помогло…
и каков теперь вес указанных файлов? не корысти ради, интереса для…
Хотя не совсем, прикинул — за лет эдак 7-8 работы реально соорудить (3 года это теоретический вариант, когда эти 56 мб набили в начале и забыли, и они каждый месяц падают себе из RA на RG)
чето както оно даже подозрительно…
все R*.* или RG*.* ? Если RA удалил — то восстанавливайся из архива. Ну или перепроводи всю базу 
Жесть… даже совет в форуме прочитать правильно не может…
перепроводи доки, либо бекап
+51 лучше бекап, т.к. не факт, что не проводили доки взад.
он уже все регистры грохнул. Только бекап спасет теперь
не только. перепроведение тоже рулит. правда, времени уйдет…
+100 если читал вниматочно…
Пригласите спеца — сами похоже не разрулите
Форум надо почитывать периодически, дабы на грабли не наступать.
Тэги:
Комментарии доступны только авторизированным пользователям





