О возрастной «разнице»…

Есть одно не хитрое житейское наблюдение:

Дата выхода (технологическая, а не продажи вам лично) платформы 1С:Предприятия, операционной системы, субд, сопровождающего ПО и ВНИМАНИЕ! железа
должны различаться не больше чем на несколько лет!

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

Это не означает что совсем не будет работать, но вы сами со временем поймете о чём эта мысль….

Ошибка сетевого доступа к серверу. (Windows Sockets — 10106(0x0000277A)

 Почему возникает такая проблема

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

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

… Ошибка сетевого доступа к серверу. (Windows Sockets — 10106(0x0000277A)…
На сайте Microsoft есть такая трактовка этой ошибки:

Не удалось инициализировать Service provider.
Запрошенный service provider не может быть загружен или инициализирован. Эта ошибка выдается, если соответствующий service provider’s DLL не загрузился (LoadLibrary failed) или the provider’s WSPStartup или NSPStartup функция failed.

При этом хранилище доступно по протоколу tcp.

Как устраняется проблема

1. Для решения проблемы надо воспользоваться утилитами Sysinternals REGMON и FILEMON.

2. Проверить права на реестр с помощью REGMON и при необходимости исправить:

Отследить сервис w3wp.exe (IIS) в момент попытки соединится с хранилищем

Отсеживаем ключи

HKLM\SYSTEM\Services\Winsock\Parameters
HKLM\SYSTEM\Services\TCPIP\Parameters
HKLM\SYSTEM\Services\NetBIOS\Parameters
HKLM\SYSTEM\Services\Gpc\Parameters

В этом случаи потребовалось дать права IUSR_SRVNAME на чтение.

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

В конкретном разбираемом случаи, после обращения к файлу «repository.1ccr» сервис w3wp.exe от имени IUSR_SRVNAME пытается обратиться к DLL «DRWEBSP.DLL» — «Dr.Web Winsock Provider Hook» (Это от DrWeb — a)  ACCESS DENIED .

Внимание! Это не стандартная ситуация. Чаще всего это либо не проявится вообще, либо может быть другое приложение.

Даем права на чтение и выполнение IUSR_SRVNAME.

При следующей попытке соединиться к хранилищем получаем обращение к DLL «wshtcpip.dll» — «Windows Sockets Helper DLL»  ACCESS DENIED.

Внимание! Это тоже не стандартная ситуация. Чаще всего это либо не проявится вообще, либо может быть другое приложение.

Даем права на чтение и выполнение IUSR_SRVNAME.

filemon

 

В данном конкретном примере это оказалось решением.

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

Как восстановить базы данных без лога *.ldf

1. Создаем новую базу с таким же именем и такими же по именам и расположению .mdf и .ldf файлами

2. Останавливаем сервер, подменяем файл .mdf

3. Стартуем сервер, не обращаем внимания на статус базы

4. Из «Query Analyzer» выполняем скрипт:

SQL
Use master
go
sp_configure ‘allow updates’, 1
reconfigure with override
go

4. Там же выполняем:

SQL
select status from sysdatabases where name = ‘<db_name>’

и запоминаем/записываем значение на случай неудачи ребилда лога.

5. Там же выполняем:

SQL
update sysdatabases set status= 32768 where name = ‘<db_name>’

6. Перезапускаем SQL Server.

7. В принципе база должна быть видна (в emergency mode). Можно, например, заскриптовать все объекты.

8. Из «Query Analyzer» выполняем:

SQL
DBCC REBUILD_LOG(‘<db_name>’, ‘<имя нового лога с указанием полного пути>’)

SQL Server скажет — Warning: The log for database ‘<db_name>’ has been rebuilt.

9. Если все нормально, то там же выполняем:

SQL
Use master
go
sp_dboption ‘<db_name>’, ‘single_user’, ‘true’
go
USE <db_name>
GO
DBCC CHECKDB(‘<db_name>’, REPAIR_ALLOW_DATA_LOSS)
go

9a.
Если Вам не удалось перевести базу в single user mode, то для проверки целостности данных можно попробовать dbo only mode
sp_dboption », ‘dbo use only’, ‘true’

10. Если все в порядке, то:

SQL
sp_dboption ‘<db_name>’, ‘single_user’, ‘false’
go
Use master
go
sp_configure ‘allow updates’, 0
go

 

Особенности 8.3.14

Добавлен встроенный веб-сервер (только для одной базы, из командной строки управление).

Реализован упрощенный OLAP . Теперь можно работать на чтение с копией таблицы с ведомой СУБД.
Реализовано событие технологического журнала <DBCOPIES>.Механизм копий базы данных требует лицензию КОРП.

При чтении помещеной копии таблицы в таблицу Inmemory используется новый механизм Дата акселератор. Добавлен в виде отдельной функции менеджера кластера.

Добавлен альтернативный механизм управления сервером 1С программно и кроссплатформенно, реализован объект АдминистрированиеСервера . Дополнительно смотрите https://wonderland.v8.1c.ru/blog/razvitie-klastera-serverov/

Улучшен механизм счетчиков  потребления ресурсов — реализована возможность отбора по признаку использования безопасного режима работы и профиля безопасности (добавлены новые типы фильтров).Для выражений отбора счетчика потребления ресурсов реализована возможность сравнения на неравенство. Для выражений отбора счетчика потребления ресурсов реализована возможность объединять «по И» несколько условий на один тип фильтра.

Реализован пакетный режим работы тонкого и толстого клиентских приложений. Пакетный режим распространяется от начала запуска клиентского приложения до окончания работы обработчика ПередНачаломРаботыСистемы модуля приложения. После окончания работы обработчика пакетный режим автоматически отключается. В пакетном режиме запуска подавляется вывод любых диалогов системы. Признаком пакетного режима работы клиентского приложения является команда командной строки запуска /DisableStartupDialogs.

Больше не поддерживается интерфейс 8.2

Уменьшено время полного пересчета итогов для регистров бухгалтерии и накопления в следующих случаях:

  • пересчет итогов во время операции Тестирование и исправление из конфигуратора;
  • использование метода ПересчитатьИтоги() при выполнении следующих условий:
    • монопольный доступ к информационной базе;
    • наличие административных прав у пользователя, от имени которого выполняется пересчет итогов;
    • метод исполняется в сеансе, в котором не используется ни одного разделителя.

Ускорено выполнение реструктуризации информационной базы при использовании СУБД Microsoft SQL Server и IBM DB2.

Уменьшилась вероятность одновременного закрытия множества соединений с Microsoft SQL Server, что положительно влияет на производительность работы с TempDB.

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

Для динамического списка реализована возможность указания полей, которые будут использоваться в качестве ключевых полей выборки. Повышена производительность при использовании динамических списков с отсутствующей основной таблицей. Например, для динамического списка без основной таблицы, стало возможно использование группировки. Дополнительно смотрите https://wonderland.v8.1c.ru/blog/razvitie-dinamicheskikh-spiskov-s-proizvolnymi-zaprosami/

 Больше не поддерживается IE. У поля, имеющего вид ПолеHTMLДокумента, изменится с COMОбъект на ВнешнийОбъект. Ухудшится Windows-совместимость. Дополнительно смотрите https://wonderland.v8.1c.ru/blog/perevod-klientskikh-prilozheniy-dlya-windows-na-ispolzovanie-webkit-optimizatsiya-otobrazheniya-html/

В тонком, толстом и веб-клиентах, форма снимает блокировку объекта через 1 минуту после снятия признака модифицированности.(раньше снималась при закрытии формы)При работе под управлением СУБД PostgreSQL, в технологический журнал (событие <plansql>) помещаются планы запросов для запросов UPDATEDELETE и INSERT. (Раньше был только SELECT)

 Реализовано отображение критических ошибок оптимизированного механизма обновления конфигурации базы данных в конфигураторе и в событии <EXCP> технологического журнала.

В технологическом журнале реализованы свойства DbmsDatabaseDBCopy для событий обращения к СУБД (DB2DBMSSQLDBPOSTGRSDBORACLE), событий EXCP и SDBL.

 Добавлен Механизм решения систем линейных алгебраических уравнений

смотрите https://wonderland.v8.1c.ru/blog/mekhanizm-resheniya-sistem-lineynykh-algebraicheskikh-uravneniy/

Подробнее http://downloads.v8.1c.ru/content//Platform/8_3_14_1565/1cv8upd_8_3_14_1565.htm

Как найти дубликат записи

Заметка

Дублирование записей с одним полем

SELECT name, COUNT(email)
FROM users
GROUP BY email
HAVING COUNT(email) > 1

 

Дублирование записей с несколькими полями

SELECT name, email, COUNT(*)
FROM users
GROUP BY name, email
HAVING COUNT(*) > 1

 

Ошибка СУБД: Размер (39), выделенный тип «numeric», превышает максимально допустимое значение (38)

Это зарегистрированная ошибка платформы 8.3.12.1412. Возникает когда есть ИТОГИ в запросе .

Временные костыли:

1. пересчет итогов
2. смещение даты актуальности итогов
3.  итоговое поле в запросе через Выразить(МоеПоле Как Число(15,2))

1С Ошибка. Windows error: Ошибка исполнения функции — при установке платформы 1С

По адресу C:\ProgramData\1C\1CEStart находим файл 1CEStart.cfg, редактируем его — удаляем текст ADMINISTRATIONFUNC=0 и сохраняем файл. После этого установка выполняется нормально без ошибки.

Область блокировок 1С REFLOCK.INIT

Возможно при расследовании событий TLOCK технологического журнала Вам пригодится:

REFLOCK.INIT — пространство блокировки предопределенных данных области.

При первом обращении к разделенной таблице из новой области данных платформа проверяет наличие в ней предопределенных данных и создает предопределенные данные в случае их отсутствия. Проверка и добавление выполняется в транзакции с расстановкой управляемых блокировок для исключения несогласованных действий, например, вставки двух комплектов предопределенных данных. Для исключения длительных транзакционных блокировок данное действие выполняется от имени отдельного временного соединения с информационной базой, в которой гарантированно отсутствует объемлющая транзакция. t:tmpConnectID — это — номер временного соединения.

Разброс времени на разных компьютерах может приводить к обрыву соединений

Причиной перезапуска процессов может являться изменение системного времени. Из-за этого процесс rmngr фиксирует исчерпание таймаута ожидания принга от рабочего процесса и считает рабочий процесс пропавшим. Это происходит например если у вас включена синхронизация с NTP сервером, и периодически происходит значительная корректировка времени. Это можно обнаружить в журнале событий Windows по событию от Kernel-General об изменении времени  Event Viewer — группа Windows Log — журнал System — отбор (Filter Current Log) по Event Sources = Kernel General и Event ID = 1 типа такого:
The system time has changed to ‎2017‎-‎01‎-‎30T13:31:54.401000000Z from ‎2017‎-‎01‎-‎30T13:31:49.686072200Z.
Change Reason: An application or system component changed the time.

 

Запускается новый рабочий процесс сервера 1С, а старый завершается. Тайм-аут по умолчанию равен 5 секундам.
Пользователями это воспринимается как массовое подвисание.

Для его изменения можно запустить ragent с параметрами, например, -pingperiod 3000 -pingtimeout 15000.

Недопустимое преобразование типов данных в записи

Ошибка СУБД:
Microsoft SQL Native Client: Conversion failed when converting date and/or time from character string.
HRESULT=80004005, SQLSrvr: SQLSTATE=22007, state=1, Severity=10, native=241, line=1

ошибка может возникать например в момент обновления БД при изменении режима совместимости на «Не использовать»

Вариант решения: Установить native client на все рабочие сервера 1С кластера 1С.

Особенности 8.3.10

Реализована поддержка СУБД PostgreSQL версии 9.6.

 Смотрите также http://1c.ru/news/pressrelise.jsp?id=1847

Повышена масштабируемость кластера серверов в том случае, если:

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

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

Упрощена диагностика использования циклических ссылок при работе встроенного языка.

Реализована возможность дополнительно обработать данные, которые получил динамический список для отображения. Реализовано событие ПриПолученииДанныхНаСервере. Дополнительно смотрите https://wonderland.v8.1c.ru/blog/obrabotka-i-oformlenie-dannykh-dinamicheskogo-spiska/

В технологическом журнале реализовано отражение событий, связанных с:

  • получением и освобождением лицензий (как программных, так и ключей HASP);
  • получением лицензий на базовые версии;
  • регулярным мониторингом соответствия реального оборудования и списка оборудования, зафиксированного в лицензии.

Реализовано событие технологического журнала <LIC>.

Событие технологического журнала <HASP> предоставляет возможность анализа только технологических аспектов работы с ключами HASP (вызовы интерфейса работы с HASP), не предоставляя возможности отслеживать получение и освобождение лицензий, получаемых с ключей HASP.

Реализовано журналирование событий, возникающих при первом соединении сервера «1С:Предприятия» с СУБД Microsoft SQL Server, в технологическом журнале. Журналирование выполняется с помощью события <DBMSSQLCONN>.

В документации данное изменение описано здесь и здесь.

Изменен подход к хранению истории исполнения фоновых и регламентных заданий. В клиент-серверном варианте история хранится в разрезе информационных баз. Для каждой информационной базы хранится история:

  • до 1 000 фоновых заданий, созданных из встроенного языка;
  • до 1 000 регламентных заданий;
  • до 1 000 системных фоновых заданий (формируемых самой системой).

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

Реализовано в версии 8.3.10.2168 в новое событие SCRIPTCIRCREFS  режим автоматического поиска циклических ссылок

Недопустимое имя объекта «#tt

Ошибка вроде как у платформу версии 8.3.9.1818 (Сервер 1С Предприятия x86-64) при работе базы начала вываливаться ошибка у пользователей:

Невосстановимая ошибка
Ошибка при выполнении запроса POST к ресурсу /e1cib/logForm:
по причине:
Ошибка СУБД:
Microsoft SQL Server Native Client 10.0: Недопустимое имя объекта «#tt1».
HRESULT=80040E37, SQLSrvr: SQLSTATE=42S02, state=1, Severity=10, native=208, line=1

имеет регистрацию на сайте 1С
Код ошибки: 50010160
Код(ы) обращения: CSR-12050 CSR-12078
Зарегистрирована: 19.10.2016

Замечено что в том числе  8.3.9  «не любит» конструкцию «В (&Массив…)»
например ЗКГУ (ОбщийМодуль.ЗарплатаКадрыРасширенный.Модуль : 5948 : Запрос.Выполнить();)

Также проблема проявляется при интенсивном использовании поиска по строке в динамических списках

1. Исправлена и проверена на практике в релизе  8.3.9.2170. Не возникает на 8.3.8.2167.

2. Проверьте также наличие сервиспаков MS SQL Server.

3. Выключите Shared Memory

Не завершаются терминальные сессии при закрытии 1С:Предприятия

У терминальных сервере под Windows Server 2003 x64, Windows Server 2008 x64, Windows Server 2008 R2 x64 может не завершаться терминальная сессия по окончанию работы с 1С. Причиной такого эффекта является является работа с принтером, которая происходит в запускаем процессе SplWOW64.exe.
server
Этот процесс автоматически завершается через некоторое время после выполнения задания печати. Задержка завершения процесса SplWOW64.exe позволяет повысить производительность повторных операций печати. Данный процесс используется для преобразований между 32-разрядными и 64-разрядными приложениями. Если данный процесс сам не завершился до закрытия «1С:Предприятия», то не происходит и закрытия терминальной сессии. Для решения проблемы необходимо уменьшить тайм-аут завершения процесса SplWOW64.exe. Для этого следует в значение системного реестра SplWOW64TimeOut установить в значение 1 (при отсутствии значения его следует создать с типом DWORD (32 бита)).
Ветка реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print
Добавить процесс SplWOW64.exe в список процессов, завершаемых при завершении терминальной сессии. Для этого следует значение системного реестра SPLWOW64.EXE установить в значение 0 (при отсутствии значения его следует создать с типом DWORD (32 бита)).
Ветка реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer\SysProcs

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

При открытии большого количества TCP-соединений есть вероятность того, что в операционной системе будут выбраны все доступные динамические порты.

По умолчанию в Windows в качестве динамических доступны порты в диапазоне 1024-5000.

 

Windows 2003

В ключе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters добавьте следующий параметр:

  •  MaxUserPort = dword: 64510

После выполнения настройки произведите перезапуск сервера.

Windows 2008 и старше

  1. В ключе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters добавьте следующие параметры:
    • MaxUserPort = dword:65534
    • MaxFreeTcbs = dword:100000
    • TcpTimedWaitDelay = dword:30
    • StrictTimeWaitSeqCheck = dword:
  2. Выполните настройку стека TCP/IP с помощью интерпретатора командной строки (cmd):
    netsh int ipv4 set dynamicport tcp start=1025 num=64510
    netsh int ipv4 set dynamicport udp start=1025 num=64510
    netsh int ipv6 set dynamicport tcp start=1025 num=64510
    netsh int ipv6 set dynamicport udp start=1025 num=64510

После выполнения настройки произведите перезагрузку сервера.

Попытка подключения к контексту сервера с неподходящей версией метаданных

В технологическом журнале могут встречаться сообщения типа: Попытка подключения к контексту сервера с неподходящей версией метаданных. Правильный контекст сервера…

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

В некоторых версиях платформы существует ошибка 10161275.

Настройка спящих сеансов

Спящие сеансы

spyashii-regim

При нештатном завершении клиентского приложения (обрыв связи или закрытие окна бразуера) клиентские лицензии «1С: Предприятие 8» могут блокироваться.

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

При нештатном завершении клиентского приложения сеанс удерживается еще 20 минут. После этого в версиях до 8.3.5 сеанс удалялся. С версии 8.3.5 сеанс засыпает в в спящем состоянии по умолчанию удерживается еще сутки. Спящий сеанс не занимает клиентскую лицензию «1С: Предприятие 8».

В версии 8.3.5 время засыпания сеанса и время удаления неиспользуемого спящего сеанса можно изменить с помощью специальной обработки или в Конфигураторе 1С в диалоге Администрирование/ Параметры информационной базы, установив рекомендуемые параметры спящего сеанса:

  • время засыпания пассивных сеансов — 300
  • время завершения спящих сеансов — 10

ib-settings

Кстати, кто спит, а кто активен всегда можно посмотреть через консоль сервера на закладке сеансов. В соответствующей колонке «Спящий» есть признак Да/Нет.

Штатно (по версии фирмы 1С) завершить работу в веб-клиенте можно командой «Файл»-«Выход». С версии 8.3.8 добавили команду завершения работы в заголовок приложения, рядом с кнопкой О программе. Она отображается в виде гиперссылки с именем текущего пользователя.При нажатии на гиперссылку открывается диалог с именем пользователя и командой Завершить работу.

Платформа  каждые 5 секунд делает пинги клиетом сервер 1С (видны пакеты по 4 байта).  На основании «пингов» сервер отслеживает целостность соединения с клиентским приложением. Отсутствие пингов в течение примерно 2 минут серввер интерпретирует как разрыв соединения.

В редакции  8.3.7.2008 исправлена ошибка незавершения спящих сеансов https://bugboard.v8.1c.ru/error/000013447.html

Ошибки в практике оптимизации производительности 1С

 

  • Изменения в системе делаются не по одному
    • Мигрируют с 8.2 на 8.3, с БП 2.0 на 3.0, с одного сервера на другой, несколько изменений в параметрах субд сразу…
    • Нельзя оценить вклад каждого изменения
  • «В нашей команде достаточно опытных разработчиков, настоящих профессионалов своего дела, поэтому через какое-то время мы всё же нагуглили решение.»
    • Изменения делаются «по лучшим практикам»
    • Потому что соседу помогло (добавить SSD)
    • Потому что так советует «авторитет/вендор» (использовать временные таблицы в запросах)
    • Не анализируются причины «лучших практик» и их уместность в конкретном случае
  • Заранее не оценивается ожидаемый эффект
    • Делается что легче
    • Анализ поверхностный
    • Не анализируется наиболее узкое место
    • Можно положить много сил на устранение второстепенных проблем, но не решим наиболее важную они будут не оценены

Проблемы при наличии двух сетевых карт на сервере

В некоторых случаях могут происходит странные ошибки, связанные со стабильностью работы платформы 1С:Предприятие 8.

Одной из рекомендаций является понизить приоритет протокола ipv6 или выключить его совсем.

В ряде случаев эти ошибки обусловлены тем, что клиент запрашивает у сервера его адрес, а сервер вместо адреса в формате IPv4 вида 192.168.1.2 возвращает адрес в формате IPv6 в формате вида ::1 или fe80::e168:38a1:5a4d:d271%40 (адреса взяты для примера, ключевое там — много групп цифр, разделённых вместо точек двоеточиями).
Увидеть это можно, выполнив в командной строке команду
ping servername
где вместо servername надо подставить имя своего сервера. Если ответ будет в формате IPv6 — ваш сервер тоже может быть подвержен такой проблеме.

Ранее в нашем блоге давалось решение вида «отключить протокол IPv6 полностью»: http://www.gilev.ru/disableipv6/, на Инфостарте проблема тоже обсуждалась: http://infostart.ru/public/160388/, решений приводилось два — полное отключение протокола IPv6 полностью, и занесение IP-адреса сервера в файл hosts.
Первое решение может быть неудобно тем, что как минимум требует перезагрузить сервер, второе может быть неудобно или даже неработоспособно в случае нахождения сервера в нескольких подсетях одновременно (например, несколько сетевых карт).

А вот теперь сообщаем более технологичное решениепросто повысить приоритет протокола IPv4 над протоколом IPv6, тем не менее сохранив работоспособность IPv6. Решение не требует перезагрузки, вступает в действие моментально. Нужно открыть командную строку в режиме администратора, и выполнить там две команды:
netsh interface ipv6 set prefix ::/96 60 3
netsh interface ipv6 set prefix ::ffff:0:0/96 55 4

Всё, работает! Проверим на примере «чистой» Windows 2012 Server (жирным выделены команды, дальше в сокращённом виде приводится ответ операционной системы):

ping gilev_test
Обмен пакетами с gilev_test [fe80::21c0:ff89:967f:955a%19] с 32 байтами данных:
Ответ от fe80::21c0:ff89:967f:955a%19: время<1мс

Итак, возвращается адрес в формате IPv6 (fe80::21c0:ff89:967f:955a%19).Применим наше лекарство:

netsh interface ipv6 set prefix ::/96 60 3
ОК.

netsh interface ipv6 set prefix ::ffff:0:0/96 55 4
ОК.

Снова проверим ping:

ping gilev_test
Обмен пакетами с gilev_test [192.168.1.5] с 32 байтами данных:
Ответ от 192.168.1.5: число байт=32 время<1мс TTL=128

Как видим — результат резко изменился в нужную нам сторону, стал возвращаться адрес 192.168.1.5. Теперь проверим, что по адресу в формате IPv6 сервер по-прежнему пингуется, и мы ничего не сломали

ping fe80::21c0:ff89:967f:955a%19
Обмен пакетами с fe80::21c0:ff89:967f:955a%19 по с 32 байтами данных:
Ответ от fe80::21c0:ff89:967f:955a%19: время<1мс

P.S. в некоторых случаях если команды не помогли, то выполните дополнительную команду:
netsh interface ipv6 set prefix ::/96 1 3

Всё работает, как и должно быть. Пользуйтесь на здоровье!
Ваша команда Gilev.ru

Ошибка программного лицензирования. Error=-2147221168(0x80040150)

0x80040150

Не удается считать параметр из реестра локальный ключ недоступен

Причина проблемы в том, что пользователю, от имени которого работает сервер 1С:Предприятия не хватает прав на получения параметров текущего компьютера для проверки привязки. Для решения проблемы попробуйте выполнить следующее:
Start -> Control Panel -> Administrative Tools -> Computer Management -> Services & Applications.
Откройте свойства ветки WMI Control
Выберите закладку Security
В открывшемся дереве выберите ветку Root
Нажмите Security
Нажмите Advanced
Добавьте пользователя, от которого запускается сервер 1С:Предприятия
Установите свойство Apply onto: This namespace and sub-namespaces
Установите все флажки, кроме Edit security
Установите флажок Apply this permissions to object and/or containers within this container only
Нажмите OK во всех открытых диалогах
Перезапустите сервер 1С:Предприятия.

 

ORDER BY items must appear in the select list if SELECT DISTINCT is specifed. HRESULT=80040e14

автор Александр Шарафан

 

В редких случаях при работе запросов, СКД с базой данных под управлением сервера SQL возникает сообщение:

Microsoft OLE DB Provider for SQL Server: ORDER BY items must appear in the select list if SELECT DISTINCT is specifed.

HRESULT=80040e14, SQLSTATE=42000, state=1, Severity=F, native=145, line=1

 

Описание ошибки Microsoft гласит:

this message occurs when you are doing a SELECT DISTINCT combined with the ORDER BY clause and one of the columns in the ORDER BY is not specified as one of the columns in the SELECT DISTINCT.

 

это значит что при написании запроса вы использовали поле, которое не входит в список выборки оператора SELECT(ВЫБРАТЬ), но есть в списке оператора ORDER BY (УПОРЯДОЧИТЬ ПО).

 

Это могло произойти по следующим причинам:

1) Запрос написан(модифицирован) программистом руками и в этом случае исправить проблему можно просто сверив списки выбираемых полей и полей сортировки.

2) Запрос написан(модифицирован) программистом с использованием конструктора запроса от 1С. Понять причину в этом смысле гораздо сложнее, но вот ее решение не очень сложно.

 

Рассмотрим решения второго случая, т.к. первый просто сравнение.

Второй вариант говорит нам о том что в тексте запроса есть/появилось поле, которое отсутствует в выборке! На это место может претендовать «АВТОУПОРЯДОЧИВАНИЕ», оно единственное которое отсутствует в списке выборки оператора SELECT.

Быстрое решение, убираем из текста запроса оператор «АВТОУПОРЯДОЧИВАНИЕ» и запрос начинает работать, единственно без упорядочивания, которое было ранее в запросе и теперь необходимо предпринять дополнительные меры что бы упорядочить данные результата, это может быть как явное указание полей в списке ORDER BY(УПОРЯДОЧИТЬ ПО), так и поступорядочивание после выгрузки данных в ТЗ.

 

автор Александр Шарафан

Запуск нового сеанса работы с уже использующимся кодом невозможен

Не найдена лицензия. Не обнаружен ключ защиты программы или полученная программная лицензия!
по причине:
Поиск лицензии на клиенте:
Ошибка программного лицензирования. Error=-2147023533(0x80070553): Запуск нового сеанса работы с уже использующимся кодом невозможен.
Конфигурация не является базовой, Конфигурация не является базовой

помогает перезапуск компьютера, просто завершение сеанса не помогает

 

recv returns zero 1С

Сообщения типа

37:35.447041-0,EXCP,1,process=rphost,ClientID=69,Exception=NetDataExchangeException,Descr=’server_addr=(23)[fe80::3470:d26:72ff:4e48%14]:56342 descr=recv returns zero, disconnected line=2291 file=Src\DataExchangeServerImpl.cpp’
37:35.447042-0,EXCPCNTX,0,ClientComputerName=,ServerComputerName=,UserName=,ConnectString=

Ответ фирмы 1С расположен по адресу https://partners.v8.1c.ru/forum/topic/1198922

Снимок1849

ошибка совместного доступа к файлу snccntx.dat

Эта ошибка порождается сервером под Windows, если в момент запуска сервера 1С:Предприятия в памяти уже имеется процесс rmngr, использующий этот же каталог реестра кластера.

Остановите службу Агента 1С:Предприятие 8.

Откройте Task manager.

Принудительно завершите все процессы (ragent, rmngr, rphost) кластера.

Could not continue scan with NOLOCK due to data movement

Что говорит производитель MS SQL Server:

http://msdn.microsoft.com/ru-ru/library/bb326281.aspx
SQL Server Database Engine не удается продолжить выполнение запроса, поскольку приложение пытается считать данные, обновленные или удаленные другой транзакцией. Очередь использует подсказку блокировки NOLOCK или
уровень изоляции транзакции READ UNCOMMITTED.
Как правило, доступ к данным, которые изменяются другой операцией, запрещен из-за наложенной на них блокировки.
Однако подсказка блокировки NOLOCK и уровень изоляции транзакции READ UNCOMMITTED позволили запросу считать данные, заблокированные другой транзакцией. Это называется «грязным» чтением, поскольку таким образом можно считать значения, которые еще не были зафиксированы и могут быть изменены.
Эта ошибка отменяет запрос. Отправьте запрос повторно или удалите подсказку блокировки NOLOCK.

Есть небольшая вероятность того, что дело в конфигурации.

Пример на скриншоте.

Could not continue scan with NOLOCK due to data movement

Но здесь есть ключевое НО: Обратите внимание, что речь идет о конфликте блокировок и запрос на чтение вне тразнакции.

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

В ОСТАЛЬНЫХ СЛУЧАЯХ, применительно к 1С:Предприятие скорее дело не в этом.

Проблемы с диском!!! Ошибка появляется при разрушении данных.

Проверьте БД  с помощью DBCC CHECKDB. Обязательно сделайте резервную копию!

Попытайтесь с помощью все той же DBCC CHECKDB восстановить данные (если жесткий диск «не умирает»).

ALTER DATABASE [Ваша база] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO

DBCC CHECKDB ([Ваша база],REPAIR_ALLOW_DATA_LOSS)
GO

ALTER DATABASE [Ваша база]SET MULTI_USER WITH ROLLBACK IMMEDIATE
GO

Если повреждения несерьезные, то все будет хорошо. Если нет, то используйте бэкапы.

 

Или это ошибка платформы

Такое уже было раньше

http://downloads.v8.1c.ru/content/Comm/Platform/Err_8_2_9_356.htm

10036291  Ошибка СУБД: Microsoft OLE DB Provider for SQL Server: Could not continue scan with NOLOCK due to data movement.

Проблема:
В клиент-серверном варианте информационной базы с использованием MS SQL Server при возникновении ошибки

Ошибка СУБД:
Microsoft OLE DB Provider for SQL Server: Could not continue scan with NOLOCK due to data movement.
HRESULT=80040E14, SQLSrvr: Error state=3, Severity=C, native=601, line=1

происходит аварийное завершение работы программы.
Дата публикации: 2009-11-16

На момент написания статьи такой ошибки не было зарегистрировано, но это не 100% гарантия.

Есть смысл при возникновении проблемы обратиться на v8@1c.ru

Ошибка в управляемых формах 1с

При программировании управляемых форм документов, справочников и любых других объектов 1С, обнаруживается ситуация когда номер/код объекта не проставляется или проставляется не корректный.
Происходит указанная ситуация только под управлением веб-клиента, при работе под управлением толстого клиента, когда как основные используются управляемые формы.

Ошибка нумерации 1с
Как видно на рис.1  система сообщает о том что номер документа при записи стал не корректным, но в коде не было строк управления номером.

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

Анализ проблемы показал, что на управляемых формах номер/код документа/справочника требует обязательного управления, а именно принудительной установки нового номера документа перед записью в базу.

Устраняем «Ошибку» простым фрагментом кода в процедуре ПередЗаписью()

//Проверим текущий номер документа и установим новый если он занят
Если НомерЗанят(Номер) Тогда
УстановитьНовыйНомер();
КонецЕсли;
…функция НомерЗанят() очень проста.
И может быть гораздо сложнее или проще приводимой мной. как ее написать каждый решит по своему.

Функция НомерЗанят(НомерДока)
Результат = Ложь;
Попытка
Запрос = Новый Запрос;
Запрос.Текст = «ВЫБРАТЬ
| Документ_.Номер
|ИЗ
| Документ.Документ КАК Документ_
|ГДЕ
| Документ_.Номер = &НомерДока
| И Не Документ_.Ссылка = &ТекДок»;
Запрос.УстановитьПараметр(«НомерДока», НомерДока);
Запрос.УстановитьПараметр(«ТекДок», Ссылка);
Результат = не Запрос.Выполнить().Пустой();
Исключение
КонецПопытки;
возврат Результат;
КонецФункции //НомерЗанят()
автор Александр Шарафан

Ошибка загрузки компоненты dbeng8

 

 

 

Информация с партнерского форумаdbeng

На практике

Данная ошибка возникает в случае повреждения структуры таблиц информационной базы, либо в случае какого-либо системного сбоя, повлекшего за собой аварийное закрытие программ фирмы 1С (например, при работе в базе 1С выключили электричество, и при последующем запуске программа не открывается, по причине ошибки компоненты dbeng8).

Есть 2 варианта решения данной проблемы.

  1. В режиме «Конфигуратор» провести «Тестирование и исправление информационной базы», выбрав режим «Тестирование и исправление».
  2. Запустить утилиту «chdbfl.exe» (которая размещена в папке, в которую Вы устанавливали платформу, например: C:\Program Files\1cv82\8.2.16.368\bin\chdbfl.exe) и исправить все ошибки в таблицах информационной базы
  • запускаем утилиту
  • выбираем расположение информационной базы в поле «Имя файла БД»
  • ставим галочку «Исправлять обнаруженные ошибки»
  • Нажимаем кнопку «Выполнить» и ждём результатов

1с через веб сервис Server Error in ‘/’ Application

автор: Александр Шарафан
При работе в управляемом приложении через веб сервис пользователь иногда получает сообщение:
Server Error in ‘/’ Application
ошибка веб сервиса 1с
С совершенно не вразумительным текстом описания ошибки и рекомендацией как поступить при этом.
Как решать указанную проблему?
Разделим саму проблему на две части:
Проблема Веб сервиса и проблема 1С.
Проблему 1С можно обнаружить и устранить, если запустить режим отладки Тонкого клиента и проверить работу управляемых форм, ответственных за место в котором происходит ошибка.
Здесь мы будем рассматривать половину относящуюся к Веб серверу.
В некоторых источниках пишут что указанная ошибка является характерной для хакерских атак, но в нашем конкретном случае о такой атаке речь идти не может, т.к. проблема возникает при обращении к сервису не из вне сети, а из интранет.
В переводе на русский язык ошибка звучит как: «Ошибка приложения вызванная на сервере. Текущие настройки сервера для этого приложения ошибочны, приложение было остановлено по соображениям безопасности в привентивном режиме.»
Рекомендация данная ниже отключает режим вывода сообщений, но не дает ответа как устранить причину появления ошибки, при условии правильности работы кода 1С во всех других режимах.
немного манипуляций и страница дает уже более понятную информацию:
image (1)
Если ранее проблема была не понятна, то сейчас более понятно что ошибка относится именно к веб серверу и что вызывается именно привентивным прекращением работы приложения веб сервером.
Проблема же заключается в том, что .net имеет режим валидации исполняемого сервером кода, вот эта валидация и приводит к появлению указанной ошибки.
Для устранения ошибки рекомендуется выполнить настройки вебсервера:

1. ValidateRequest = «False»

например,если в конфигурационном файле у вас уже есть:
<% @ Page Language = «VB» AutoEventWireup = «False» Codebehind = «MyForm.aspx.vb» наследует = «Proj.MyForm»%>

то должно стать:

<% @ Page Language = "VB" AutoEventWireup = "False" Codebehind = "MyForm.aspx.vb" наследует = "Proj.MyForm" ValidateRequest = "False"%>

В более поздних версиях Visual Studio значение этого свойства можно получить на странице свойств, поэтому просто установите » ValidateRequest » на » False«. Любым способом установки можно получить тот же результат.

Примечание:

1.1. Если вы используете. NET 4, то вам необходимо добавить requestValidationMode = «2.0» в HttpRuntime раздел конфигурацииweb.config файла. Например:

<httpRuntime requestValidationMode=»2.0″/>

Если у вас еще нет раздела HttpRuntime в web.config, то это можно сделать такие настройки в разделе <system.web>.

      Чтобы глобально выключить проверку запросов добавьте следующую строку в вашем web.config файла: <pages validateRequest=»false» /> раздела <system.web>.
2. Установить  EnableEventValidation = «False» запретим проверку корректности события.
3. Установить EnableViewState = "False"
и
4. Установить нужное значение в ExecutionTimeout. В моем случае строка выглядит так: ExecutionTimeOut = «20»
 
Это верно для: NET 1.1,. NET 2,. NET 3.5 и. NET 4.0
Использованы материалы интернет форумов и сайтов:
автор Александр Шарафан

Произошла ошибка операции на сокете, т.к.конечный хост выключен. Windows Sockets — 10064 (0x00002750)

Сообщение об ошибке:

Произошла ошибка операции на сокете, т.к.конечный хост выключен.
Windows Sockets — 10064 (0x00002750)

Известное решение проблемы:

настройках кластера режим безопасного соединения с режимом безопасности ТОЛЬКО СОЕДИНЕНИЕ перевыбрать «отключено» на нужное

Ошибка SDBL:Ожидается CAST, идентификатор или константа (pos=44), Ошибка при полнотекстовом индексировании»

такая ошибка будет исправлена в 8.1.12 — она проявляется, если у всех измерений независимого регистра сведений отключить свойство «Полнотекстовый поиск». Для обхода можно отключить свойство «Полнотекстовый поиск» у самого регистра сведений, а не у его измерений.

Невозможно блокировать файл базы данных для открытия или изменения

Ошибка, о которой идет речь случается в тех случаях когда попытки выполнять блокировку файла базы данных, предпринимаемые в рамках некоторого промежутка времени (20 секунд в рассматриваемом случае) не привели к успеху. Почему такое может происходить? Причины могут быть разные: большое число одновременно выполняемых обновлений файла базы данных, высокая нагрузка на сеть, недостаточная производительность файлового сервера…
Перейти на sql-версию

Порядок сортировки, установленный для базы данных, отличается от системного

1С: что делать, если появляется сообщение «Порядок сортировки, установленный для базы данных, отличается от системного!»

Причина ошибки – несоответствие системных настроек и настройки 1С.
Кстати, если операционная система локализована и региональные настройки установлены корректно, то при установке 1С ее настройки будут приведены в соответствие с системными.

Проверка корректности настроек

I. Системные настройки (для локализованной русифицированной версии Windows)

1. Откройте Пуск – Настройка – Панель управления – Язык и региональные стандарты.

2. На вкладке Региональные параметры в выпадающем списке должно быть – Русский.

3. На вкладке Языки – Подробнее… – диалоговое окно Языки и службы текстового ввода – вкладка Параметры – Язык ввода по умолчанию должно быть – Русский-Русская.

4. На вкладке Дополнительно должно быть – Русский.

II. Настройки 1С

1. Запустите программу 1С. В окне Запуск 1С выделите нужную информационную базу.

2. В выпадающем списке В режиме выберите Конфигуратор – OK.

3. Запустится Конфигуратор. Выберите меню Администрирование – Кодовая страница таблиц ИБ…

4. В окне Кодовая страница таблиц информационной базы в выпадающем списке должно быть – 1251 – Русский, белорусский, болгарский и сербский языки.

В качестве крайней меры иногда рекомендуют отключать проверку соответствия порядка сортировки. Для этого в каталоге информационной базы нужно создать сигнальный файл с именем OrdNoChk.prm (с произвольным содержимым).

Примечания

1. Если вы используете компоненту УРИБ (управление распределенными информационными базами), – при отключении проверки порядка сортировки, – НЕ СЛЕДУЕТ использовать символы любых алфавитов, кроме латинского, в трехбуквенном идентификаторе информационных баз, входящих в состав распределенной базы.

2. Следует иметь в виду, что отключение проверки идентичности порядка сортировки может привести к неожиданному – для пользователя программы 1С ! – порядку следования строк, например, при формировании отчетов.

Устранение ошибки в Windows Vista

Если вы пользуетесь Windows Vista, то избавиться от сообщения «Порядок сортировки, установленный для базы данных, отличается от системного!» вышеуказанными методами не удастся.

Для этого:

1. Запустите программу 1С. В окне Запуск 1С выделите нужную информационную базу.

2. В выпадающем списке В режиме выберите Конфигуратор – OK.

3. Запустится Конфигуратор. Выберите меню Администрирование – Кодовая страница таблиц ИБ…

4. В окне Кодовая страница таблиц информационной базы в выпадающем списке выберите + Текущая системная установка – OK.

5. В окне Конфигуратор с сообщением «При выполнении изменения кодовой страницы будут перестроены индексы всех таблиц данных информационной базы! Выполнить изменение кодовой страницы?» нажмите Да.

6. По истечении определенного промежутка времени, зависящего от размера ИБ, появится окно Конфигуратор с сообщением «Кодовая страница изменена!», нажмите OK.

7. Закройте Конфигуратор, можно работать с информационной базой.

8. Для работы с другими ИБ измените аналогичным образом кодовую страницу таблиц ИБ.

Ошибка доступа к файлу

1) Попробуйте стереть кэш метаданных для данной конфигурации на том компьютере, где Вы пытаетесь сделать обновление.
Кэш метаданных расположен в папке <Document And Settings>\<Имя пользователя OS>\Local Settings\Application Data\1C\1Cv81\<UUID информационной базы в реестре ИБ>
В нем необходимо стереть подпапки Config, ConfigSave, DBNameCache, SICache
Если не помогло, то
2)выполните скрипт:
USE [db_buh]
GO
DROP TABLE [dbo].[ConfigSave]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ConfigSave](
[FileName] [nvarchar](128) NOT NULL,
[Creation] [datetime] NOT NULL,
[Modified] [datetime] NOT NULL,
[Attributes] [smallint] NOT NULL,
[DataSize] [int] NOT NULL,
[BinaryData] [image] NOT NULL,
PRIMARY KEY CLUSTERED
(
[FileName] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
INSERT INTO ConfigSave
SELECT * FROM Config
GO
где [db_buh] — имя базы

Ошибка СУБД: could not send data to server: No buffer space available (0x00002747/10055)

Ошибка характерна при использовании в качестве субд Postgre
и по сути аналогична ошибке на Ms sql server Неопознанная ошибка HRESULT=80004005
Суть проблемы описана здесь
Постгри лучше ставить последний.

1) В файловом режиме обновиться до актуального релиза
2) Снимите конфигурацию полностью с поддержки. Поставте заново на поддержку того релиза, на который обновились. После чего загружайте под клиент-сервер.

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

Неопознанная ошибка HRESULT=80004005 или почему не выгружаются базы данных в dt

На ИТС часто даются описания кодов ошибок, но они не всегда исчерпывающие. В этой статье мы будем пытаться продолжать «исчерпывать» 🙂

 

При эсклуатации баз данных 1С вы можете сталкнуться с такой ситуацией:

Сеанс работы завершен администратором.
по причине:
Соединение с сервером баз данных разорвано администратором
Microsoft OLE DB Provider for SQL Server: Неопознанная ошибка
HRESULT=80004005

Признаки проблемы: нельзя выгрузить в dt

Внимание! Ошибок с кодом 80004005 уйма, более подробно классофикацию я описал здесь http://www.gilev.ru/1c/mssql/errsql.htm . Здесь же мы говорим именно о «неопознанной ошибке» 🙂

Сотрудники 1С рекомендуют решать проблему так:

1. Проверить конфигурацию на наличие некорректной информации (мусора). Для этого следует выполнить команду «Проверка конфигурации» с установленным флажком «Проверка логической целостности конфигурации». При выявлении проблем будет выдано сообщение. Некорректная информация при этом будет удалена автоматически, однако следует обеспечить доступность для изменения корневого объекта конфигурации (напимер, при работе с хранилищем его следует захватить).

2. Если Ваша конфигурация находится на поддержке, следует подобным образом проверить конфигурацию поставщика. Для этого в настройке поддержки следует сохранить конфигурацию поставщика в cf файл, загрузить его в новую базу и выполнить описанную в пункте 1 процедуру. В случае, если было получено сообщение об исправлении, значит конфигурация поставщика содержит некорректную информацию. В этом случае следует снять Вашу конфигурацию с поддержки и заново поставить путем объединения со свежим релизом конфигурации поставщика. В настоящее время все релизы выпускаемые 1С проходят проверку и выпускаются без данной проблемы.

3. Также с этой ситуацией пересекается следующая ситуация:

10007066 Запись данных, содержащих колонки типа ХранилищеЗначения
Проблема:
При использовании СУБД MS SQL SERVER при записи объекта базы данных, содержащего несколько колонок типа ХранилищеЗначения, данные для которых получены из файлов, может происходить ошибка
Ошибка СУБД:Microsoft OLE DB Provider for SQL Server: String data length mismatchHRESULT=80004005и аварийное завершение работы программы.
Дата публикации: 2008-11-13

Включив технологический журнал на время загрузки, можно определить таблицу, в которой содержатся такие хранилища. Найдите средствами MS SQL Server Query Analizer в этой таблице колонки типа image. Для каждой колонки типа image выполните запрос вида:

select top 10 DATALENGTH(_Fld4044)
from _InfoReg4038
order by DATALENGTH(_Fld4044) desc

 
Нюансы: обратите внимание, что «Стандартные проверки» платформой (chdbfl, в конфигураторе) упорно говорят, что с базой все ОК.

 

Суть проблемы: важно, что под это сообщение об ошибке могут подпадать разные причины, но у них есть общая часть для 1С — это не достаточно оперативной памяти. А еще точнее неэффектиное использование ресурсов памяти. Отсюда косвенные способы победить проблему: путем рестарта сервера (на некотрое время становиться больше доступной памяти) или перейти на 64-разрядный сервер приложений.

1С:Предприятие 8.2. Лицензия на сервер (x86-64)

По опыту проблема связана с хранением данных в реквизите хранилище значений либо наличием в таблице config двоичных данных БОЛЬШЕ 120 mb.

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

В 8.1.11 появился переключатель «запрет на фоновые задания» в
момент создания базы.

Готов пояснить, фоновые задания сами по себе не зло, но регламентные процедуры
с полнотекстовым поиском — вещь в себе — и память она может через какое время
съедать ресурсы rphost.exe, что на другие операции не останеться, и просто
базу блокировать
т.е. другими словами, после первого шага уже можно проверять — возможно проблема «уйдет».
2. Перезапустить сервер

Второй шаг является частным случаем для вашего случая и после него тоже
есть смысл проверять работоспособность. Однако поскольку существуют утечки памяти http://www.gilev.ru/1c/memleak, то через некоторое время после рестарта пролема может вернуться.
3) делаем бэкап средствами sql

Делать резервное копирование рекомендую при любых действиях, когда может потребоваться «возврат» к предыдущему состоянию данных

4) снимаем базу с поддержки, выгружаем cf

убиваем в менежмент консоли базе данных в таблице config запись более 120Мб, делаем «загрузить конфигурацию» (не объединение) убиваем в менежмент консоли базе данных в таблице config запись более 120Мб, делаем «загрузить конфигурацию» (не объединение)

вот пример работоспособности этого приема

http://partners.v8.1c.ru/forum/thread.jsp?id=543293

или

1. Открыть конфигратор;
2. Снял конфигурацию с поддержки, ПРИ ЭТОМ КОНФИГУРАЦИЮ НЕ СОХРАНЯЛ!
3. Далее Сохранить конфигурацию в файл (не сохраняя измененной конфигурации);
4. В SQL для требуемой базы выполнил следующую команду:
DELETE FROM dbo.Config WHERE DataSize > 125829120
5. Загрузить сохраненную конфигурацию обратно.

Взято с http://www.forum.mista.ru/topic.php?id=465608

 

можно попробывать и более радикальный шаг здесь:
удаляем (в менежмент консоли) в базе данных таблицу «config»

DROP TABLE [dbo].[Config]
5) делаем «загрузить конфигурацию» (не объединение) из cf

после этого проверяем, проблема уходит.

Расшифровка ошибок MS SQL

 

Пример текста сообщения об ошибке

HRESULT=80004005, SQLSrvr: Error state=3, Severity=C, native=601, line=1

Как расшифровывается

HRESULT=80004005 — номер ошибки, именно номер «80004005» обозначает ошибку СУБД, а в данном контексте это Microsoft OLE DB Provider. Кроме этого, описание большей части номеров здесь

Error state=3 — номер состояния сообщения об ошибке, имеет значение от 0 до 127

Severity=C — уровень серьезности ошибки. Имеет значение от 0 до 25

Уровень серьезности от 0 до 18 может указать любой пользователь. Уровни серьезности от 19 до 25 могут быть указаны только членами фиксированной серверной роли sysadmin и пользователями с разрешениями ALTER TRACE. Для уровней серьезности от 19 до 25 требуется параметр WITH LOG.Если ошибка возникла в компоненте SQL Server Database Engine, серьезность ошибки указывает на тип проблемы, с которой столкнулся сервер SQL Server.

native=601 — номер ошибки, список номеров

Ошибки 1505, 1508 случаются когда предпринимается попытка создания индекса (уникального или кластерного)

2601 — при попытке вставки записи (либо изменении поля существующей записи) и при этом нарушается уникальность уже существующего индекса

line=1 — номер строки, в которой произошла ошибка

Сеанс работы завершен администратором

При сообщении «Сеанс работы завершен администратором» скорее всего уточните у  Ваших администраторов, делали ли они вручную отключение пользователей через консоль серверов или наличие в системе кода по отключению пользователей и режиму его работы.

Неправильное имя или пароль пользователя

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

Не запущен ни один рабочий процесс

При возникновении сообещния «…Не запущен ни один рабочий процесс…» запустите службу сервера 1С:Предприятие, и в консоли сервера предприятие в кластере у рабочего сервера создайте рабочий процесс.

10098967 Ошибка программного лицензирования

ошибка программного лицензирования Error=-2147217405(80041003)File=src\HardInfoWin.cpp(106)

10098967  Ошибка программного лицензирования

Проблема:
При запуске веб-клиента или тонкого клиента через веб сервер с файловой информационной базой под Windows через IIS может происходить ошибка
Ошибка программного лицензирования Error=-2147217405(80041003) File=src\HardInfoWin.cpp(106)
если на компьютере веб-сервера установлена программная клиентская лицензия.
Дата публикации:
2012-02-03

Помогло удаление / переустановка WMI. Или сделать замену на аппаратный ключ.

В некоторых случаях возможен вариант установить в настройках подключения к базе «Толстый клиент» и в администрировании сервера для этой базы установить свойство «разрешить выдачу лицензий»

The requested lookup key was not found in any active activation context

Ошибка при анализе взаимоблокировок в ЦУП

типа

.\MSSQL.cpp : 79 ( 0x36b7: The requested lookup key was not found in any active activation context. ) — SQL Server connection failed.

возникает если не было настроено разрешение «Alter trace» на SQL Server

не освобождаются лицензии с 0 таймаутом

Проблема

Лицензии с нулевым таймаутом считаются занятыми, если раздача лицензий осуществляется сервером (параметр «разрешить выдачу лицензий сервером» в свойствах базы стоит «да»)

Причины

«ВНИМАНИЕ! Если подсчетом клиентских лицензий занимается сервер «1С:Предприятия», то клиентские лицензии, у которых в программе Aladdin Monitor значение колонки Timeout равно 0, будут считаться занятыми. В связи с этим не рекомендуетсяодни и те же многопользовательские ключи HASP использовать для одновременного получения клиентских лицензий с помощью HASP License Manager и сервера «1С:Предприятия».» пункт 9.1.3.2.3 документации:

http://its.1c.ru/db/v8doc#content:21:1:IssOgl1_9.1.%20%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0%20%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D1%8B%20HASP4

Запретите серверам выдавать лицензии, пусть клиентские приложения сами их получают (возможно, их придется настраивать). Либо сделайте так, чтобы только сервера их и выдавали, без использования hasp lm вообще (их нужно будет снести), но тогда вам придется провести ревизию и развесить ключи по серверам таким образом, чтобы всем хватило (напоминаю — в этом случае сервер выдает лицензии только на свои же базы и только в том случае, если ключ подключен к локально к тому компьютеру, на которому крутится сервер 1С; ну и каждый сеанс в этом случае кушает одну лицензию).

Можно разрешить искать HASP только на определённых компьютерах В nethasp.ini запретить BROADCAST, и прописать айпишники менеджеров, с которых можно брать лицензии.

Ошибка Windows Sockets — 11004

Вопрос:
Сообщение об ошибке: Windows Sockets — 11004(0х00002AFC). Затребованное имя допустимо и оно найдено в базе данных, но для имени отсутствуют связанные с ним данные, которые разрешены для него
Ответ:
Ошибка 11004 показывает, что указанному имени сервера в DNS нет соответствующей записи типа A, которая определяет его IP адрес.
— как задано имя сервера 1С:Предприятия при регистрации ИБ на клиентском приложении?
— выполняется ли ping по этому имени и определяется ли IP адрес?
— совпадает ли IP адрес с тем, который выдает ping из того же домена?
— попробуйте имя сервера внести в файл hosts на проблемном компьютере, указав ему IP адрес, выраваемый ping-ом с компьютера, на котором 1С:Предприятие стартует нормально.

КУДА «ПАДАЕТ» 1С 8.2

Дампы аварийного завершения по умолчанию записываются автоматически в каталог:
C:\Documents and Settings\USR1CV82\Local Settings\Application Data\1C\1Cv82\dumps.
USR1CV82 — это по умолчанию для сервера.Для клиентской части аналогично в профиль пользователя.
Если настроить logcfg.xml, то по указанном в настройках Технлогическго Журнала пути.

Сообщение 1С при работе с MS SQL Server 2005/2008: Arithmetic overflow error converting numeric to data type numeric.

В работе клиент серверной 1С иногда появляется сообщение:
Ошибка выполнения запроса
по причине:
Ошибка при выполнении операции над данными:
Microsoft OLE DB Provider for SQL Server: Arithmetic overflow error converting numeric to data type numeric.
HRESULT=80040E57, SQLSrvr: SQLSTATE=22003, state=8, Severity=10, native=8115, line=1
Если данная ошибка появляется под управлением  MS SQL 2000, то рекомендуется проверить и установить обновление SP до SP4.
Но для SQL 2005 и 2008 появление такой ошибки не решается обновлением сервиспака.
Вообще появление указанной ошибки вызвано ошибкой в MS SQL при выполнении операции округления, например:
ROUND(9.5,0)
ROUND(9.6,0)
ROUND(99.5,0)
ROUND(999.5,0)
ROUND(9999.5,0)
ROUND(-9.5)
Более подробно про ошибки операции округления https://connect.microsoft.com/SQLServer/feedback/details/364387/using-round-function-with-passing-numeric-expression-to-9-5-and-length-0
. касательно 1С и запросов выполняемых в ней, указанная ошибка может появляться при выполнении команды: ВЫРАЗИТЬ(ЕСТЬNULL(ВремяПоГрафикуВЧасахНорма, 0) КАК ЧИСЛО(5, 2)) КАК WorkingHours
Если в качестве операнда будет число со значением после запятой .5, в этом случае SQL считает/разбирает значение как литерал х.5 и преобразует к данным типа Numeric(2,1). Функция ROUND (округления)  отрабытывает правильно получая округленный результат и затем пытается сохранить как данные в формате Numeric(2,1), что не правильно и мы получаем сообщение «arithmetic overflow».
Если у Вас возникает такая ошибка, то попробуете использвать преобразование:
ВЫРАЗИТЬ(ЕСТЬNULL(ВремяПоГрафикуВЧасахНорма, 0) КАК ЧИСЛО(  {НОВОЕ значение} , 2)) КАК WorkingHours
, ГДЕ
     {НОВОЕ значение} — Это увеличенное на один (несколько) разряд значение, в это случае ошибки не будет возникать.
Автор решения Александр Шарафан

Windows Sockets — 10054(0x00002746)

Лечим 54ю ошибку в 1С

 

 Описание ошибки

server_addr=tcp://<имясервера>:1562 descr=Ошибка сетевего доступа к серверу (Windows Sockets — 10054(0x00002746). Удаленный хост принудительно разорвал существующее подключение.) line=1031 file=.\src\DataExchangeTcpClientImpl.cpp

Как бороться с этой проблемой

Настроить Технологический журнал и разобрать его логи.
Наиболее частыми причинами бывают падения серверной части 1С:Предприятия.
В также можно убедиться, посмотрев — ане создаются ли дампы (смотреть путь logcfg.xml, если настройка dump-ов в нем отсутствует, то в каталоге %USERPROFILE%\Local Settings\Application Data\1C\1Cv81\Dumps, например C:\Documents and Settings\<Имя пользователя>\Local Settings\Application Data\1C\1Cv81\dumps. Падения платформы чаще всего могут возникать из-за запросов с нестандартными параметрами. Дампы отсылайте в техподдержку 1С email:v8@1c.ru.
1. Чаще всего мне встречалась проблема в журнале документов в отборах запросы были похожи на этот:

SELECT ALLOWED TOP 35 R.Date_Time A1,
R.Number A2,
R.Fld9608 A3,
R.Fld9613 A4,
R.Fld9606 A5,
R.Fld9610 A6,
R.Fld9611 A7,
R.Fld9607 A8,
R.Fld9612 A9,
R.Fld9615 A10,
R.Fld9614 A11,
R.Fld9609 A12,
R.Fld9605 A13,
R.Document A14,
R.Marked A15,
R.Posted A16,CAST(R.Fld9608 AS REF(Reference9)).Description
A17,CAST(R.Fld9606 AS REF(Reference52)).Description A18,CAST(R.Fld9611
AS REF(Reference93)).Description A19, CASE WHEN R.Fld9609 REFS
Reference53 THEN CAST(R.Fld9609 AS REF(Reference53)).Description WHEN
R.Fld9609 REFS Reference150 THEN CAST(R.Fld9609 AS
REF(Reference150)).Description WHEN R.Fld9609 REFS Reference63 THEN
CAST(R.Fld9609 AS REF(Reference63)).Description WHEN R.Fld9609 REFS
Reference114 THEN CAST(R.Fld9609 AS REF(Reference114)).Description END
A20,CAST(R.Fld9605 AS REF(Reference79)).Description A21
FROM DocumentJournal9604 R WHERE
((R.Fld9605=79:b63e000bcd6ad80811da7cf12c684266)) AND
(R.Date_Time > DATETIME(2006,12,31,12,0,0) OR (R.Date_Time =
DATETIME(2006,12,31,12,0,0) AND (R.Document >=
343:b654000bcd6ad80811dba49c7aabe269)))
ORDER BY A1 ASC, A14 ASC’

2. Пример лога ТЖ, показывающее причину падений сервера при обновлении полнотекстового поиска
11:40.9690-0,EXCP,1,process=rphost,p:processName=<база данных>,t:clientID=3, t:applicationName=BackgroundJob,t:connectID=27,Usr=DefUser,DumpFile=C:\Program Files (x86)\1cv81\dumps\rphost_8.1.13.41_7d4e2366_20090609021136_10236.mdmp,Context=’
ОбщийМодуль.МодульРегламентныхЗаданий : 46 : ПолнотекстовыйПоиск.ОбновитьИндекс(Ложь, Истина);’

Итоговым решением в этом примере будет отключить фоновый процес в проблемной базе. Дождаться нового релиза платформы и обновиться.
Более подробно про падения платформы смотрите в моем блоге.
3. Пример ТЖ для циклический перезапуск процессов. Для анализа этого события на компьютере сервера 1С:Предприятия необходимо включить запись в технологический журнал событий PROC (пример файла logcfg.xml).
Когда процесс выключается, будет выведено событие PROC со свойством Txt=Process become disable.
Когда процесс останавливается, будет выведено событие PROC со свойством Txt=Process terminated. Any clients finished with error. Если аварийные завершения работы пользователей совпадают по времени с выводом этого события, то причиной является принудительная остановка рабочего процесса либо администратором (через консоль кластера), либо вследствие автоматического перезапуска.
4. Убедиться, что причиной являются/не являются действия администратора в консоли

—————————-

Ниже представлен вариант решения коллегой.

Всем заинтересованным в решении проблем с падением платформы с ошибками:

10051, 10053, 10054, 10064

 

Как показал разбор полетов по падениям платформы, с выше указанными ошибками:

— Большинство падений вызвано именно работой фоновых заданий, как и предполагалось в топике.

— Не хваткой дискового пространства

— Наличием большого числа не завершенных транзакций в журнале 1С

* * *

— Прежде чем заниматься разбором с технологическим журналом, проанализируйте используемые в конфигурации фоновые задания и отключите те, которые не требуются Вам для работы, конфигурации (банально, анализ 14 ГБ мусора можно считать времяпрепровождением, если Вам нечем заняться… :))) )

— Проанализируйте и внесите исправления в дописанные Вами фоновые задания, убедитесь в том, что они завершаются с нормальным кодом завершения (без ошибок и не закрытых транзакций)

— Внесите в алгоритмы фоновых заданий фрагменты кода, ошищающие, принудительно, память используемую в ходе их работы (Не стоит надеяться на то, что 1С при завершении особождает использованную память)

— Проанализируйте и ИСПРАВЬТЕ ПРОБЛЕМЫ ФУНКЦИОНИРОВАНИЯ типовых фоновых заданий конфигурации

— Выполните регламентные процедуры с базой данных, через пункт меню Администрирование-Тестирование и исправление, не забудьтеобязательно, выполнить сжатие базы данных

— Проанализируйте объем используемого пространства сервером SQL, вероятно что серверу банально нехватает памяти

— Проверьте политки настройки Active Directory

— И также сожмите/очистите журнал транзакций SQL вот примерно таким кодом (для SQL 2000):

 

Вариант 1:DBCC SHRINKFILE(pubs_log, 2)
(Если нужный размер не достигнут попробуйте вариант 2)Вариант 2:BACKUP LOG pubs WITH TRUNCATE_ONLY
DBCC SHRINKFILE(pubs_log,2) 

Где pub_log — имя Вашей базы данных

Вариант 3:
sp_detach_db — отключим с данной процедурой базу, а sp_attach_db — подключим снова. Журнал транзакций при этом очистится.
(ПОдробнее можно прочесть в разделах MSDN Q256650 (для SQL 7.0) и Q272318 (для SQL 2000).)

Вариант 4: (Для 7.0)
DBCC SHRINKFILE (file_name, target_size)
DBCC SHRINKDATABASE (database_name, target_percent)
BACKUP LOG database_name WITH TRUNCATE_ONLY

 

Если после этих операций падения продолжаются, тогда продолжайте следовать рекомендациям:

 

— Пробуйте внести изменения в файлы HOSTS операционной системы (вероятнее всего будет достаточно прописать ассоцирование только в файлы на одной/двух машинах, где падения происходят наиболее часто)

— Пробуйте разнести сервера 1С предприятия и SQL, если они у Вас на одной машине.

— Или наоборот установите их на одной машине (если хватает ресурсов) Отмечаются случаи, когда именно перенос серверов на один сервер помогало (На мой взгляд очень сомнительно и больше относится именно к причине начала работы, это сжатие журналов транзакций)

— Проверьте время отклика сервера (вероятнее всего, что все будет в пределах нормы, а редкие провалы во времени обслуживания, не могут столь сильно влиять на работу сервера предприятия)

— Проверьте работу маршрутизаторов в сети (Редко, но бывает, что именно их перенастройка влияет на количество падений)

— Проверьте конфликты оборудования в сети (это к вопросу, почему желательно иметь оборудование одного поставщика в сети. Кто хочет может проверить, например, в тех. документации 3COM написано: если сетевая карта обнаруживает, что взаимодействует с аналогичной сетевой картой, то она может быть переключена в более производительный режим, засчет перехода на оптимизированный алгоритм обработки сетевых пакетов, проверено на личном опыте скачок производительности до 50%)

— Проверьте уровни сигналов у потребителей/конечных компьютеров (может быть банально, низкий уровень сигналов, постоянные повторные запросы блоков, задержка очереди на обслуживание в сети, а следовательно в конце концов получение сообщения, что конечный серевер разорвал соединение, когда количество попыток превысит время ожидания поступления сигнала. Если хотите разобраться в данном вопросе обратитесь к протоколу работы Ethernet/CSMA CD/CSMA. Количество попыток в передаче пакета по данному протоколу не бесконечно… ))) Да и буфер в картах тоже не беспределен.)

— Добавьте памяти на сервера

— Переведите часть/всех пользователей в терминальный режим (Т.е. обеспечьте то, что МНОГИЕ пользователи определеяют как ТОНКОГО КЛИЕНТА 1C). В качестве такого сервера я бы рекомендовал Citrix Metaframe или Terminal Server MS

 

Вероятнее всего, когда Вы выполните указанные рекомендации, за исключением разбора проблем с железом, стабильность работы возрастет настолько что падения платформы станут очень редкими, что перекроют технологические промежутки по обслуживанию базы данных, выполнять которые всеже НЕОБХОДИМО и не думайте, что те рекомендации что указаны выше Панацея от всех проблем.

Они решат многие, но не все проблемы.

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

(С) Шарафан Александр (AXELOT, Москва)

———————————

Ряд проблем связан с утечками памяти.
1. Перезагрузите сервер.
2. Если у Вас 1 рабочий процесс, добавьте еще несколько, чтобы иметь возможность переподключиться в случаи сбоя рабочего процесса.

3. Если у Вас 32х разрядна версия сервера 1С, то пора купить 1С:Предприятие 8.2. Лицензию на сервер (x86-64).

Исследуйте роли «Пользователя», если они есть в типовой конфигурации конечно, и в частности, после того как вычислите проблемныйдокумент с помощью ТЖ, нужно найти проблемную роль (кто жалуется).
Далее для роли Пользователя смотрим РЛС документа, если дополнительных настроек нет (чисто), то правой кнопкой на нем — поиск ссылок на объект, и последовательно просматриваем РЛС для роли «Пользователь» для каждого объекта.

Ошибочное принятие высокой интенсивности пользователей за атаку на протокол в некоторых случаях Windows.
>Запустить программу regedit.exe, добавь новое значение типа DWORD с именем SynAttackProtect в раздел реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ и присвой ему значение 00000000
Имеет смысл делать для ОС Windows 2003 SP1 (http://msdn.microsoft.com/ru-ru/library/ms189083.aspx).

p.s. Кроме того, 54 ошибку можно получить на релизах <= 8.1.12.98 при ри конвертации конвертором ИБ 77(DBF) -> 81(SQL) в типовой ТиС (демо, взятой с ИТС) релиз. 954 в клиент-серверном варианте.
обойти можно так:
— выполните конвертацию в файловый фариант информационной базы 1С:Предприятия 8.1,
— выгрузите полученную информационную базу в файл,
— загрузите в клиент-серверный вариант информационной базы 1С:Предприятия 8.1.

Собрать логи ТЖ можно файлом logcfg.xml.

 

1С ошибка 10054 на Debian Squeeze

Ошибка Возникала при обмене УТ10 с БП2 и при других интенсивных операциях чтения/записи в БД.

Симптомы: серверные процессы 1С не падают, у клиента полностью теряется связь с сервером на 5 сек.
Сервер 1С и БД на одной машине под управлением Debian Squeeze.
Решение проблемы: установка параметра ядра tcp_syncookies в значение 0.
Код:
root@machine:~# echo «net.ipv4.tcp_syncookies = 0» >> /etc/sysctl.conf && sysctl -p
(автор Вадим Ивахин)