![]() |
|
1С:Предприятие
:: 1С:Предприятие 7.7 и ранее
|
|
| ||
vin1c 06.04.21 - 09:33 | Раньше такое бывало, сворачивал базу и все окей.
Этот раз сложнее, открываю журнал многих документов нет там, базу переиндексировал перед этим, смотрю проводки: проводки есть но они не прицеплены к документам. Смотрю таблицы дбф вьювером: 1SENTRY.DBF,1SCRDOC.DBF,1SJOURN.DBF все на месте (сравнивал с рабочей базой). Новый документ не дает создать. Что могло повредиться? Пробовал выгружать в sql базу, выгрузились только те проводки которые соединены с документами. | ||
Garykom 1 - 06.04.21 - 09:38 | (0) индексы перескочили? | ||
Garykom 2 - 06.04.21 - 09:39 | (1)+ какой номер идет после 9999 если размер поля 4 ? 0000, затем 0001! | ||
Ёпрст 3 - 06.04.21 - 10:56 | (0) размер таблички 1SENTRY.DBF какой хоть, для начала ? | ||
vin1c 4 - 06.04.21 - 11:45 | Размер 1160 кв.
Где посмотреть номер 9999? | ||
vin1c 5 - 06.04.21 - 11:46 | в CDX? | ||
VladZ 6 - 06.04.21 - 12:12 | (0) Переходите на восьмерку. | ||
ShAV 7 - 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 и зайти монопольно. Проверить наличие доков | ||
vin1c 11 - 06.04.21 - 13:35 | Разве переиндексация не это делает? | ||
vin1c 12 - 06.04.21 - 13:40 | (2) Я заметил одну не хорошую фишку в 1SENTRY.DBF 21год не в конце дбф в просмотрищике показывает а во второй части таблицы | ||
vin1c 13 - 06.04.21 - 14:07 | (10) Помогло!!! Я искал сложности. А не ужели переиндексация по новой не создает индексы. | ||
vin1c 14 - 06.04.21 - 14:07 | Могу даже денег кинуть за помощь на карту | ||
vin1c 15 - 06.04.21 - 14:15 | (8) что за заплатка? размер дбф больше 2хгб может быть? | ||
Ёпрст 16 - 06.04.21 - 14:21 | |||
Ёпрст 17 - 06.04.21 - 14:21 | Больше 2-х не может, после 1 гб идёт ошибка по чтению в не монопольном режиме. | ||
mikecool 18 - 06.04.21 - 14:26 | |||
VladZ 19 - 06.04.21 - 18:51 | (7) Значит клиенту нужно сделать предложение, от которого невозможно отказаться. | ||
tgu82 20 - 06.04.21 - 20:02 | (19) И что это может быть за предложение? ) | ||
Злопчинский 21 - 06.04.21 - 22:48 | а еще естькакие-то приблуды, которые файло позволяют до 4 Гб держать (вроде вирт?) | ||
Ёпрст 22 - 06.04.21 - 23:10 | (21) там свой формат базы будет | ||
victuan1 23 - 07.04.21 - 05:05 | (22) Да, вот у меня есть одна нестандартная база - по размеру нескольких dbf подходит к 2 Гигам (RA***.dbf и RG****.dbf). Перевести ее на "вирт" или писать свою процедуру свертки базы?
Это не ТИС и не Бух, а 1С Предприниматель 7.7 переписанная, она на регистрах. Но что-то штатную обработку свертки для нее я не нашел. Да и сворачивать не особо ее хочется, т.к. расчет она не быстро и возможно скоро станет не нужна (мегабайт через 500-1000) и ее выкинут на помойку. Также у меня по ней ежеквартально используется обработка, которая использует данные за весь период существования базы, а после свертки придется еще и эту обработку переделывать - геморойно очень. | ||
victuan1 24 - 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 | Все это делать ручками, тип поля любым дбф редактором, мд-ник на пустышке, или перенести таблички регистра куда то, на пустых табличках реструктуризация и готовые подсунуть потом | ||
tgu82 27 - 07.04.21 - 15:55 | (26) Хотел убрать измерение на фиг ненужное из регистра партий но в резульатте уменьшил его разрядность до 4.2 и на этом успокоился пока что. теперь буду по использующимся ресурсам уменьшать напрямую через редактор дбф | ||
victuan1 28 - 08.04.21 - 17:05 | (26) А почему штатно через конфигуратор нельзя изменить размеры ресурсов и пусть лопатит? | ||
Ёпрст 29 - 08.04.21 - 17:24 | (28) если есть много, даже не так, если есть оооооочень много свободного времени, делай штатно. Только учти, что на больших (с точки зрения дбф) файлов, штатной реструктуризации ты можешь и не дождаться. | ||
Djelf 30 - 08.04.21 - 17:24 | (28) У себя можно. У заказчика долго. Хотя... если заказчик платит почасовую оплату то нужно так делать и у заказчика ;) Рекламное место пустует | ||
victuan1 31 - 08.04.21 - 17:28 | (30) Это моя вспомогательная база для моих нужд расчета налогов. Ей пользуюсь раз в квартал, два месяца подряд четыре раза в год эта база стоит в простое %) | ||
Ёпрст 32 - 08.04.21 - 17:31 | (31) это не важно, ты просто можешь не дождаться реструктуризации, совсем | ||
Djelf 33 - 08.04.21 - 17:39 | Запустить вечерком и проверить утром. А если за часов 10 не смогло, то только как Ёпрст советует. | ||
hogik 34 - 09.04.21 - 00:25 | Рекомендую посмотреть: https://infostart.ru/1c/articles/77617/
«Ошибка "CodeBase Error #: -310" в DBFной версии 1С:Предприятие 7.7» Ошибка возникает при непосредственном удалении записи (в терминах 1С) в таблице с количеством записей более 16777215 штук. | ||
victuan1 35 - 09.04.21 - 06:58 | (34) Спасибо, вроде такой ошибки не возникало у меня, но я проверю таблицы на кол-во записей. | ||
victuan1 36 - 09.04.21 - 07:49 | (34) Проверил - в самых больших таблицах такое кол-во записей:
1) 9 782 325 2) 7 829 369 3) 5 452 264 4) 2 679 319 | ||
victuan1 37 - 09.04.21 - 07:50 | (25) А какой утилитой найти макс. число. С ДБФ-вьюерами нет опыта. В утилите "Advantage Data Architect" не нашел как? | ||
Djelf 38 - 09.04.21 - 08:07 | |||
victuan1 39 - 09.04.21 - 08:10 | Нашел чем.
В принципе думаю, можно 15.2 смело уменьшать до 11.2 | ||
victuan1 40 - 09.04.21 - 08:11 | это 99 999 999.99 | ||
Андрей_Андреич 41 - 09.04.21 - 08:13 | (40) Не надеешься добить до ста миллионов? | ||
victuan1 42 - 09.04.21 - 08:53 | (41) Это ведь сумма одной сделки. Нет, не надеюсь. | ||
Ёпрст 43 - 09.04.21 - 09:03 | (39) минимум, на порядок (лучше на 2) делать больше.
Еслии пользуешься чёрим запросом, то при вычислении функции можешь нарваться на переполнения разряда. | ||
Ёпрст 44 - 09.04.21 - 09:03 | Ибо она результат выполнения приводит к точности ииразрчду первого операнда в выражении. | ||
victuan1 45 - 09.04.21 - 09:07 | (43) Это на порядок больше. | ||
Ёпрст 46 - 09.04.21 - 09:11 | (45) запас, если много больших чисел складывать будешь | ||
Ёпрст 47 - 09.04.21 - 09:14 | Хотя, можешь и по максимуму обрезать. А если втотчете или еще где, увидишь девятки, ну, отчетиперепишешь на прямой и там каст | ||
victuan1 48 - 09.04.21 - 09:15 | (47) Пока статистику собираю... по макс. числам в этих дбф, может для разных колонок сделаю разные ограничения. Там еже для Кол-во есть типа 15.3 | ||
Ёпрст 49 - 09.04.21 - 09:17 | (48) количество да, если не используется дробное, то сделать целым. | ||
victuan1 50 - 09.04.21 - 09:18 | (49) Используется дробное (кг) | ||
victuan1 51 - 09.04.21 - 09:18 | А вот как узнать, до какой части дроби есть значения в дбф? до десятой, сотой или тысячной? | ||
Djelf 52 - 09.04.21 - 09:19 | (43) Это у фокса так? У 1sqlite не режется, даже если явно типизировать как Число.2.0 | ||
Ёпрст 53 - 09.04.21 - 09:19 | Если примерно типовая, то регистры можно много чего порезать, помимо числовых ресурсов..и не используемыеиреквизиты/измерения..и измерения, которые можно получить из других(договор-клиентос) и.т.п | ||
victuan1 54 - 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) да. На пустышке быстрее всего | ||
victuan1 57 - 09.04.21 - 09:22 | (53) Да, почти типовая. Можно и строковые реквизиты поскоращать по идее. | ||
Ёпрст 58 - 09.04.21 - 09:24 | Для начала, просто скопируй табличку регистра, дбф редактором измени структуру, и не забудь сжать файлик. И оценишь сразу размер. | ||
Ёпрст 59 - 09.04.21 - 09:27 | Ну и в регистрах, очистить еще "нулевые" итоги, там, где все ресурсы по нулям. Тоже похудеет прилично | ||
victuan1 60 - 09.04.21 - 09:43 | (59) Так, это запросом надо. Тут я не справлюсь. Рекламное место пустует | ||
Ёпрст 61 - 09.04.21 - 09:54 | |||
Ёпрст 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"; стр=стр+т; Запрос.ВыполнитьИнструкцию(стр); КонецПроцедуры | ||
Djelf 63 - 09.04.21 - 10:22 | (51) Для 1sqlite, размерность поля Количество 12.3, printf`ом печатаем число в строку с точностью 3, отрезаем последний символ и проверяем на '0'.
Ха! 13 кривых документов нашел, коробки дробные были, но делились не на цело.
SELECT DISTINCT
ОстаткиТМЦ.IDDOCDEF||ОстаткиТМЦ.IDDOC [Документ :Документ]
,Количество [Количество :Число.12.3]
FROM Регистр_ОстаткиТМЦ AS ОстаткиТМЦ
GROUP BY ОстаткиТМЦ.RowID
HAVING substr(printf('%.3f',Количество),-1,1) != '0'
| ||
tgu82 64 - 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 год мог оказаться в любом месте файла. А ты говоришь - нехорошая фишка. Эта нехорошая фишка еще со времен досовского фокспро. Правда, некоторые считают, что это не есть хорошо и иногда физически невозможно восстановить данные, поскольку помеченная на удаление запись в файле была использована повторно для новой записи. Ну тут - или файл пухнет и все новые строки пишутся в конец файла или - гринпси и зеленая технология :) - то бишь мусор (помеченные на удаление записи)_ используем повторно. | ||
victuan1 67 - 11.04.21 - 09:02 | (25) Ужал таким образом самую большую таблицу. Была 1 722 Мб, стала 1 494 Мб.
На 3 месяца отсрочил неизбежное... Маловато будет) | ||
victuan1 68 - 11.04.21 - 10:24 | На год-полтора должно хватить, если размер самого большого файла не будет расти больше 80 МБ в квартал. | ||
victuan1 69 - 11.04.21 - 10:27 | А потом можно будет еще выкроить, если совсем из таблиц удалить колонку СуммаНП (придется переписать код, где она встречается).
Сейчас ее я уменьшил до размера "Число.2.0" (в таблице dbf), меньше не могу, т.к в 1С это отображается как "Число.1.0", и меньше единицы (т.е. Число.0.0) сделать 1с-ка не дает. | ||
victuan1 70 - 11.04.21 - 10:29 | (62) еще не пробовал. | ||
Злопчинский 71 - 11.04.21 - 11:27 | "Содержание операции" урезал? | ||
victuan1 72 - 11.04.21 - 13:12 | (71) Это не мне... У меня регистры. | ||
victuan1 73 - 11.04.21 - 13:50 | (65) Нифига, это багофича платформы 1С 7.7, в 1С показывает на 1 меньше размерность именно для регистров.
А размерность реквизитов в справочниках и документах норм. совпадает с дбф. Косяк этот только с регистрами. ХЗ зачем так сделали разработчики. По этой причине нельзя в Регистре сделать размерность Число.1.0 (в посте (69) описывал). | ||
victuan1 74 - 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 сек. | ||
victuan1 75 - 11.04.21 - 15:56 | (74) Вот этой обработкой https://infostart.ru/public/976426/
Т.к. код из (62) выдал мне ошибку: Запрос.ВыполнитьИнструкцию(стр); {X:\BASE1C\TEMP\_ОБРАБОТКИ\тест.ERT(30)}: Meta name parser error: поле таблицы не найдено "$РегистрИтоги.РасчетыСПоставщиками.Задолженность" Ресурса (измерения, реквизита) с именем "Задолженность" нет в этом регистре. Непонятно откуда его взял мета нэйм парсер... | ||
victuan1 76 - 11.04.21 - 15:57 | |||
victuan1 77 - 11.04.21 - 16:00 | |||
victuan1 78 - 11.04.21 - 18:35 | (77) Ясно, не монопольно нужно. | ||
victuan1 79 - 11.04.21 - 18:45 | Короче, удалением нулевых записей в самом большем регистре я выиграл 1 Мб ;)) | ||
Злопчинский 80 - 11.04.21 - 18:46 | (79) значит нормально по закрытым реистрам |
|
Список тем форума |