1. Переходим на сервер SQL и запускаем SQL Server Management Studio
2. Находим сбойную базу в списке баз.
3. Нажимаем ПКМ и выбираем «Создать запрос»
4. В окне запроса пишем код для поиска данных в таблице:
SELECT * FROM [название_таблицы]
WHERE [название_столбца_1] = [что_ищем_1] and [название_столбца_2] = [что_ищем_2] and … [название_столбца_N] = [что_ищем_N]
Пример:
SELECT * FROM _AccRgAT118760
WHERE _AccountRRef = 0xab52f3e52b35efa847b0cfef9c90ff9d and _Fld18737RRef = 0x95eb00112f2a1abf11dac09f12116a47
- _AccRgAT118760 – название таблице в котором произошел сбой. Оно отображается в окне ошибки в 1С.
- _AccountRRef – название столбца_1 где будем искать.
- 0xab52f3e52b35efa847b0cfef9c90ff9d – значение_1 которое будем искать. Оно отображается в окне ошибки в 1С.
- _Fld18737RRef – название столбца_2 где будем искать.
- 0x95eb00112f2a1abf11dac09f12116a47 – значение_2 которое будем искать. Оно отображается в окне ошибки в 1С.
Название столбцов можно посмотреть следующем образом:
- Развернуть базу, нажав плюсик напротив базы
- Развернуть папку «Таблицы», нажав на плюсик напротив этой папки
- Найти в списке нашу таблицу
- Нажать ПКМ на таблицу и выбрать пункт «Выбрать первые 1000 строк»
- Появится окно с запросом и ниже окно с данными
Пример запроса:
/****** Скрипт для команды SelectTopNRows из среды SSMS ******/
SELECT TOP 1000 [_Period]
,[_AccountRRef]
,[_Fld18737RRef]
,[_Fld18738RRef]
,[_Value1_TYPE]
,[_Value1_RTRef]
,[_Value1_RRRef]
,[_Fld18739]
,[_TurnoverDt18751]
,[_TurnoverCt18752]
,[_Turnover18753]
,[_Fld18740]
,[_TurnoverDt18754]
,[_TurnoverCt18755]
,[_Turnover18756]
,[_Fld18741]
,[_TurnoverDt18757]
,[_TurnoverCt18758]
,[_Turnover18759]
,[_Splitter]
FROM [rzdp_cb].[dbo].[_AccRgAT118760]
- В запросе мы увидим название всех столбцов присутствующих в таблице. Эти названия мы можем скопировать для своего запроса.
- После того как мы написали код запроса, нажимаем кнопку «Выполнить» или F5 на клавиатуре.
- Наш код выполнится и выдаст в окне ниже значения таблицы.
- В это таблице мы ищем строку которая подходит по параметрам написанным в сообщении об ошибке (Пример: ноя 1 5999 12:00AM, 0xab52f3e52b35efa847b0cfef9c90ff9d, 0x95eb00112f2a1abf11dac09f12116a47, <NULL>, <NULL>, <NULL>, <NULL>, 0)
- Первое, на что надо обратить внимание, это на дату и искать с начало по ней. Найдя совпадения по дате, смотрим другие столбцы, они должны содержать значение NULL, а также, возможно, какую-нибудь сумму (в окне ошибки в 1С суммы не показываются)
- Нажимаем ПКМ на сбойную базу и выбираем «Создать запрос»
- В окне запроса пишем код удаления объекта:
USE [название_базы]
GO
DELETE FROM [название_таблицы]
WHERE [название_столбца_1] = [значение_поиска_1] and [название_столбца_2] = [значение_поиска_2] and [название_столбца_3] = [значение_поиска_3] and … [название_столбца_N] = [значение_поиска_N]
GO
Пример:
USE test_stand_2_cb
GO
DELETE FROM _AccRgAT118760
WHERE _AccountRRef = 0xab52f3e52b35efa847b0cfef9c90ff9d and _Fld18737RRef = 0x95eb00112f2a1abf11dac09f12116a47 and _Fld18739 = -1500.00
GO
test_stand_2_cb – название нашей сбойной базы
_AccRgAT118760 – таблица, в которой будем производить удаление объекта
_AccountRRef – столбец_1, в котором будем искать параметр для удаления
0xab52f3e52b35efa847b0cfef9c90ff9d – значение_1, которое должно стоять в столбце_1
_Fld18737RRef – столбец_2, в котором будем искать параметр для удаления
0x95eb00112f2a1abf11dac09f12116a47 – значение_2, которое должно стоять в столбце_2
_Fld18739 – столбец_3, в котором будем искать параметр для удаления
-1500.00 – сумма, которая должна стоять в столбце_3. Так как первое и второе значение будет содержаться во многих строках в таблице, нам нужно будет третье уникальное значение, по которому будет происходить поиск для удаления. Сумма нам может в этом помочь, т.к. значение суммы может совпадать с суммой сбойного документа.
- После написания запрос на удаления значения из таблицы нажимаем кнопку «Выполнить» или F5 на клавиатуре.
- После выполнения процедуры в SQL мы можем произвести нужные нами манипуляции со сбойным документом, которые ранее выдавали нам ошибку.
- Так же крайне желательно произвести пересчет итогов и проверить обороты.