Dt файл не загружается
Доброго времени суток. Ситуация такая. На сервере нужно организовать 2 БД для работы. Обе сделаны и настроены, доступ к ним есть. Но есть вот такая проблема: пустые базы создавались идентичные и в первую я нормально все выгрузил из dt и она благополучно работает. Но вот с загрузкой второй базы начались "танцы". Сначала писало "мало места на сервере 1с предприятия", хотя фактически его там более чем предостаточно. Перезапуски серверов не помогли. Пересоздал базу -> теперь в диспетчере серверов 1с выскакивает блокировка сеанса, при попытке загрузить данные из .dt через конфигуратор. вот эти три блокировки выскакивают при попытке загрузить данные. А сам конфигуратор просто висит, типа работает. Опытным путем выявилось что если пару раз остановить через диспетчер задач конфигуратор в таком состоянии, то БД становится поломаной. Не подскажете где у меня могут быть проблеммы? Не могу понять, почему одна база свободно выгрузилась а вторая, более маленькая ни в какую не хочет. Большая база 2 Гб, мелкая 270 мб Конфиг вот таков windows server 2003 sp2 x32; sql2005; ервер 1с тоже х32. Под эту штуку выделено 1 гб оперативки, "знающие" уверили, что должно хватить. Тапками сильно не кидайтесь, 1с поднимается мной впервые, поэтому опыта еще маловато.
хотя бы 8 гиг выделите, 1 гиг выделяли на 7.7 15 лет назад.
>1 гб оперативки, "знающие" уверили, что должно хватить на что должно хватить? На конторстрайк по пятницам.
железо подробней опиши. Попробуй в скуле отсоединить временно первую базу и потом загрузить вторую.
Спасибо за инфу. видимо посчитали, что база маленькая и этого хватит вполне) Благодарю, вечером попробую. когда народ разойдется. Железка такая Intel Core i5-4690 3.50 Ghz, 16 Гб на боту, raid 1 -2Тб; вобщем-то машинка для малого офиса такая.
Почему из 16 ГБ под 1С выделено всего 1 ГБ? А куда остальные делись?
"одна база свободно выгрузилась а вторая," Все-таки с выгрузкой проблема или с загрузкой?
Я ошибся, не нашел кнопку, чтоб пост отредактировать. с загрузкой. Часть на контроллер домена, часть на терминальный сервер и часть висит свободная для телефонии
Немного не понял выражения. Всмысле забрать? Сам файл .dt, который я загружаю? Либо сервисы эти положить на вермя загрузки?
Я имел ввиду побольше дать оперативы для 1С. И вообще во время выполнения этой операции надо всех выгнать с терминала и остановить все другие сервисы кроме 1С.
полный дословный текст ошибки в студию подозреваю что фоновые задания блокируют работу
Предположим, вы сформировали архив базы и теперь пытаетесь загрузить его в файловом варианте. Сначала все идет хорошо, но в какой-то момент возникает ошибка:
"Ошибка загрузки информационной базы. В информационную базу загружены не все данные по причине: Ошибка СУБД: Превышен максимально допустимый размер внутреннего файла 'D:\1CBASES\NewDB/1Cv8.1CD' "Я лично потратил ОЧЕНЬ много времени на поиск решения этой проблемы и в итоге нашел его, что позволило нам создать файловую копию базы данных размером 18 Гб и в итоге сэкономило примерно неделю времени (могу в комментариях рассказать, как было дело, но сейчас речь не о том).
Итак, причин возникновения такой ошибки может быть несколько:
- Размер КАКОЙ-ЛИБО таблицы в базе данных превышает лимит для файловой версии (4 Гб). Если честно, во избежание подобных эксцессов мы проверяли размеры таблиц базы заранее с помощью обработки "SQL базомер" (или аналогов).
- Ошибка связана с глюком особенностями платформы, и вызвана определенной спецификой структуры метаданных выгружаемой конфигурации.
С первым случаем все понятно - если базомер показал превышение лимита по каким-то из таблиц базы, то эти таблицы необходимо почистить. Если речь идет о справочнике или непериодическом регистре сведений, то нужно постараться удалить оттуда ненужные элементы/записи. То же самое относится и к "тяжелым" документам с их табличными частями. В первую очередь следует заняться удалением помеченных объектов, конечно.
Регистры накопления - отдельная тема. Размеры таблиц итогов могут превышать размеры таблиц записей регистра, причем зачастую значительно. Иногда может помочь даже простой пересчет итогов.
Регистры остатков могут некорректно (не по всем измерениям) закрываться, что приводит к ОЧЕНЬ значительному и быстрому разрастанию таблиц итогов. Списание "зависших" остатков регистра накопления может при последующем пересчете итогов дать экономию до нескольких Гб, проверено на собственном опыте у "нерадивых" клиентов. ))
Что же делать, если каждая таблица вашей базы размером менее 4 Гб, но ошибка все равно возникает?
Это значит, что у вас второй случай - проблемная структура метаданных конфигурации. Вероятнее всего, ошибка возникает на этапе создания индексов.
В двух словах опишу ситуацию в целом, чтобы было понятно, словами Виктора Сосновского из 1С. Ниже цитата с партнерского форума:
"При загрузке информационной базы в файловом варианте сначала загружаются данные всех таблиц, а затем создаются индексы. Ошибка создания индекса приводит к тому, что индекс, созданный с ошибкой, и все последующие индексы не создаются. Если в базе много данных, то это приведет к существенному снижению производительности. Полноценная работа с такой базой будет невозможна."
Нужно узнать, какая именно таблица приводит к ошибке при создании индекса.
Включаем технологический журнал - в папку "С:\Program Files (x86)\1cv82\__НомерВерсииПлатформы__\bin\conf\" (или аналогичную, __НомерВерсииПлатформы__ подставьте свой) кладем файл logcfg.xml примерно следующего содержания:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<dump create="true" location="D:\1CBASES\dumps" type="0" prntscrn="true"/>
<log history="3" location="D:\1CBASES\logs">
<event>
<eq property="name" value="dbv8dbeng"/>
</event>
<event>
<eq property="name" value="excp"/>
</event>
<property name="all"/>
</log>
</config>
Внимательно следим за тем, чтобы каталоги для дампов и логов:
- Существовали
- Различались
- Были доступны для чтения и записи тому пользователю Windows, от лица которого вы запускаете конфигуратор.
Перезапускаем конфигуратор (при этом включается технологический журнал) и заново пробуем загрузить наш .DT. После возникновения ошибки идем в каталог для логов, находим там файл лога, содержащий нашу ошибку, и внимательно читаем его.
Первое же вхождение EXCPCNTX в логе в моем случае указало на команду, которая вызвала ошибку: CREATE INDEX _Accum27148_ByDims_TRRRRRRRRRSSR (у вас название индекса будет другое).
По цифрам из названия индекса с помощью обработки "Структура хранения таблиц базы данных" (или аналогов, которые умеют показывать индексы) находим, какой таблице принадлежит данный индекс. У меня это оказалась таблица оборотов одного из нетиповых регистров накопления.
А дальше начинается самое интересное - нужно попытаться угадать, что именно в структуре вашей таблицы приводит к ошибке индексации.
В первую очередь следует смотреть, какие поля входят в индекс. Как выяснилось, платформа ОЧЕНЬ не любит, когда совокупный размер ключевых полей индекса становится значительным. В частности, она не любит индексировать длинные строки - так, в моем случае в индекс попадало измерение с типом СТРОКА (500) и оно вызывало ошибку. Другой представитель фирмы "1С" высказался на партнерском форуме еще в 2007 году:
" Если длина ключа оказывается близкой к 2К, то начинается резкий рост размера индексов с рядом неприятных последствий. "
И действительно, в 2013 году ничего не изменилось - в подобных случаях наблюдается лавинообразный рост размеров индекса на файловой базе. А когда таблица индекса превышает лимит в 4 Гб, загрузка .DT останавливается с ошибкой.
Лично мне помогло отключить для проблемного измерения флажок "Использование в итогах", т.к. в реальности итоги по нему не требовались. Оно перестало попадать в саму таблицу оборотов и, как следствие, в индекс таблицы оборотов. Есть и другие способы - более строго ограничить размер строки, например. Читал, что некоторым это помогало.
Эти изменения необходимо применить к информационной базе, при этом произойдет реструктуризация вашей таблицы.
Если изменения внесены на SQL-копии базы, то после этого нужно заново выгрузить .DT и попытаться перезагрузить его в файловой версии.
Кому особо не повезло и ошибка вылезла снова - тому следует повторить сначала всю процедуру, начиная с анализа логов. Возможно, проблемная таблица была не одна, или вам не удалось решить проблему с размерами полей, входящих в индекс.
Файл 1С с расширением *dt — это файл, который можно получить при создании копии базы через Конфигуратор. С помощью него в дальнейшем можно восстановить копию базы. Рассмотрим подробнее, как работать с этим файлом, на примере программы 1С:Бухгалтерия предприятия.
Как получить файл dt
Зайдем в программу через Конфигуратор под пользователем с полными правами.
Откроем меню «Администрирование — Выгрузить информационную базу».
Укажем папку для сохранения файла и название файла, нажмем «Сохранить». Название файлу рекомендуем давать понятное, осмысленное, а не оставлять по умолчанию. Так будет проще ориентироваться, если файлов будет несколько.
Получите понятные самоучители по 1С бесплатно:
В итоге в папке будет файл dt.
Как загрузить файл dt
Далее рассмотрим, как загрузить файл dt. На практике есть несколько частых сценариев:
- Переносим базу на другой компьютер.
- Продолжаем работать на текущем компьютере в имеющейся базе. Копия же нужна, например, чтобы поэкспериментировать.
- Текущая рабочая база нам не нужна, мы хотим ее заменить на копию.
В зависимости от этого немного отличаются дальнейшие действия.
В первом и втором случаях проще всего создать новую пустую базу и загрузить туда копию.
В третьем случае загружаем копию прямо на рабочую базу.
Загрузка копии в пустую базу
Для начала создадим пустую базу. Нажмем кнопку «Добавить».
Отметим, что при переносе базы на другой компьютер, может вообще не быть других баз. В таком случае список в 1С будет пустым. В остальном порядок действий такой же. Ну и разумеется, нужно файл dt перенести на этот компьютер, например, на флешке.
Выбираем пункт «Создание новой информационной базы».
Можно создать базу и из шаблона, но это займет больше времени. Быстрее создать пустую базу, учитывая то, что на нее мы будем грузить копию.
Укажем название базы и папку для ее хранения.
Затем заходим в созданную базу в Конфигураторе.
Переходим в меню «Администрирование — Загрузить информационную базу».
Выбираем наш файл с расширением *dt и нажимаем «Открыть».
Нажимаем «Да» на предупреждение.
Через некоторое время база будет загружена.
Здесь нажмем «Нет», если не нужно заходить повторно в Конфигуратор загруженнной базы.
В итоге мы получим базу с данными из копии.
Загрузка копии в рабочую базу
В этом случае новую базу создавать не нужно.
Просто заходим в Конфигуратор той базы, которую нужно заменить на копию.
Затем выполняем описанные выше действия по загрузке файла dt.
Каждый, кто работает с 1С:Предприятие в любой конфигурации хотя бы раз видел перед глазами окно с ошибкой «Ошибка формата потока».
Данное окно входит в ТОП-3 самых распространенных ошибок 1С:Предприятие. Оно неприятно из-за своей не информативности. Непонятно: где, в чем ошибка? Естественной реакцией будет нажатие кнопки «Перезапустить», но с высокой вероятностью можно утверждать, что перезапуск проблему не устранит, и пользователь снова увидит данное окно.
В этой статье будут объяснены причины возникновения, разновидности и способы устранения «Ошибки формата потока» 1С.
Почему 1С 8 пишет «Ошибки формата потока»?
Программа 1С:Предприятие создана таким образом, что в процессе работы постоянно стремится оптимизировать скорость выполнения операций. С этой целью на компьютере пользователя создается «кэш», в котором хранится часто используемая информация, например: расположение и формы окон, служебные данные пользователя, настройки отборов, шрифтов и т.д. Кэширование позволяет сократить количество обращений к серверу и, тем самым, повысить скорость работы 1С:Предприятие.
Но что произойдет, если файл “кэша” будет записан с ошибкой/ошибками, в результате неправильного завершения сеанса работы, либо скачка напряжения, либо сбоя сети (для клиент-серверного варианта работы 1С)? При следующей попытке обращения к “кэшу” 1С не сможет прочитать файл и появится окно “Ошибка формата потока”. “Битый кэш” является самой частой причиной возникновения этой ошибки.
Кроме некорректно записанного кэша могут быть также некорректно записаны документы (или справочники, или любой другой объект) в информационную базу и это тоже может стать причиной возникновения рассматриваемой в данной статье ошибки.
Виды ошибки формата потока
Условно ошибку формата потока 1С можно поделить на 2 вида:
Как устранить “Ошибку формата потока”?
Рассмотрим ТОП способов решения :
1. Почистить кэш 1С
Важно! Удалять папки можно только тогда, когда завершены процессы работы с 1С:Предприятие.
2. Запустить тестирование и исправление 1С
В режиме конфигуратора нужно кликнуть по пункту меню “Администрирование” и затем “Тестирование и исправление”.
3. Запуск«chdbfl.exe»
4. Выгрузить и загрузить информационную базу в .dt
В режиме конфигуратора выберите пункт меню “Администрирование” и кликните “Выгрузить информационную базу”. После этого выберите место куда хотите сохранить файл базы (.dt), задайте файлу имя и нажмите “Сохранить”.
После этого создайте новую пустую базу у себя на компьютере (либо на сервере). Зайдите в конфигуратор новой базы, нажмите “Администрирование”, затем “Загрузить информационную базу”. Выберите подготовленный ранее файл и нажмите “Открыть”.
5. Выгрузить и загрузить данные XML.
Данный способ может повлечь потерю данных, поэтому его рекомендуется использовать только опытным пользователям. Способ схож с предыдущим и заключается в том, что сначала база выгружается, (только не в .dt, как в предыдущем способе, а в специальный формат .XML). Затем база загружается обратно. Делается это с помощью встроенной обработки “Выгрузка и загрузка данных XML”.
6.Обновление 1С
7. Другие способы
В 99% случаев вышеописанные способы борьбы с “Ошибкой формата потока” эффективно сделают свою работу и ошибка “уйдет”. В оставшемся 1% придется применять более сложную диагностику, иногда выходящую за рамки 1С, например: почистить временные файлы компьютера, а не только кэш 1С; проверить жесткий диск на битые сектора при помощи утилиты “chkdsk.exe”; проверить компьютер антивирусом. Можно даже попробовать запустить базу 1С на другом компьютере и таким образом локализовать проблему, убедившись, что ошибка кроется именно в информационной базе, а не в железе и не в Операционной Системе.
Данная статья создана в помощь столкнувшимся с ошибкой 1С “Ошибка формата потока”, здесь были рассмотрены и объяснены причины ее появления, её условные виды и способы устранения. Ошибка выглядит страшно и непонятно из-за своей неопределенности, но, как видим, устранить данную ошибку по силам каждому.
Читайте также: