|   |   | 
| 
 | v7: Бухгалтерия 7.7 переполнилась дбф 1SENTRY.DBF | ☑ | ||
|---|---|---|---|---|
| 0
    
        vin1c 06.04.21✎ 09:33 | 
        Раньше такое бывало, сворачивал базу и все окей.
 Этот раз сложнее, открываю журнал многих документов нет там, базу переиндексировал перед этим, смотрю проводки: проводки есть но они не прицеплены к документам. Смотрю таблицы дбф вьювером: 1SENTRY.DBF,1SCRDOC.DBF,1SJOURN.DBF все на месте (сравнивал с рабочей базой). Новый документ не дает создать. Что могло повредиться? Пробовал выгружать в sql базу, выгрузились только те проводки которые соединены с документами. | |||
| 1
    
        Garykom гуру 06.04.21✎ 09:38 | 
        (0) индексы перескочили?     | |||
| 2
    
        Garykom гуру 06.04.21✎ 09:39 | 
        (1)+ какой номер идет после 9999 если размер поля 4 ? 0000, затем 0001!     | |||
| 3
    
        Ёпрст гуру 06.04.21✎ 10:56 | 
        (0) размер таблички 1SENTRY.DBF какой хоть, для начала ?     | |||
| 4
    
        vin1c 06.04.21✎ 11:45 | 
        Размер 1160 кв.
 Где посмотреть номер 9999? | |||
| 5
    
        vin1c 06.04.21✎ 11:46 | 
        в CDX?     | |||
| 6
    
        VladZ 06.04.21✎ 12:12 | 
        (0) Переходите на восьмерку.     | |||
| 7
    
        ShAV 06.04.21✎ 12:19 | 
        (6) а если клиент напрочь отказывается от v8?     | |||
| 8
    
        Ёпрст гуру 06.04.21✎ 12:28 | 
        (4) это еще далеко до предела. Ставьте заплатку от hogik     | |||
| 9
    
        Ёпрст гуру 06.04.21✎ 12:29 | 
        И если нет доков, то тут проблема не в проводках, а в 1сджоурнал     | |||
| 10
    
        Ёпрст гуру 06.04.21✎ 12:30 | 
        Для начала, удалить все cdx и зайти монопольно. Проверить наличие доков     | |||
| 11
    
        vin1c 06.04.21✎ 13:35 | 
        Разве переиндексация не это делает?     | |||
| 12
    
        vin1c 06.04.21✎ 13:40 | 
        (2) Я заметил одну не хорошую фишку в 1SENTRY.DBF 21год не в конце дбф в просмотрищике показывает а во второй части таблицы     | |||
| 13
    
        vin1c 06.04.21✎ 14:07 | 
        (10) Помогло!!! Я искал сложности. А не ужели переиндексация по новой не создает индексы.     | |||
| 14
    
        vin1c 06.04.21✎ 14:07 | 
        Могу даже денег кинуть за помощь на карту     | |||
| 15
    
        vin1c 06.04.21✎ 14:15 | 
        (8) что за заплатка? размер дбф больше 2хгб может быть?     | |||
| 16
    
        Ёпрст гуру 06.04.21✎ 14:21 | ||||
| 17
    
        Ёпрст гуру 06.04.21✎ 14:21 | 
        Больше 2-х не может, после 1 гб идёт ошибка по чтению в не монопольном режиме.     | |||
| 18
    
        mikecool 06.04.21✎ 14:26 | 
        (13) в свою эпоху 77 в любой непонятной ситуации всегда делал (10) 99% непонятных проблем уходила )     | |||
| 19
    
        VladZ 06.04.21✎ 18:51 | 
        (7) Значит клиенту нужно сделать предложение, от которого невозможно отказаться.     | |||
| 20
    
        tgu82 06.04.21✎ 20:02 | 
        (19) И что это может быть за предложение? )     | |||
| 21
    
        Злопчинский 06.04.21✎ 22:48 | 
        а еще естькакие-то приблуды, которые файло позволяют до 4 Гб держать (вроде вирт?)     | |||
| 22
    
        Ёпрст гуру 06.04.21✎ 23:10 | 
        (21) там свой формат базы будет     | |||
| 23
    
        victuan1 07.04.21✎ 05:05 | 
        (22) Да, вот у меня есть одна нестандартная база - по размеру нескольких dbf подходит к 2 Гигам (RA***.dbf и RG****.dbf). Перевести ее на "вирт" или писать свою процедуру свертки базы?
 Это не ТИС и не Бух, а 1С Предприниматель 7.7 переписанная, она на регистрах. Но что-то штатную обработку свертки для нее я не нашел. Да и сворачивать не особо ее хочется, т.к. расчет она не быстро и возможно скоро станет не нужна (мегабайт через 500-1000) и ее выкинут на помойку. Также у меня по ней ежеквартально используется обработка, которая использует данные за весь период существования базы, а после свертки придется еще и эту обработку переделывать - геморойно очень. | |||
| 24
    
        victuan1 07.04.21✎ 05:07 | 
        (23) Эта база по сути "однопользовательская", я ее использую монопольно, чтобы обойти ошибку 1 гига по чтению, поэтому Kernel3x не использую.     | |||
| 25
    
        Ёпрст гуру 07.04.21✎ 10:53 | 
        (23) просто, для начала, кастрируй числовые ресурсы в регистре. 15.2 переведи в 8.2, например, или еще меньше, тупо найдя макс число в нем+ порядок на запас     | |||
| 26
    
        Ёпрст гуру 07.04.21✎ 10:55 | 
        Все это делать ручками, тип поля любым дбф редактором, мд-ник на пустышке, или перенести таблички регистра куда то, на пустых табличках реструктуризация и готовые подсунуть потом     | |||
| 27
    
        tgu82 07.04.21✎ 15:55 | 
        (26) Хотел убрать измерение на фиг ненужное из регистра партий но в резульатте уменьшил его разрядность до 4.2 и на этом успокоился пока что. теперь буду по использующимся ресурсам уменьшать напрямую через редактор дбф     | |||
| 28
    
        victuan1 08.04.21✎ 17:05 | 
        (26) А почему штатно через конфигуратор нельзя изменить размеры ресурсов и пусть лопатит?     | |||
| 29
    
        Ёпрст гуру 08.04.21✎ 17:24 | 
        (28) если есть много, даже не так, если есть оооооочень много свободного времени, делай штатно. Только учти, что на больших (с точки зрения дбф) файлов, штатной реструктуризации ты можешь и не дождаться.     | |||
| 30
    
        Djelf 08.04.21✎ 17:24 | 
        (28) У себя можно. У заказчика долго. Хотя... если заказчик платит почасовую оплату то нужно так делать и у заказчика ;)     | |||
| 31
    
        victuan1 08.04.21✎ 17:28 | 
        (30) Это моя вспомогательная база для моих нужд расчета налогов. Ей пользуюсь раз в квартал, два месяца подряд четыре раза в год эта база стоит в простое %)     | |||
| 32
    
        Ёпрст гуру 08.04.21✎ 17:31 | 
        (31) это не важно, ты просто можешь не дождаться реструктуризации, совсем     | |||
| 33
    
        Djelf 08.04.21✎ 17:39 | 
        Запустить вечерком и проверить утром. А если за часов 10 не смогло, то только как Ёпрст советует.     | |||
| 34
    
        hogik 09.04.21✎ 00:25 | 
        Рекомендую посмотреть: https://infostart.ru/1c/articles/77617/
 «Ошибка "CodeBase Error #: -310" в DBFной версии 1С:Предприятие 7.7» Ошибка возникает при непосредственном удалении записи (в терминах 1С) в таблице с количеством записей более 16777215 штук. | |||
| 35
    
        victuan1 09.04.21✎ 06:58 | 
        (34) Спасибо, вроде такой ошибки не возникало у меня, но я проверю таблицы на кол-во записей.     | |||
| 36
    
        victuan1 09.04.21✎ 07:49 | 
        (34) Проверил - в самых больших таблицах такое кол-во записей:
 1) 9 782 325 2) 7 829 369 3) 5 452 264 4) 2 679 319 | |||
| 37
    
        victuan1 09.04.21✎ 07:50 | 
        (25) А какой утилитой найти макс. число. С ДБФ-вьюерами нет опыта. В утилите "Advantage Data Architect" не нашел как?     | |||
| 38
    
        Djelf 09.04.21✎ 08:07 | 
        (37) Прямым запросом
 
 | |||
| 39
    
        victuan1 09.04.21✎ 08:10 | 
        Нашел чем.
 В принципе думаю, можно 15.2 смело уменьшать до 11.2 | |||
| 40
    
        victuan1 09.04.21✎ 08:11 | 
        это 99 999 999.99     | |||
| 41
    
        Андрей_Андреич naïve 09.04.21✎ 08:13 | 
        (40) Не надеешься добить до ста миллионов?     | |||
| 42
    
        victuan1 09.04.21✎ 08:53 | 
        (41) Это ведь сумма одной сделки. Нет, не надеюсь.     | |||
| 43
    
        Ёпрст гуру 09.04.21✎ 09:03 | 
        (39) минимум, на порядок (лучше на 2) делать больше.
 Еслии пользуешься чёрим запросом, то при вычислении функции можешь нарваться на переполнения разряда. | |||
| 44
    
        Ёпрст гуру 09.04.21✎ 09:03 | 
        Ибо она результат выполнения приводит к точности ииразрчду первого операнда в выражении.     | |||
| 45
    
        victuan1 09.04.21✎ 09:07 | 
        (43) Это на порядок больше.     | |||
| 46
    
        Ёпрст гуру 09.04.21✎ 09:11 | 
        (45) запас, если много больших чисел складывать будешь     | |||
| 47
    
        Ёпрст гуру 09.04.21✎ 09:14 | 
        Хотя, можешь и по максимуму обрезать. А если втотчете или еще где, увидишь девятки, ну, отчетиперепишешь на прямой и там каст     | |||
| 48
    
        victuan1 09.04.21✎ 09:15 | 
        (47) Пока статистику собираю... по макс. числам в этих дбф, может для разных колонок сделаю разные ограничения. Там еже для Кол-во есть типа 15.3     | |||
| 49
    
        Ёпрст гуру 09.04.21✎ 09:17 | 
        (48) количество да, если не используется дробное, то сделать целым.     | |||
| 50
    
        victuan1 09.04.21✎ 09:18 | 
        (49) Используется дробное (кг)     | |||
| 51
    
        victuan1 09.04.21✎ 09:18 | 
        А вот как узнать, до какой части дроби есть значения в дбф? до десятой, сотой или тысячной?     | |||
| 52
    
        Djelf 09.04.21✎ 09:19 | 
        (43) Это у фокса так? У 1sqlite не режется, даже если явно типизировать как Число.2.0     | |||
| 53
    
        Ёпрст гуру 09.04.21✎ 09:19 | 
        Если примерно типовая, то регистры можно много чего порезать, помимо числовых ресурсов..и не используемыеиреквизиты/измерения..и измерения, которые можно получить из других(договор-клиентос) и.т.п     | |||
| 54
    
        victuan1 09.04.21✎ 09:21 | 
        (26) А как делать?
 1) 1cv7.md и 1cv7.dd переношу в другую пустую папку, и в ней конфигуратором обрезаю длину реквизитов. 2) синхронно обрезаю дбф-ки редактором в рабочей базе 3) Тупо копирую 1cv7.md и 1cv7.dd из пустой базы в рабочую с заменой сущ. файлов. 4) грохаю cdx в рабочей базе 5) Запускаю монопольно для переиндексации 6) Профит. | |||
| 55
    
        Ёпрст гуру 09.04.21✎ 09:21 | 
        (52) это в чорном запросе, в фоксе не помню, проверить не сложно. Хотя мкуль, на сколько помню, тоже результат функции приводит к точности первоно операнда     | |||
| 56
    
        Ёпрст гуру 09.04.21✎ 09:22 | 
        (54) да. На пустышке быстрее всего     | |||
| 57
    
        victuan1 09.04.21✎ 09:22 | 
        (53) Да, почти типовая. Можно и строковые реквизиты поскоращать по идее.     | |||
| 58
    
        Ёпрст гуру 09.04.21✎ 09:24 | 
        Для начала, просто скопируй табличку регистра, дбф редактором измени структуру, и не забудь сжать файлик. И оценишь сразу размер.     | |||
| 59
    
        Ёпрст гуру 09.04.21✎ 09:27 | 
        Ну и в регистрах, очистить еще "нулевые" итоги, там, где все ресурсы по нулям. Тоже похудеет прилично     | |||
| 60
    
        victuan1 09.04.21✎ 09:43 | 
        (59) Так, это запросом надо. Тут я не справлюсь.     | |||
| 61
    
        Ёпрст гуру 09.04.21✎ 09:54 | 
        (60) там примитивный запрос, даже Чебур справился
 https://infostart.ru/public/180018/ | |||
| 62
    
        Ёпрст гуру 09.04.21✎ 09:56 | 
        Процедура Сформировать()
 Соединение = "Provider=VFPOLEDB.1;Data Source=" + КаталогИБ() + ";Exclusive=Yes;Mode=ReadWrite;Collating Sequence=MACHINE"; ДБ = СоздатьОбъект("OLEDBData"); Рез = ДБ.Соединение(Соединение); Запрос = ДБ.СоздатьКоманду(); Запрос.Выполнить("EXECSCRIPT('SET ANSI OFF')"); Запрос.Выполнить("EXECSCRIPT('SET REFRESH TO 0,-1')"); Запрос.Выполнить("Exec('SET TABLEVALIDATE TO 0')");// Отключили блокировки Запрос = ДБ.СоздатьКоманду(); Имя = ИмяРегистра.ПолучитьЗначение(ИмяРегистра.ТекущаяСт рока()); стр =" |DELETE |FROM $РегистрИтоги."+Имя+" |WHERE "; т=""; Для к= 1 По Метаданные.Регистр(Имя).Ресурс() Цикл ИмяРесурса = Метаданные.Регистр(Имя).Ресурс(к); т=т+" |$РегистрИтоги."+Имя+"."+ИмяРесурса+" =0 and |"; КонецЦикла; т=т+"1=1"; стр=стр+т; Запрос.ВыполнитьИнструкцию(стр); КонецПроцедуры | |||
| 63
    
        Djelf 09.04.21✎ 10:22 | 
        (51) Для 1sqlite, размерность поля Количество 12.3, printf`ом печатаем число в строку с точностью 3, отрезаем последний символ и проверяем на '0'.
 Ха! 13 кривых документов нашел, коробки дробные были, но делились не на цело. 
 | |||
| 64
    
        tgu82 09.04.21✎ 13:05 | 
        Епрст! А почему в словаре размерность 16.2 а в дбф-файле 15.2?     | |||
| 65
    
        Ёпрст гуру 09.04.21✎ 15:35 | 
        (64) Подменяли мд в базе. Пересоздай словарик, будет как в мд     | |||
| 66
    
        Гость из Мариуполя гуру 09.04.21✎ 18:16 | 
        (12) >>Я заметил одну не хорошую фишку в 1SENTRY.DBF 21год не в конце дбф в просмотрищике показывает а во второй части таблицы
 Ты просто не в теме :) Наоборот, это супер классная фишка, из серии - гринпис, зеленые и берегите природу, мать вашу. называется - повторное использование использованных..кхм.. ресурсов... (чуть не написал непотребное). 1с-ка не пишет тупо новые строки в конец файла, а использует повторно помеченные на удаление (в ФАЙЛЕ dbf! помеченные, а не в 1С) записи. Таким образом, файл не распухает, если, конечно, в файле есть помеченные на удаление записи. Так что твой 2021 год мог оказаться в любом месте файла. А ты говоришь - нехорошая фишка. Эта нехорошая фишка еще со времен досовского фокспро. Правда, некоторые считают, что это не есть хорошо и иногда физически невозможно восстановить данные, поскольку помеченная на удаление запись в файле была использована повторно для новой записи. Ну тут - или файл пухнет и все новые строки пишутся в конец файла или - гринпси и зеленая технология :) - то бишь мусор (помеченные на удаление записи)_ используем повторно. | |||
| 67
    
        victuan1 11.04.21✎ 09:02 | 
        (25) Ужал таким образом самую большую таблицу. Была 1 722 Мб, стала 1 494 Мб.
 На 3 месяца отсрочил неизбежное... Маловато будет) | |||
| 68
    
        victuan1 11.04.21✎ 10:24 | 
        На год-полтора должно хватить, если размер самого большого файла не будет расти больше 80 МБ в квартал.     | |||
| 69
    
        victuan1 11.04.21✎ 10:27 | 
        А потом можно будет еще выкроить, если совсем из таблиц удалить колонку СуммаНП (придется переписать код, где она встречается).
 Сейчас ее я уменьшил до размера "Число.2.0" (в таблице dbf), меньше не могу, т.к в 1С это отображается как "Число.1.0", и меньше единицы (т.е. Число.0.0) сделать 1с-ка не дает. | |||
| 70
    
        victuan1 11.04.21✎ 10:29 | 
        (62) еще не пробовал.     | |||
| 71
    
        Злопчинский 11.04.21✎ 11:27 | 
        "Содержание операции" урезал?     | |||
| 72
    
        victuan1 11.04.21✎ 13:12 | 
        (71) Это не мне... У меня регистры.     | |||
| 73
    
        victuan1 11.04.21✎ 13:50 | 
        (65) Нифига, это багофича платформы 1С 7.7, в 1С показывает на 1 меньше размерность именно для регистров.
 А размерность реквизитов в справочниках и документах норм. совпадает с дбф. Косяк этот только с регистрами. ХЗ зачем так сделали разработчики. По этой причине нельзя в Регистре сделать размерность Число.1.0 (в посте (69) описывал). | |||
| 74
    
        victuan1 11.04.21✎ 15:45 | 
        (62) Запустил удаление нулевых записей - особо ничего не дало:
 Регистр Амортизация содержит нулевых записей: 0, что составляет 0% от всех записей в таблице Регистр Расходы содержит нулевых записей: 5178, что составляет 0.1% от всех записей в таблице Регистр Касса содержит нулевых записей: 0, что составляет 0% от всех записей в таблице Регистр Банк содержит нулевых записей: 0, что составляет 0% от всех записей в таблице Регистр РасчетыСПоставщиками содержит нулевых записей: 4864, что составляет 1.3% от всех записей в таблице Регистр РасчетыСПокупателями содержит нулевых записей: 3433, что составляет 0.5% от всех записей в таблице Регистр КнигаПокупок содержит нулевых записей: 1320, что составляет 14.8% от всех записей в таблице Регистр КнигаПродаж содержит нулевых записей: 1222, что составляет 1% от всех записей в таблице Регистр РасчетыПоОплатеТруда содержит нулевых записей: 2, что составляет 0% от всех записей в таблице Регистр ОстаткиТМЦ содержит нулевых записей: 27, что составляет 0% от всех записей в таблице Регистр РасчетыСБюджетом содержит нулевых записей: 99, что составляет 4.1% от всех записей в таблице Регистр Подотчетники содержит нулевых записей: 14, что составляет 0.1% от всех записей в таблице Регистр Удержано содержит нулевых записей: 0, что составляет 0% от всех записей в таблице БД содержит нулевых записей: 16159, что составляет 0.2% от всех записей в БД Время работы модуля: 227.56 сек. | |||
| 75
    
        victuan1 11.04.21✎ 15:56 | 
        (74) Вот этой обработкой https://infostart.ru/public/976426/
 Т.к. код из (62) выдал мне ошибку: Запрос.ВыполнитьИнструкцию(стр); {X:\BASE1C\TEMP\_ОБРАБОТКИ\тест.ERT(30)}: Meta name parser error: поле таблицы не найдено "$РегистрИтоги.РасчетыСПоставщиками.Задолженность" Ресурса (измерения, реквизита) с именем "Задолженность" нет в этом регистре. Непонятно откуда его взял мета нэйм парсер... | |||
| 76
    
        victuan1 11.04.21✎ 15:57 | 
        (75) Ясно, он по синониму взял, идентификатор ресурса = "Сумма".
 И что с этим делать? | |||
| 77
    
        victuan1 11.04.21✎ 16:00 | 
        (76) Убрал синонимы в конфигураторе. Теперь другая ошибка:
 Запрос.ВыполнитьИнструкцию(стр); {X:\BASE1C\TEMP\_ОБРАБОТКИ\тест.ERT(30)}: FAILED! ICommandText::Execute(): Cannot open file x:\base1c\temp\1sbmdb_2011\rg1085.dbf. | |||
| 78
    
        victuan1 11.04.21✎ 18:35 | 
        (77) Ясно, не монопольно нужно.     | |||
| 79
    
        victuan1 11.04.21✎ 18:45 | 
        Короче, удалением нулевых записей в самом большем регистре я выиграл 1 Мб ;))     | |||
| 80
    
        Злопчинский 11.04.21✎ 18:46 | 
        (79) значит нормально по закрытым реистрам     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |