Таблица не найдена константы константы как константы

Таблица не найдена константы константы как константы

Ошибка СУБД:
Microsoft OLE DB Provider for SQL Server: Журнал транзакций для базы данных «zup» заполнен. Чтобы обнаружить причину, по которой место в журнале не может быть повторно использовано, обратитесь к столбцу log_reuse_wait_desc таблицы
sys. databases HRESULT=80040E14, SQLStvr: Error state=2, Severity=11,native=9002, line=1
или
Ошибка СУБД:
Microsoft OLE Provider for SQL Server: The transaction log for database «DataBase” is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column is sys.database
HRESULT=80040E14, SQLSTATE=4 2000, native=9002
Решение:
1. Посмотрите сколько свободного места осталось на дисках, может его нет и логу некуда записаться…
2. Это ошибка Microsoft SQL Server — переполняется лог транзакций и не очищается. Урезать его возможно различными способами, в том числе и с помощью стандартной оснастки, но не всегда данная операция получается, и размер файла лога остается прежним. Как вариант предлагаю следующее решение из двух строчек:
для использования убрать символ _

Сегодня после обновления 1С:Бухгалтерии предприятия на версию 2.0.64.6, при открытии Регламентированных отчетов стала появляться ошибка следующего содержания:

<(5, 2)>: Таблица не найдена «Константы» >Константы КАК Константы

Причем ошибка появилась сразу на нескольких базах и у всех пользователей. Также эта ошибка выходила при просмотре регламентированных отчетов и журналов документов.

Следующие варианты помогли в разных случаях:

  • Обновление платформы до актуальной версии
  • Зайти в режим «Конфигуратор» (остальные пользователи при этом должны выйти из программы). Перейти в меню Администрирование -> Тестирование и исправление
  • Проверка через chdbfl. Зайдите в папку, в которую у вас установлена 1С. Обычно это ‘C:Program Files1cv8’. Здесь вы увидите папки в названии которых присутствуют цифры, обозначающие номера версий платформы. Выберите папку с самой старшей версией (Например 8.3.8.2054): Найдите файл с названием chdbfl

Доброго времени суток, уважаемые читатели блога SoftMaker.kz. Сегодня мы поговорим, как побороть ошибку, возникающую
в файловой базе 1С при неправильном закрытии системы 1С:Предприятие, например при внезапном отключении света или
неправильной работе компьютера (работает и в случае, если
1С:Предприятие 8 установлено на MS SQL Server 2008 R2 Express).
Ошибка СУБД: Ошибка SQL: «Таблица не найдена: _Reference76» появлялась, когда производилось

тестирование и исправление информационной базы (ТиИ ИБ) при прохождении проверки логической целостности ИБ.
При попытке выгрузить ИБ Конфигуратор вылетал.

Проверка физической целостности файла 1Cv8.1CD с помощью утилиты chdbfl.exe
показало, что ошибок не обнаружено. Поэтому пришлось идти другим путём и получилось следующее:

Определяем как в базе называется таблица _Reference76 с помощью внешней обработки 1С

В случае ошибки СУБД: Ошибка SQL: Таблица не найдена _Reference76 сразу становится ясно, что была удалена
таблица «_Reference76» и из названия ясно, что это какой-то справочник. Но как теперь определить,
к какому именно справочнику таблица «_Reference76» относится, чтобы попытаться её восстановить?
Для этого можно написать небольшую обработку для выяснения названия:

В результате работы обработки выяснилось, что таблица «_Reference76» относится к справочнику «Спецификации номенклатуры».

Обработку для поиска соответствия названия справочников конфигурации 1С и их внутренних таблиц можно скачать

отсюда.

Заменяем справочник «Спецификации номенклатуры» на новый

Теперь заменим справочник «Спецификации номенклатуры» на новый. Для этого выполним следующие действия:

  • Изменим наименование справочника «СпецификацииНоменклатуры» на «ЯСпецификацииНоменклатуры».
    Нажмём правой кнопкой мыши на справочнике «СпецификацииНоменклатуры» и в контекстном меню выберем пункт
    «Свойства» и в поле «Имя» изменим наименование.
  • Теперь отсортируем справочники в дереве метаданных по имени. Нажмём правой кнопкой мыши
    на справочнике «СпецификацииНоменклатуры» и в контекстном меню выберем пункт
    «Сортировать…». Cправочник «СпецификацииНоменклатуры» оказался в самом низу, нам это
    пригодится в дальнейшем.
  • Теперь заменим справочник «Спецификации номенклатуры» на новый. Для этого нужна идентичная
    конфигурация с неповреждённым справочником «Спецификации номенклатуры». Нужно открыть эту конфигурацию
    в режиме «Конфигуратор» и выделить справочник «Спецификации номенклатуры» в дереве метаданных и
    скопировать его (Ctrl+C).

  • Открываем «Конфигуратор» с повреждённой базой и вставляем новый справочником «Спецификации номенклатуры» (Ctrl+V).
  • Теперь снимем с поддержки справочник «ЯСпецификацииНоменклатуры», чтобы затем удалить его.
    «Конфигурация» | «Поддержка» | «Настройка поддержки». В дереве метаданных выберем справочник
    «ЯСпецификацииНоменклатуры» и двойным щелчком мыши на справочнике откроем следующий диалог:
  • В диалоге «Настройка правил поддержки» выберем правило «Объект поставщика снят с поддержки» и поставим
    флажок «Установить для подчинённых объектов».
  • После снятия с поддержки справочники «ЯСпецификацииНоменклатуры» и «СпецификацииНоменклатуры» в дереве метаданных
    конфигурации выглядят следующим образом:
  • Убираем ссылки со старого справочника «Спецификации номенклатуры» и удаляем его

      Жмём правой кнопкой мыши на справочнике «ЯСпецификацииНоменклатуры» и в контекстном меню выбираем пункт
      «Удалить». Появилось сообщение Конфигуратора: «Объект не может быть удален, так как на него имеются ссылки
      в других объектах!»

    Нажимаем на кнопку «ОК». В окне служебных сообщений видим список объектов, которые содержат в себе ссылки на
    справочник «ЯСпецификацииНоменклатуры». Этот список поможет быстро заменить ссылки со справочника
    «ЯСпецификацииНоменклатуры» на справочник «СпецификацииНоменклатуры». Приступим.

    Чтобы заменить ссылки в объектах нажимаем на каждую строку списка двойным кликом.
    Для примера возьмём первый элемент списка «ПодпискаНаСобытие.ПриУстановкеНовогоКодаСправочника.Источник»

    После двойного клика на этом элементе, в дереве метаданных откроется объект и
    в нём мы найдем ссылку на справочник «ЯСпецификацииНоменклатуры».

    Два раза нажимаем левой кнопкой мыши, чтобы открыть свойство объекта, в котором содержится ссылка на
    справочник «ЯСпецификацииНоменклатуры».

    Как видно из вышеприведённого изображения в поле «Источник» содержится составной тип, в который входит и
    справочник «ЯСпецификацииНоменклатуры». Заменим ссылку со справочника «ЯСпецификацииНоменклатуры»
    на справочник «СпецификацииНоменклатуры» в диалоге редактирования составного типа данных.
    Ссылка заменяется снятием флажка напротив справочника «ЯСпецификацииНоменклатуры» и
    установкой флажка напротив справочника «СпецификацииНоменклатуры».

  • Эти же самые действия проделываем для всех элементов

    вышеприведённого списка.

  • Открываем каждый объект и заменяем в нём ссылки.
  • После замены ссылок объект спокойно удаляется.
  • Сохраняем конфигурацию, нажав, клавишу «F7».
  • Теперь новый справочник «СпецификацииНоменклатуры» ссылается на новую таблицу в базе 1С — _Reference6845.
    Если в справочнике были какие-нибудь данные, то они уже уничтожены, поэтому нужно их восстановить.
    Это можно сделать воспользовавшись советами статьи

    Как выгрузить данные в идентичную конфигурацию 1С?

    Если была удалена другая таблица, например _DOCUMENT, тогда нужно изменить обработку для поиска
    соответствия названия документов конфигурации 1С и их внутренних таблиц, а шаги проделать те же самые.

    Сегодня, после обновления 1С:Бухгалтерии предприятия, на версию 2.0.64.6, при открытии Регламентированных отчетов стала появляться ошибка следующего содержания:

    <(5, 2)>: Таблица не найдена «Константы»
    >Константы КАК Константы

    Если нажать кнопку «Подробно», то получали ошибку:

    Причем ошибка появилась сразу на нескольких базах и у всех пользователей. Также эта ошибка выходила при просмотре журнала документов Реализация товаров и услуг.

    Решение проблемы

    В результате было найдено два способа решения этой проблемы.

    Способ №1

    У клиента использовалась платформа 8.2.19.106, и проблема решилась обновлением до версии 8.3.5.1383

    Способ №2

    Необходимо зайти в режим «Конфигуратор» (остальные пользователи при этом должны выйти из программы). Перейти в меню Администрирование -> Тестирование и исправление.

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

    45 пользователя считают данную страницу полезной. Информация актуальна! Страница была обновлена 16.12.2019

    После перехода версию платформы 1С 8.3.4 и выше зачастую появляется сообщение подобного содержания:

    Данная ошибка появляется только на клиент-серверной версии MS SQL Server. Связано это с тем, что начиная с релиза 8.3.4 технологическая платформа 1С учитывает еще и региональные настройки программы.

    Исправление

    Collation — это схема сопоставления, в которой содержатся правила сортировки и сравнения символов в базе данных. Ранее, по умолчанию(«Latin1_General»), в документации 1С нигде не было указаний по установке правильного параметра «collation», теперь же при установке SQL сервера необходимо это учитывать.

    Изменить этот параметр представляется возможным только в версии MS SQL 2000 (запрос — ALTER DATABASE «ИмяБд» COLLATE «НоваяКодировка»). В остальных версиях изменение возможно только rebuild’ом, то есть по сути переустановкой СУБД.

    При переустановке необходимо обратить внимание на соответствующий параметр в установщике:

    К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

    Вместо вступления (из сериала House M.D. о диагностике и поиске решений)

    • Д-р Кадди: Нужен диагноз. Женщина, 26 лет, взрыв газа под зданием, её вытащили из под обломков через 6 часов. Две операции из-за многочисленных переломов и ожогов…
      Д-р Хаус: Думаю, сломанные кости это следствие обрушавшегося ей на голову здания.
    • Д-р Хаус: Представьте, что крыша кладовки обрушилась на вашу любимую поломоечную машину. И та начинает перегреваться.
      Уборщик: Почему я должен любить поломоечную машину? Ладно… Может, от удара повредилось что-нибудь в электропроводке. Или что-то затекло внутрь и испортило её…
      Д-р Хаус: Хм, интересно. Проникновение инфекции через рваные раны. Бактерии отреагировали бы на антибиотики. Для вируса слишком сильный жар.Возможно, паразиты или грибки.
      Уборщик:Или волчанка.
      Хаус в изумлении оборачивается
      Уборщик: У моей бабушки волчанка.
      Д-р Хаус:(озадаченно) Хорошо,ауто-имунная. Проверю на волчанку. Хотя больше подходит инфекция. Хорошо бы ещё её карту. Приступим к худшей части работы. К общению с семьей поломоечной машины.
    • Д-р Хаус: В карточке указано, что она была больна ещё до того, как здание обрушилось.
      Муж пациентки: Я считаю, что это обычная простуда. А что, вы считаете это связано?
      Д-р Хаус: Её болезнь с её болезнью? Порой случается.
    • Мать пациентки: В дневнике сказано, что моя дочь принимает эти таблетки?
      Д-р Хаус: Нет, но с медицинской точки зрения…
      Д-р Кадди: Вы нашли таблетки в её доме?
      Д-р Хаус: Очевидно, она прятала их в сумочке. Подумал, будет неприлично искать под 1000 тонн обломков.
    • Хирург: У неё повсюду кровотечения, разве что аборт сделали при помощи дробовика.

    В этой статье показан пример общих принципов разбора технологических вопросов, которые могут появляться при работе с 1С:Предприятие 8.1.

    Давать советы любят все, но когда доходит до дела, у всех резко находятся более важные дела :))) . Наверно будет честным сразу предупредить, что данный материал написан мной скорее как информация для размышления, а не теория решения личных проблем и неприятных ситуаций по работе. Тем не менее мне думается, приведеные здесь примеры из моей практики могут пригодиться при разборе аналогичных проблем.

    В качестве примеров будут разобраны:

    Пример 1. Пользователь пожаловался на невозможность запуска 1С:Бухгалтерия.

    «Ошибка соединения с сервером 1с: Предприятия 8.1:
    server_addr=App1С:1540=Ошибка сетевого доступа к серверу
    (Windows sockets – 10061(0x0000274D)
    No connection could be made because the target machine actively refused it) line =567

    Пример 2. «Потерялся» доступ к информационной базе.

    Ошибка при выполнении операции с информационной базой

    Microsoft OLE DB provider for SQL Server: Login failed for user ‘user1c’

    H RESULT=80040E4D, SQLSrvr: Error state=1, Severity=E, native=18456, line=1

    Пример 3. Странная «неизвестная» ошибка.

    Текст сообщения: «Произошла неизвестная ошибка на сервере 1С предприятие (80010108)»

    Определение текста (проявления) ошибки и локализация источника возникновения

    • Зафиксируйте ошибку (текст и/или другую информацию, которая может пригодиться для анализа проблемы). Проблему лучше фиксировать с помощью технологического журнала. Вывод: если вы не используете технологический журнал для других задач, настройте его на постоянный лог сбор событий «исключений» (EXCP) и формирование дампов случае падения платформы.
    • Зафиксируйте время возникновения ошибки. Это в дальнейшем поможет локализовать место изучения различных логов.
    • ПРОЧТИТЕ текст сообщения, попытайтесь сразу понять источник возникновения проблемы из содержимого этого текста.
    • Выполните поиск решения по тексту сообщения в интернете или в других известных вам источниках решения проблемы.
    • Те, кто до этого не занимались решением проблем с ошибками платформы, решать их не будут, ищете тех кто этим занимался или занимается.

    Примечание. Пример 1. Поиск в ниже в разделе «Где можно найти готовое решение» по приведенным на данной странице тексту «10061» покажет сразу объяснение причины и решение: на сервере приложений остановлена служба «Агент сервера 1с:Предприятие 8.1». Соответственно ее надо запустить, например из командной строки:

    net start Агент сервера 1с:Предприятие 8.1

    Если сервер приложений не стартует, в некоторых случаях сделайте копию папки C:Program Files1cv81server и удалите содержимое перед попыткой старта.

    Воспроизведение ошибки

    Не занимайтесь анализом проблемы, если можете сразу по коду или тексту ошибки найти решение. Анализ нужно делать, если решение не помогло или проблема неизвестна. Во втором случае потребуется научиться воспроизводить ошибку, выявить факторы-провокаторы и понять причины. Затем подобрать одно, а повозможности несколько вариантов решения, различающихся по цене.

    Для локализация источника ВДУМЫВАЙТЕСЬ в текст сообщения об ошибке. Если под подозрением несколько источников, старайтесь исключать поочередно (если это возможно) каждый источник по-одному. Для локализации пользователя-виновника в коде сервера приложений можно попытаться создать временно рабочих процессов по количеству пользователей.

    Технологический журнал

    Используя технологический журнал можно исследовать все проблемы, возникающие «внутри» клиент-серверного варианта. Прибегайте к другим логам, то если для этого есть важные причины. Если вы не пользовались технологическим журналом или не хотите – ЭТО НЕ ВАЖНАЯ ПРИЧИНА И СНИЖЕНИЕ ВЕРОЯТНОСТИ НАЙТИ РЕШЕНИЕ. Технологический журнал создавался именно для решения этих задач.

    Опрос пользователей

    «Все лгут» (Everybody lies) © Хаус

    С опросом пользователей надо аккуратней. Этот способ диагностики лучше применять, только после того как будут использованы и проанализированы все дургие источники информации. Опять таки, все время в опросе концентрироваться на главном вопросе и/или постораться понять, ради чего лгут.

    Воспроизведение проблемы

    Иногда воспроизведение проблеммы дает интересные результаты.

    Перед выполнением каких-либо «научно-исследовательских действий» обязательно сделайте бэкап.

    Примечание. Пример 2. Ответим на вопрос об источнике проблемы на основании текста сообщения «provider for SQL Server». Это означает, что проблема возникла при взаимодействии сервера приложений 1С, который является клиентом для SQL Server. Уточняющее описание «Login failed for user ‘user1c’» – позволяет определить, что ошибка возникла при неудачной авторизации пользователя «user1c», который создан на SQL Server.

    Чтобы закрепить предположение задаем вопрос нескольким пользователям, работает ли у них в данный момент информационная база. Пользователи в нашем примере дружно ответили, что никто работать не может. Это в свою очередь исключает «вину» клиентской части 1С:Предприятие, так как тогда эффект вряд ли бы был у всех.

    Решение:

    Запускаем Management Studio и пробуем подключиться к серверу под «user1c». Оказывается, администратор сервера сменил пароль логину «user1c». При этом в настройках информационной базы в кластере серверов остался «старый» пароль.

    После обновления пароля у информационной базы в кластере серверов 1С:Предприятие проблема исчезла.

    Поиск решений

    • Поиск решения проблемы на практике часто полезно начинать с вопроса: А может быть у вас есть бэкап и дешевле откатиться на него? Конечно это подходит не всегда и не всем 🙂
    • Для поиска воспользуйтесь сначала поисковиком.
    • Не помог поисковик, обратитесь на форумы forum.mista.ru и partners.v8.1c.ru (правда это автоматически обозначает, что вы скорее всего поленились выполнить поиск).
    • Для часто повторяющихся проблем человечество предумало всякие «базы знаний», «книги знаний», «доступ к материалам техподдержки».

    Примечание. Пример 3. Поисковая система Google (www.google.ru) выдала такую причину «The object invoked has disconnected from its clients». Т.е. по некой причине соединение сервера 1С:Предприятие было отключено. Попробуем определить возможные причины отключения соединения: определим, возникает ли такая ошибка одновременно у всех пользователей. Ошибка возникает по таймауту (т.е. через некоторое время после установки соединения). Уточним, всегда ли таймаут постоянный, каково время таймаута. Определим, есть ли настройки в системе, увязывающие работоспособность с неким параметром, имеющим значение близкое к нашему времени таймаута.

    Как показывает практика, часто на сервере ошибочно включен режим энергосбережения, который через определенный промежуток времени приостанавливает активность сервера.

    В данном примере «Схема управления питанием» имела настройку «Отключение дисков» = 20 минут, что коррелировало с 20 минутными периодами возникновения этой ошибки.

    Пример №4. Описан здесь.

    Накопление статистики

    Я сказал, что у нас есть три человека.

    Это шесть ног.

    Так что три болят из-за бега,

    две пострадали при авариях,

    и ещё одна нога беременна.

    © Хаус

    Напрасно многие столкнувшиеся с проблемой, считают проблему уникальной. Часто это просто нехватка информационного обмена с аналогичными попытками других коллег. Полезность знания статистики известна не многим, но кто ею пользуются, экономят кучу времени.

    Где можно найти готовое решение

    В настоящее время большинство технологических вопросов достаточно легко решить, так как по ним в Интернете накоплены знания.

    Ниже приведен пример моего каталога. Достаточно выполнить поиск по коду ошибки или части текста сообщения.

    Ошибка СУБД:
    Microsoft OLE DB Provider for SQL Server: Журнал транзакций для базы данных «zup» заполнен. Чтобы обнаружить причину, по которой место в журнале не может быть повторно использовано, обратитесь к столбцу log_reuse_wait_desc таблицы
    sys. databases HRESULT=80040E14, SQLStvr: Error state=2, Severity=11,native=9002, line=1

    Решение:
    1. Посмотрите сколько свободного места осталось на дисках, может его нет и логу некуда записаться.
    2. Это ошибка Microsoft SQL Server – переполняется лог транзакций и не очищается. Урезать его возможно различными способами, в том числе и с помощью стандартной оснастки, но не всегда данная операция получается, и размер файла лога остается прежним. Как вариант предлагаю следующее решение из двух строчек:
    для использования убрать символ _
    Код SQL
    Где myDataBase – имя базы данных, 20 – Размер лога в мегабайтах.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *