| 
    
            
         
         | 
    
  | 
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) значит нормально по закрытым реистрам     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |