Ошибка при обмене РИБ. УТ 11.4

1. serezhka87 68 15.02.20 15:47 Сейчас в теме +10 $m
Имеется РИБ. При обмене в одной из периферийных баз появилась ошибка при загрузке данных из центральной базы:
Ошибка чтения файла сообщения обмена: {Обработка.КонвертацияОбъектовРаспределенныхИнформационныхБаз.МодульОбъекта(200)}: Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка при попытке вставки записи с неуникальным значением ссылки.
таблица AccumRg17202.
Посмотрел что это регистра накоплений ТоварыНаСкладах. Попробовал воспользоваться инструкцией https://infostart.ru/public/167386/ и сделал запрос на поиск дублей в этом регистр, запрос дублей не показывает.
Тестировал базу, Кэш удалял. Подскажите пожалуйста, что с этой бедой можно сделать?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. user856012 13 15.02.20 15:58 Сейчас в теме
(1)
Попробовал воспользоваться инструкцией https://infostart.ru/public/167386/ и сделал запрос на поиск дублей в этом регистр, запрос дублей не показывает.
Сейчас дублей в регистре нет, но при попытке обмена дубль возникает, поэтому и ошибка.

Откуда берется дубль? Надо в отладчике ставить точку останова на строку 200 и смотреть - что именно в этой строке вызывает ошибку, какая запись файла обмена обрабатывается?

По результатам думать дальше.
4. wau8824ru 22 16.02.20 11:26 Сейчас в теме
(1)
Ошибка при попытке вставки записи с неуникальным значением ссылки.

Можно еще прикрутить в модуле РН подобное
Процедура ПередЗаписью(Отказ, Замещение)
	
	Если ТипЗнч(ЭтотОбъект.Отбор.Регистратор.Значение) = Тип("ДокументСсылка.ПлатежноеПоручениеВходящее") Тогда
		Для Каждого СтрЗаписи Из ЭтотОбъект Цикл
			Если СтрНайти(Строка(СтрЗаписи.Сделка), "<Объект не найден>") <> 0 Тогда
				СтрЗаписи.Сделка = Документы.ЗаказПокупателя.ПустаяСсылка();// Или Неопределено;
			КонецЕсли;
		КонецЦикла;
	КонецЕсли;
	
КонецПроцедуры
Показать

Неуникальной ссылка стала после удаления??? насколько я понимаю. ТиИ с очищением поможет, а данный код в этом РН перед записью во время обмена не будет создавать такие записи.
5. wau8824ru 22 16.02.20 11:34 Сейчас в теме
(1)
сделал запрос на поиск дублей в этом регистр, запрос дублей не показывает

А поиск через список записей РН
"<Объект не найден>"

находит что-нибудь???
6. AlexandrSmith 68 16.02.20 15:20 Сейчас в теме
(1) Все советы интересные. Но я думаю, решение такое:
0) Создать тестовую базу на SQL Server
1) Включить инструменты разработчика, выписать все поля и названия на SQL.
2) Зайти в SQL Server отключить индексы у таблицы AccumRg17202.
3) Провести обмен.
4) Включить индексы будет ошибка по конкретной записи. ИЛИ, создать запрос по ключевым полям (записанным раннее 1)*) и выявить задвоение.
5) В инструментах разработчика разобраться по каким значениям ключевых полей вышла ошибка.
6) Ссылки будут на указателями на справочники, документы и т.д. В инструментах разработчика из можно расшифровать и получить полное представление о строках вызвавших проблему.

Проблему точно можно решить этим способом, вопрос в том насколько вы грамотны в вопросах SQL Server. Я точно именно так решал этот вопрос.
Но правильное решение было бы в том, что бы установить конкретную запись отладкой поискав по коду. Для этого нужно включить отладку в режиме фонового задания.
7. AlexandrSmith 68 16.02.20 15:24 Сейчас в теме
(1)Отключение индексов
https://docs.microsoft.com/ru-ru/sql/relational-databases/indexes/disable-indexes-and-constraints?view=sql-server-ver15
Отключение индексов и ограничений
В этом разделе описывается отключение индекса или ограничений в SQL Server 2019 (15.x) с помощью SQL Server Management Studio или Transact-SQL. Отключение индексов предотвращает доступ пользователя к индексам в случае использования кластеризованных индексов к данным базовой таблицы.
Отключение индексов советую делать при отсутствии в базе пользователей и с отключенными фоновыми заданиями.
Индексы можно отключить без запросов SQL Server, буквально в режиме менеджера SQL Server. Я бы посоветовал сгенерировать сначала файлы создания индексов потом их просто удалить, а далее уже после установления задвоений из обратно попробовать поставить и выявить ошибку. Способ точно рабочий и для меня, как для человека постоянно работающего с SQL Server задача ваша на 20 минут, у вас возможно уйдет часа три с изучением материала и установкой SQL Server.
8. AlexandrSmith 68 16.02.20 15:32 Сейчас в теме
(1) 1C не приветствует такие способы, но они являются невероятно действенными и простыми, главное руку набить. Ничего сложного в этом способе нет, он проще чем пытаться запустить debag фонового задания и отслеживать все запросы при обмене. Поэтому советую изучить, тем более вам необходимо будет получать сертификат Эксперта когда-нибудь.
3. sapervodichka 6690 15.02.20 18:31 Сейчас в теме
Пробовали изначально стандартными методами, я имею ввиду сделать в конфигураторе Источника и в конфигураторе Приемника тестирование исправление (Установите все флажки и опцию "При наличиии ссылок на несуществующие объекты" Очищать ссылки = Да) Затем повторно выгрузить данные из Источника и попробовать загрузить в Приемник. Если же у вас идет с обменом еще и обновление конфиуграции, то можно снять блокировку Премника, загрузить в него конфигурацию обновления, затем поставить на замочек как подчиненный узел, после чего попробовать еще раз загрузить сообщение (https://infostart.ru/public/706733/)
9. hamsar 15 17.02.20 15:16 Сейчас в теме
Добавьте расширение, которое игнорирует при чтении запись в этот регистр, затем обменяйтесь с цб, затем выгрузите записи регистра через консоль регистрации с отбором по нужном складу
10. KVIKS 395 17.02.20 17:21 Сейчас в теме
Можно попробовать сбросить регистрацию данных этого регистра в переферии, обменяться в обе стороны, потом перепровести документы в переферии и обменяться снова. Помогает - главное не ворочать большие периоды, к примеру данные за месяц я бы так провернул, потому что легко восстановить если что, данные за больший период уже бы не стал.
Оставьте свое сообщение
Вакансии
Программист 1С
Казань
зарплата от 150 000 руб.
Полный день

Программист 1С:ERP
Москва
зарплата от 100 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С (удаленно)
Самара
зарплата от 230 000 руб. до 230 000 руб.
Полный день

Руководитель группы разработки 1С
Москва
зарплата от 250 000 руб. до 250 000 руб.
Полный день