Имя: Пароль:
1C
1С v8
УТ 10.3 БАЗОВАЯ версия, файловая база - сломался РН "Товары в рознице"
0 s202
 
15.10.22
18:02
8.3.16.1502 УТ 10.3 БАЗОВАЯ версия, файловая база - сломался РН "Товары в рознице", точнее - его таблица остатков.
В отчетах остатки товаров кривые, Chdbfl ничего не находит. ТиИ проблему не исправляет - при попытке пересчета итогов:

"ошибка sdbl ожидается create drop rename replace или select (pos=0)"

При попытке загрузить базу в SQL:
Попытка вставки неуникального значения в уникальный индекс:
Microsoft SQL Server Native Client 11.0: The CREATE UNIQUE INDEX statement terminated because a duplicate key was found for the object name 'dbo._AccumRgT6163' and the index name '_AccumRgT6163_ByDims_TRRRRR'. The duplicate key value is (Jan  1 2001 12:00AM

AccumRgT6163 - это таблица остатков регистра накопления "Товары в рознице". При просмотре утилитой TOOL_1CD видны записи с пустым периодом.

Вопрос - как их удалить. Или как очистить эту таблицу? В SQL база не загружается (см.выше), поэтому как это исправить в файловой базе?
1 Chai Nic
 
15.10.22
18:15
А выгрузка-загрузка?
2 Chai Nic
 
15.10.22
18:18
И вообще, судя по ошибке, связанной с неуникальным ключом в AccumRgT6163, проблема не в итогах, а в основной таблице регистра. Смотрите её, может быть там две записи с одинаковой комбинацией полей, которые должны давать уникальный ключ.
3 Chai Nic
 
15.10.22
18:19
(2) Пардон, не обратил внимания на T. Ну в любом случае, смотрите на основную таблицу. Итоги по ней строятся.
4 s202
 
15.10.22
18:43
(3) Проблема именно в таблице остатков:

https://postimg.cc/nCnDnsvy

В самом регистре "ТоварыВРознице" таких записей нет.
Печаль в том, что Tool_1CD может только читать файловую базу новых версий 8.3
А в SQL оно не загружается.
5 Chai Nic
 
15.10.22
19:02
Так если проблема при пересчете итогов - смотрите в основной таблице, может там пустой период тоже есть?
6 Фрэнки
 
15.10.22
19:05
угу. Кажется, мало вероятным, чтоб платформа пыталась создать остаток на пустом периоде, если с этим периодом не было ни одной записи в основной таблице.

А база очень большая?
7 ViSo76
 
15.10.22
19:16
Попробуй только индексы пересоздать из конфигуратора.
PS: Скопируй файл базы до этого.
8 s202
 
15.10.22
19:17
(7) Это я сразу попробовал. Не помогло.
9 ViSo76
 
15.10.22
19:18
(7) Можно по данному регистру пересчитать остатки кодом.
10 s202
 
15.10.22
19:19
(9) Это как ?
11 ViSo76
 
15.10.22
19:20
(8) попробуй найди дубли в измерениях, через запрос если остатки считывает
12 ViSo76
 
15.10.22
19:21
13 Фрэнки
 
15.10.22
19:29
Надо бы в первую очередь проверить, что в РН "Товары в рознице" нет записей со значением в поле регистратор "объект не найден"
И проверить поле периода. Если окажется, что такой пустой период есть и у него есть регистратор - разбораться с этим регистратором.

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

А сам по себе регистр отстатком восстановится автоматически. Совет вручную запускать пересчет итогов представляется таким же, как и пересчет всех итогов целиком, просто времени займет меньше до момента, пока на ошибку нарвется.
14 s202
 
15.10.22
19:46
(9) Пересчитал программно. И проблема с остатками товаров ушла. И косячные записи с пустым периодом ушли.
И все вроде бы хорошо, но при пересчете итогов из ТиИ все равно получаю
"ошибка sdbl ожидается create drop rename replace или select (pos=0)"

Но зато в SQL теперь ЗАГРУЗИЛОСЬ. Теперь уже разберусь.

СПАСИБО!