Ошибка в размере файла при выгрузке таблицы files ожидаемое значение 0

Обновлено: 04.07.2024

Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.

База УТ+CRM перестала выгружаться в файловый вариант изза ограничения файловой платформы на размер базы
В SQL занимает 3.4 гига, выгрузка 450 мегабайт
Вероятнее всего разрослись таблицы из-за включения версонифицирования обьектов, как могу посмотреть что за таблица разрослась, а также почистить регистры сведений (или не сведений, если виновато не версонифицирование обьекта)?

Скрин статистики базы

У Вас присоединенные файлы хранятся в томах или в базе? Если файлы хранятся в базе, то перенесите их обработкой в тома, если для Вас это будет удобно, если нет, то необходимо почистить регистр сведений Присоединенный файлы, написав обработку для этого. присоединенные файлы хранятся в томах, неархивированные занимают всего 275 мегабайт сжал базу на сервере SQL, предварительно переведя режим simple, получил 1.9 гига, все равно файлово не разворачивается
Цитата
elite128 пишет:
сжал базу на сервере SQL, предварительно переведя режим simple, получил 1.9 гига, все равно файлово не разворачивается
Что именно пишется при разворачивании файловой базы? Ошибка загрузки информационной базы. В информационную базу загружены не все данные
по причине:
Ошибка СУБД:
Превышен максимально допустимый размер внутреннего файла 'D:\1C_Test\DT/1Cv8.1CD'
по причине:
Превышен максимально допустимый размер внутреннего файла 'D:\1C_Test\DT/1Cv8.1CD'

Добрый день!
в файловом режиме у платформы ограничение на размер одной таблицы 4Gb. Именно любой таблицы данных, а не всей конфигурации.
99.9% это именно почта.
Возможно вы недавно перешли на хранение в томах, а все старые остались в базе? Ведь при переходе на хранения в томах уже существующие файлы автоматически не переносятся из ИБ в тома.
Просмотрите средствами СУБД или спец. обработкой для 1С - какая таблица самая большая и по ее имени определите что это за таблица.
Во вложении одна из обработок, позволяющих провести анализ (скачена из интернета)

Если дело в размере, то не вы сможете выгрузить в файловую базу, пока не уменьшите размер таблиц(ы)

Не заметил этой таблички.
Есть таблицы размером больше 4Gb?

И еще вопрос - вы провели из 1С "Тестирование и Исправление ИБ " с флагом "Сжатие таблиц информационной базы"? Помимо средств SQL

Почты у нас в базе нет, и надеюсь не будет, во избежании таких вот проблем и роста базы
Файлы изначально были в томах
Сжатие или реиндексация? ) Сжатие не вижу такого флага, реиндексацию и пересчет итогов ставил
Цитата
elite128 пишет:
Почты у нас в базе нет, и надеюсь не будет, во избежании таких вот проблем и роста базы
Файлы изначально были в томах
Сжатие или реиндексация? ) Сжатие не вижу такого флага, реиндексацию и пересчет итогов ставил
Администрирование-тестирование и исправление. Сори это скрин файловой базы. Да, извините, я смотрел на файловой базе. В клиент-серверном варианте сжатие делается средствами СУБД.
А по приложенной таблице структуры - там нет больших таблиц (>4Gb) или вы ее еще не проанализировали?

Обработка выдает ошибку после выбора таблиц и запуска

: Переменная не определена (ОтложенноеОбновлениеИБ)
<<?>>ОтложенноеОбновлениеИБ.ЗаписатьИнформациюОбОтложенномОбновлении(ПараметрыОбработчиков, МоментВремени, "ГраницаАктВыполненныхРаботПроизводственныеЗатраты");

Эту обработку нужно запускать в Толстом клиенте, если все равно будет ошибка, то поищите в интернете подходящую Вам.

У нас версия SQL, вторая обработка для файлового варианта

тогда проанализируйте свою таблицу, как Вам и писал Алексей. И как может быть таблица больше 4 гиг, если база в SQL 1.8 гига?

Обработка Алексея тоже выдает ошибку

: Переменная не определена (ОтложенноеОбновлениеИБ)
<<?>>ОтложенноеОбновлениеИБ.ЗаписатьИнформациюОбОтложенномОбновлении(ПараметрыОбработчиков, МоментВремени, "ГраницаАктВыполненныхРаботПроизводственныеЗатраты­");

Цитата
elite128 пишет:
И как может быть таблица больше 4 гиг, если база в SQL 1.8 гига?
Цитата
elite128 пишет:
Обработка выдает ошибку после выбора таблиц и запуска
Когда я ее тестировал - она корректно работала, правда я ее запускал на 8.2, а не 8.3.
Вы запустили ее именно в Толстом режиме, а не "в эмуляции" тонкого?
Цитата
elite128 пишет:
И как может быть таблица больше 4 гиг, если база в SQL 1.8 гига?
Не знаю. возможно SQL сжимает так сильно, а при выгрузке/загрузке ИБ данные распаковываются и таблицы становятся намного больше.
Либо у вас какой то сбой в базе, ошибка в параметрах таблиц.
Вы пробовали выгрузить базу, загрузить ее в новую на SQL и уже из новой выгрузить в файловую?

Запускаю в толстом клиенте с параметром /RunModeOrdinaryApplication
Запускается, в выборе версии платформы есть только 8.1 и 8.2, заполняю поля подключения, жму вперед, выбираю таблицы, получаю:

Данная ошибка возникает в процессе выгрузки информационной базы в файл .dt.
Проявляется на релизах платформы от 8.3.7, в которых добавилась такая проверка.

Таблицы на которую ошибка ссылается:

Пути решения:

1. Сделать копию базы средствами SQL или копирование файловой базой средствами операционной системы

2. Следующие действия производить на копии базы

3. Установить последнюю версии платформы

Проверка физической целостности файла БД

4. Для файловой базы запустить chdbfl.exe в режиме исправления

5. Если ошибка не устранилась и ссылается на файлы *.pfl, произведите очистку настроек у каждого пользователя
ОчиститьНастройкиПользователя(ПользователиИнформационнойБазы.ТекущийПользователь()); //Последствие слетят настройки форм, заметно будет на обычных формах

6. Если конфигурация в режиме совместимости платформы, можно попробовать зайти под старыми стабильными платформами 8.3.6. или даже под 8.2

Скорее всего ошибка при этом не будет устранена, но пройдет выгрузка-загрузка

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

ВыгрузкаЗагрузкаДанныхXML.epf. Процесс долгий. Если база не копия: потребуется создать и настроить всех пользователей заново.

8. Средствами sql найти в и удалить ошибочную запись в Dbo.Files

DELETE FROM [имяБазы].[dbo].[Files] WHERE FileName='ИмяФайлаСОшибкой'

9. Удалить запись программой Tool_1CD

10. Если при ошибке ссылается на повреждение файла Config, его можно обновить типовой версией: для этого необходимо будет конфигурацию полностью снять с поддержки и заменить на конфигурацию поставщика (с постановкой обратно). Такой вариант подойдет для неизмененных вами конфигураций

Есть схожая ошибка для файловых баз:

Временно помогут:

  • частичная очистка таких таблиц;
  • замена больших строковых реквизитов на ссылочные;
  • уменьшение индексов.

Реклама — искусство превращения полуправды в полную ложь.

— Эдгар Шоф

Версия платформы 8,3,7,1860 Файловый вариант
При попытке в конфигураторе выгрузить БД в ДТ выдает ошибку
Нарушение целостности информационной базы.
Ошибка в размере файла ХХХХХ-ХХХХ-ХХХХ-хххх.pfl при выгрузке таблицы files. Ожидаемое значение 0, а значение в таблице 123456

Исправление БД через конфиг сделано - ошибок нет
chdbfl.exe ошибок не обнаружил
Поудалял все папки ХХХХХ-ХХХХ-ХХХХ-хххх с файлами pfl

Перенес 1cv8.cd на другой комп. Платформа та же. Базу проверил на наличие ошибок обеими способами. Ошибок нет. Пытаюсь выгрузить - результат та же самая ошибка.

Нарушение целостности информационной базы.
Ошибка в размере файла ХХХХХ-ХХХХ-ХХХХ-хххх.pfl при выгрузке таблицы files. Ожидаемое значение 0, а значение в таблице 123456

Получается дело не во временных файлах, а внутри файла 1cv8.1cd
Ребят - кто сталкивался? Подскажите как полечить

(1) "Версия платформы 8,3,7,1860 Файловый вариант"

Вообще очень ожидаемая ситуация, как раз в 8.3.7 добавили проверку корректности при выгрузке. Раньше бы выгрузилась. но не загрузилась.

Сейчас до "незагрузки" дело и не дойдёт, так как база просто не будет выгружаться.

Чисто теоретически.
Если откатить платформу до 8.3.6, то шанс какой-никакой но появится.

Открыть базу в предыдущей версии платформы, скорее всего невозможно.
Наверно надо создать новую базу и выполнить перенос данных.

А вообще надо стучаться в Фирму и узнавать, как предполагается восстанавливать данные.
Ведь реальная проблема "Исправление БД через конфиг сделано - ошибок нет chdbfl.exe ошибок не обнаружил"

Если бы была база SQL, то выгрузку можно было бы сделать его средствами. А тут - файловая!

(3) CaptainMorgan,
ОчиститьНастройкиПользователя(ПользователиИнформационнойБазы.ТекущийПользователь());
Вот еще попробовал - Не помогло У нас была такая же проблема. база УПП доработанная, на 8.3.6 в dt выгружается без проблем на 8.3.7 (все проверил до 8.3.7.1860) выдается аналогичная ошибка на files.
Решили так:
выгрузили под 8.3.6 файловом варианте загнали в MSSQL под 8.3.7 средствами MSSQL нашли таблицу files, в ней запись на которую ругается - поставили ее размер = 0 и все база стала выгружаться.
По содержимому этой таблицы было что то типа истории при динамическом обновлении полгода назад. 8.3.5 тогда платформа была.
Если в MSSQL не перевести то на infostarte где то есть бета-редактор 1CD файлов там тоже можно найти эту таблицу (но сам не пробовал хотя его и скачал) Была такая же ошибка и с базой на Камине 3.5 - помогло просто обновление до последнего релиза. Попробовал сделать выгрузку на 1С:Предприятие 8.2 (8.2.19.80) Выгрузило!
Загрузил на 1С:Предприятие 8.3 (8.3.7.1860)
Загрузило!
Запустил - работает. данные есть
Но при выгрузке DT снова пишет ту же ошибку! Т.е. всосало с ошибками и выплюнуло с ними же! Ответ выше - загрузите в SQL, почистите эту таблицу средствами SQL, выгрузите базу и загрузите в файловый вариант. Ну или ждите пока 1с пофиксит chdbfl.exe.


Загрузил БД в MS SQL
Нашел нужный файл и косячную запись в таблице - как ее удалить?

(9) На закладке Дополнительно надо указать каталог где будут располагаться файлы.
После этого выделить таблицу и нажать кнопку экспорт текущей таблицы

В указанном каталоге появляется папка с файлами.
blob
data
descr
index
root

Исправляешь их или заменяешь исправленными и выполняешь обратный процесс

Указываешь тот же каталог импорта
Кнопка Импорт текущей таблицы

(10) CaptainMorgan,
Взял tools_1cd
Выгрузил, получил файлы

blob
data
descr
index
root

открыл файл blob - какой то странный формат. Вроде и текстовый а вроде и xml подобный. Нужную запись по содержимому поля FILENAME так и не нашел в нем!
Как с ним бороться?

Обыскался не нашел Дополнительно. Ребята ткните пальцем

(11) Я рассказал про программу Tool_1CD версии 3.0 beta
Эта программа позволяет корректно работать с файловой базой 1С
Вы же писали "Версия платформы 8,3,7,1860 Файловый вариант"

А на скриншоте я не разобрал что за программа, очки потерял а зрение уже не то что раньше.

Если вам удалось базу залить в SQL, то там в контекстном меню Изменить первые 200 строк

А вообще, попробуйте переименовать dbo.Files что в этом случае получится?

(13) Вы пишите "Изменить 200 подошло! Удалил косячные записи"
Уважаемый ah7777777 , очень хочется узнать результат.

Если по правде, то именно это нововведение, появившееся с релиза 8.3.7 сдерживает меня от внедрения его у пользователей.

Непредсказуемость больше всего пугает.
Тем более, что не за горами а уже вот она 8.4, сделанная (якобы) на базе 8.3.5 и соответственно 8.3.7 является изначально нежизнеспособным ответвлением, которое, скорее всего засохнет не дожив до зрелого возраста.

Но 8.4 сейчас не просто сырая платформа, а вообще ультра сырая.

(14) CaptainMorgan,
Результат по восстановлению работоспособности БД (Нарушение целостности информационной базы.
Ошибка в размере файла ХХХХХ-ХХХХ-ХХХХ-хххх.pfl при выгрузке таблицы files. Ожидаемое значение 0, а значение в таблице 123456 )
прошел успешно.
8.3.7 в этом случае только выявила ошибку при выгрузке, т.к. 8.2 выгрузило ту же БД без ошибок. Поэтому про 8.3.7 ничего плохого сказать не могу, но и хорошего то же, т.к. Исправление ошибок средствами конфигуратора (логическая целостность) ошибок не выявило.

Сегодня столкнулся с такой же проблемой. Внутреннее + внешнее тестирование не давало результатов. Уже отчаялся. Думал вскрывать базу через МС СКуЛ (вычитал на руборде), но решил на последок под всеми пользователями прогнать ОчиститьНастройкиПользователя(ПользователиИнформационнойБазы.ТекущийПользователь()); Вот прям зашел под каждым, и выполнил. Платформа 1С:Предприятие 8.3 (8.3.7.1970). И произошло чудо! База выгрузилась и загрузилась! :) Я рад
Можете не благодарить

Но есть побочный эффект. Все настройки послетали. Кучу внешних обработок перенастраивать заново. ех.

forwork1c; type; nedopro; onetone; doronin70; freeek; virtmon; + 7 – Ответить (17) Воспользовался вашим советом. У меня платформа 8.3.7.1790, Бухгалтерия 2.0. Прогнал команду ОчиститьНастройкиПользователя(ПользователиИнформационнойБазы.ТекущийПользователь() под каждым пользователем.
ВСЕ В ПОРЯДКЕ. Ошибка ушла!

(40)
Чтобы не перебирать пользователей можно использовать следующий код, например во внешней обработке:

МассивПользователей=ПользователиИнформационнойБазы.ПолучитьПользователей();
Для Каждого СтрокаМассива Из МассивПользователей Цикл
Сообщить("Чистим "+СтрокаМассива);
ОчиститьНастройкиПользователя(СтрокаМассива);

Сталкивался с такой же ерундой, в sql перевести базу не было возможности. В итоге откатился до последнего бэкапа, где ошибки не было и с помощью стандартной обработки ВыгрузкаЗагрузкаДанныхXML перетащил недостающие данные. Столкнулся с такой же проблемой, нужно было сконвертировать Бухгалтерия 2.0 в Бухгалтерию 3.0;
Решение оказалось интересным, сначала попробовал очень ранний релиз 1С 8.3, и там и выгружалось и загружалось, проблем не было, но ругалась конвертация, что ей нужна платформа не ниже 8.3.6.2449, ну я и решил установить эту платформу, и В.С.Е. проблема решилась, конфигурация успешно конвертнулась в 3.0. И самое интересное, что ошибка переносится и в 8.3 скорее всего 1С пофиксит эту проблему когда нибудь, но до той поры советую данный релиз не удалять для такого рода ошибки.

Как дополнение, после загрузки БД в Postgre решил я найти эту таблицу и исправил в таблице размер файла. После проверили 1С Бухгалтерию, и оборотка и справочники и документы, все на месте, сложилось впечатление что разницы была забита пустыми строками. Но это в моем случае, в других случаях возможно потеря данных, короче надо экспериментировать.
У меня проблема решена полностью.

Повторяю. Это касаемо Бухгалтерской конфигурации.
1. Ставите релиз платформы 8.3.6.2449
2. Конвертируете в Бухгалтерию 3.0 (БД должна находиться либо в SQL, Postgre).
3. После конвертации ищем в SQL (Postgre) таблицу на которую ругается 1С и ставим тот размер который предлагает 1С.
Далее проверяем.

Спасибо,за совет!
Выгрузил с помощью 1с 8.2 (в 8.3 не выгружается)
Загрузил в MsSQL
в Dbo.Files нашел файл на который ругается 1с 8.3
Datasize поставил 0 - такой размер ожидала выгрузка 1с
Загрузил 1с 8.3 и. выгрузка прошла нормально!
Еще раз спасибо!

Протокол моих действий в скулевой базе:

похоже, 1С-ка ругается на эту запись

FileName Creation Modified Attributes DataSize BinaryData PartNo
2001-01-01 00:00:00.000 2001-01-01 00:00:00.000 0 99616 0x 0

т.е. ту, в которой пустой FileName и BinaryData = 0x

Попробуем ее удалить.
Пишем DELETE FR OM [имяВашейБазы].[dbo].[Files] WH ERE FileName=''

Все прошло удачно!

Здравствуйте!
столкнулся а аналогичной проблемой. прочитал тему, решил пойти более быстрым путем, использовать Tool_1CD, а SQL оставить на крайний случай. Скачал утилиту. Открыл свой файл 1Cv8.CD. нашел табличку и файл на которые ругались при выгрузке. поставил значение 0 как просила 1С. сохранил значение. выгружаю ДТ из 1С второй раз снова выходит ошибка, но уже на другой файл ругается. Повторил процедуру в Tool_1CD. Снова выгрузить ДТ попробовал и все получилось. Изначально ДТ был выгружен со стартера 8.2. Загружен в 8.3.7. Из него выгрузка не проходила, пока таблички не поправил. Дальше ради эксперимента ДТ от 8.2 загрузил на стартер 8.3. Снова попробывал выгрузить в ДТ и опять ошибки. Исправил через Tool_1CD. Дальше на старетере 8.3 выгрузка прошла. (25) nick-name, tool_1cd, которую мне удалось добыть не загружает базу БП 2.0 работавшую на 8.3.7, пишет что это не база 1С.
Какая у вас версия и где ее можно взять? Проблема такая же как в теме. (нужна версия с редактированием) снял с поддержки и поставил обратно и все заработало Такая же ошибка возникла на клиент-серверном варианте. Помогла остановка и повторный запуск сервера 1С Была такая же ошибка на платформе 8.3.7.
Поставила платформу 8.3.8.1652, сделала Исправление черезchdbfl.exe ошибок не обнаружил, копию потом сделал была такая же проблема. Решил путем отката на предыдущий бэкап, где все работало, и перенес данные с битой базы в рабочую (30) kondrv, Также столкнулась с такой же проблемой,ничего не окатывала, просто запустила программу со старой платформой,в данный момент 8.3.5.1486 всё выгрузилось и обновилось, ошибка же возникла на платформе 8.3.8.1933. Проблема не с видом базы (серверная или файловая), а именно в релизе.

Возникла подобная проблема на платформе 8.3.8.2054 после обновления с платформы 8.3.6.1251. База 1С Бухгалтерия 3.0 На SQL 2014 (на самом деле от версии SQL не зависит).
Ошибка
Нарушение целостности информационной базы. Ошибка в размере файла 0070d942-3a6c-43e2-a265-b76c6943d100.pfl при выгрузке таблицы Files. Ожидаемое значение: 109444, значение в таблице: 172141

Решили следующим образом.
Зашли на SQL сервер нашли в нужной базе таблицу DBO.FILES
Вывели таблицу. Для тех кто не знает, Контекстное меню на таблице "Select top 1000 rows"
Нашли строку с файлом и некорректными данными
Открыли первых 200 записей для редактирования. Для тех кто не знает, Контекстное меню на таблице Edit top 200 rows

У меня было повреждение только при выгрузке таблицы CONFIC.

Решение, которое помогло.

Все манипуляции в режиме конфигуратора.

1) Открыл другую базу с аналогичным релизом и выгрузил конфигурацию в файл (.cf). (Конфигурация -> Сохранить конфигурацию в файл)
2) Снимаю проблемную базу с поддержки (чтобы можно было загрузить конфигурацию). (Конфигурация -> Поддержка -> Настройка поддержки -> Включить возможность изменения -> Снять с поддержки)
3) Загружаю ранее выгруженный .cf файл. (Конфигурация - Загрузить конфигурацию из файла)

Переход от релиза 8.2.121 к 8.3.8.хх (серверный вариант) прошел гладко.

Но старая привычка проверять после создания базы ее выгрузку очень помогла в этот раз.

Выгрузка не произошла- ошибка полученная при этом видна на первом скриншоте.

Ответ 1с был лаконичен: "Средствами SQL поправьте соответствующее значение в таблице Files. Это битая сохраненная настройка пользователя."

Для базы на MS SQL.

В Ms SQL Management Studio делаем следующие манипуляции.


Находим dbo.Files и выбираем "Изменить первые 200 строк".




Для базы на PostgreSQL.

В pgAdmin III делаем следующие манипуляции.

вставка неуникального значения в уникальный индекс) эта великая утилита решает отлично.

Если уже новый формат файловой базы (8.3.8).
В кои веки 1с выпустила утилиту, для обратной конвертации!
bin\cnvdbfl.exe (по опыту- 64 разрядная работает на порядок быстрее)

C:\Program Files\1cv8\8.3.9.2033\bin\ cnvdbfl -c -f 8.2.14 D:\base\1Cv8.1CD
Конвертирует базу в прежний формат, а:
C:\Program Files\1cv8\8.3.9.2033\bin\ cnvdbfl -c -f 8.3.8 D:\base\1Cv8.1CD
обратно.

Tool_1cd не работает с новым форматом! Обратная конвертация обязательна.

UPD. К теме не относится, если только к инструментарию SQL.

При очистке таблицы SQL (к примеру регистра информации в тестовой базе или "распухшего" и вызывающего ошибки, но при этом не критичного для удаления) в pgAdmin использую команду TRUNCATE (опустошить таблицу или набор (TRUNCATE CASCADE) таблиц)

Читайте также: