Глюки со временем документа в таблицах 1С (SQL Server)

30.01.15

Задачи пользователя - Корректировка данных

При загрузке в монопольном режиме SQL ругается:
SQL State: 23000
Native: 1505
Message: [Microsoft][ODBC SQL Server Driver][SQL Server]CREATE UNIQUE INDEX terminated because a duplicate key was found for index ID 2. Most significant primary key is ' 20MGJ '.

Скачать исходный код

Наименование Файл Версия Размер
проверка_time.sql
.sql 0,40Kb
5
.sql 0,40Kb 5 Скачать
SQLQuery4updatescrdocTIME.sql
.sql 0,14Kb
3
.sql 0,14Kb 3 Скачать
SQLQuery3updatejornTIME.sql
.sql 0,19Kb
2
.sql 0,19Kb 2 Скачать

 

 

Проблема такая: при обновлении конфигурации на этапе пересчёта перекрёстных ссылок 1С ругается 
"CREATE UNIQUE INDEX terminated because a duplicate key was found for index ID 2" и умирает. 
Фишка в том, что она сначала напихивает записей в _1scrdoc, а потом уже создаёт уникальный индекс, 
который не желает создаваться, т.к. 1С неправильно заполнила таблицу.

 

Решение:

1 Ищем средствами SQL Server Management Studio в таблицах _1SJOURN (Журналы  документов) , _1SOPER и _1sentry не соответствие по времени(проверка_time.sql)

select
o.date_time_docid dto,
s.date_time_docid dtsj,

o.docid [Документ $Документ],
j.iddocdef Документ_вид,
j.docno номер,
j.date_time_iddoc dtj

from _1SOPER o (NOLOCK)
inner join _1sentry s (NOLOCK) ON s.docid = o.docid
inner join _1SJOURN j (NOLOCK) ON j.iddoc = o.docid

where (s.date_time_docid <> o.date_time_docid)

order by o.date_time_docid

Если таковые записи есть,то есть несоответствие по времени и 1с при пересчете перекрестных ссылок документов (формирование таблицы документов  _1SCRDOC) создаст дубликаты ключей. 

Т.е. получается, что в журнале документов данный документ (ручная операция) имеет одно время, а в списке операций - другое... Почему такое происходит я не знаю, но примерно могу догадаться, проанализировав значение времени:
20131031EAEAY8 20MGJ   20131031EAGG40 20MGJ   20MGJ   12120  870               20131031EAEAY8 20MGJ   
20131031EAEAY8 = 10.31.2013 23:59:59
20131031EAGG40 = 10.31.2013 23:59:59 + 10 секунд

2 Устанавливаем дату:время  в таблице  проводок из журнала  документов средствами  SQL:

update _1sentry
set _1sentry.DATE_TIME_DOCID=_1sjourn.DATE_TIME_IDDOC

FROM _1sjourn(nolock)
where _1sentry.DOCID=_1sjourn.idDOC and
_1sentry.DATE_TIME_DOCID<>_1sjourn.DATE_TIME_idDOC

3 Прописываем по  таким  документам "дату:время" в журнале (ссылки документов)  _1SCRDOC  из таблицы _1SJOURn

update _1scrdoc
set _1scrdoc.child_date_time_iddoc=_1sjourn.DATE_TIME_IDDOC
FROM _1sjourn(nolock)
where _1scrdoc.childid=_1sjourn.idDOC

См. также

Комплект обработок 1С 7.7 для работы со справочниками и документами

Чистка данных Корректировка данных Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

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

1 стартмани

13.05.2021    7853    8    etmarket    0    

3

Сверки и переносы документов между базами 7.7 и 8, исправление расхождений. Реализации. Поступления. Корректировки отгрузки, поступления. Счета-фактуры выданные, полученные; исправленные выданные и полученные. COM-объект 1С8 (ОФ)

Корректировка данных Акт сверки Платформа 1С v7.7 Платформа 1С v8.3 1С:Управление торговлей 10 1С:Комплексная 7.7 1С:Торговля и склад 7.7 Россия Бухгалтерский учет Управленческий учет НДС Абонемент ($m)

Пример реализации сверок между базами и исправления расхождений в обе стороны, из 7.7 -> в 8.3 и из 8.3 -> в 7.7 на обычных формах. Фундаментальные обработки, которые работают на постоянной основе и поддерживают идентичность данных между базами основных поставщиков и основных покупателей (их соответствие прописано в модуле). Используется Новый COMОбъект("V77.Application"), пример использования внешнего источника данных. Реализация в поступление. Поступление в поступление. Корректировка поступления в корректировку отгрузки. СчФ выданный в СчФ полученный. Исправление СчФ полученного в исправление СчФ выданного. Перенос документа Реализация 7.7 в Поступление 8, Перемещение 7.7 в Поступление 8. Акт сверки взаиморасчетов (несколько организаций). Все обработки запускаются в базе 1С Предприятие 8 (обычные формы).

1 стартмани

03.10.2019    14687    30    ksnik    6    

4

Универсальный подбор и обработка объектов для 1С: Предприятия 7.7 "UChoice.ert"

Корректировка данных Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Универсальная обработка 7.7, представленная здесь, до сих пор почему-то по функционалу гораздо беднее, чем общеизвестная типовая "Универсальный подбор и обработка объектов" (UNIREPS82\UniversalSelection) 8.2-8.3", мне не хватило возможности выполнить произвольный код обработчика объектов. Данная обработка "UChoice.ert" является полным аналогом "UniversalSelection", представляет собой консоль выполнения произвольного кода, позволяет делать с объектами информационной базы 1С 7.7 абсолютно все, что угодно, а не узкий, сложно настраиваемый набор команд, на мой взгляд, она существенно превосходит имеющиеся аналоги, поэтому ничем другим кроме нее я не пользуюсь.

1 стартмани

04.04.2019    16372    28    ksnik    9    

4

Переход на НДС 20% для 1С:7.7

Корректировка данных Бухгалтерский учет 7.7 1С:Упрощенное налогообложение 7.7 Россия Бухгалтерский учет НДС Абонемент ($m)

Для 1С:Предприятия 8 переход на НДС 20% сделан, а для 7.7 я не нашел. Выкладываю.

1 стартмани

24.12.2018    18518    34    pentanom    25    

5

Исправление отрицательных номеров строк табличной части документов

Корректировка данных Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Обработка, исправляющая ситуацию с отрицательными номерами строк в табличной части

1 стартмани

31.08.2017    13359    1    C0mmander_Alex    1    

3

Групповая обработка документов и справочников v.7.7

Корректировка данных Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

1. Обработка позволяет совершать следующие действия над объектами: а. СПРАВОЧНИКИ: удаление; пометка на удаление; снятие пометки на удаление. б. ДОКУМЕНТЫ: удаление; пометка на удаление; снятие пометки на удаление; проведение; отмена проведения; выключить проводки; включить проводки. 2. Действия могут быть ограничены некоторыми условиями. 3. Существует отбор по видам объектов. 4. Есть возможность обработать подчиненные справочники.

1 стартмани

30.04.2017    22269    78    DUH    0    

5

Универсальные обработки документов и справочников для 1С: Предприятие 7.7

Корректировка данных Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Обработки можно использовать в любой конфигурации 1С-Предприятия 7.7. Обработки позволяют просмотреть/изменить значения любого реквизита документов/справочников, существующих в базе. В обработках реализован множественный отбор по значениям реквизитов (для табличной части документов тоже). В обработке документов реализованы следующие действия: Перенумерация; проведение; отмена проведения; пометка на удаление; непосредственное удаление; снятие пометки удаления; изменение реквизитов; очистка реквизитов; удаление строк табличной части; вывод на печать и в файлы *.xls,*.csv,*.dbf,*.xml реквизитов шапки и табличной части. В обработке справочников реализованы следующие действия: Перенумерация; пометка на удаление; непосредственное удаление; снятие пометки удаления; изменение реквизитов; очистка реквизитов; очистка истории значений периодического реквизита; перенос справочника в другую базу подобной конфигурации по OLE; вывод на печать реквизитов и истории значений периодических реквизитов; вывод реквизитов в файлы *.xls,*.csv,*.dbf,*.xml; отчет по структуре справочников, вывод и обработка ссылок на выбранные элементы.

1 стартмани

23.11.2016    38241    210    SanchoD    15    

13

Выводим из suspect базу 1С 7.7 на sql server 2000, а также "Перемещение баз данных SQL Server в новое местоположение с помощью операций Detach и Attach"

Корректировка данных Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

База данных помечается Suspect, когда SQL Server не может читать файлы данных, связанные с базой данных с жесткого диска. В этом случае сделать бекап базы нельзя, но можно попробовать образ диска. После того как возможность читать файлы данных восстановлена, вы можете перезапустить службу SQL Server, и если возможно, произойдет автоматическое восстановление. Что делать, если информационная база 1С7.7 на SQL Server 2000 перешла в состояние suspect? Если это произошло утром и бекап сделан, Вы, конечно, можете грохнуть и раскатать базу заново (вечером это проблематичнее), но не торопитесь - возможно, поможет detach+attach или другие методы, изложенные в данной публикации.

1 стартмани

08.11.2016    22766    ksnik    5    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. aikosyapr 25 22.05.15 10:40 Сейчас в теме
Спасибо, добрый человек, весьма помог
+
2. pavz 6 26.05.16 09:48 Сейчас в теме
Да, столкнулся с данной проблемой при реструктуризации, решал СРОЧНО устранением задвоенных по ключевым полям записей в 1SCRDOC.
Данное решение правильнее на порядок! т.к. устраняет причину для уже имеющихся в базе документов).
СПАСИБО!
leoner61; +1
3. pavz 6 26.05.16 17:08 Сейчас в теме
Однако, все равно пришлось в неиндексируемом 1SCRDOC задвоенные записи уничтожать по своему. можно было запустить перепостроение и проблема бы ушла, но база большая, долго.
leoner61; +1
4. user707242_Gold_karas 13 17.07.23 13:35 Сейчас в теме
Спасибо за помощь,
вопрос - почему для журнала операций время также не синхронизируете здесь?
+
Оставьте свое сообщение