База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как исправить ошибку «пересечение ключей источника и приемника» в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 19 часов, 21 минута назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
31 августа 2026 в 12:36 #38517
ошибка пересечение ключей источника и приемника выполнять замеры процедура ниже &НаКлиенте
Процедура ПриОткрытии(Отказ)
ВыполнятьЗамеры = Ложь;// В безопасном режиме доп. отчеты формируются непосредственно,
// т.к. они не могут подключать себя и использовать собственные методы в фоновых заданиях.
Непосредственно = НастройкиОтчета.Внешний Или НастройкиОтчета.Безопасный;
ФормированиеПриОткрытии = Ложь;
ИнтервалОжидания = ?(ПолучитьСкоростьКлиентскогоСоединения() = СкоростьКлиентскогоСоединения.Низкая, 1, 0.2);Если Элементы.ФормироватьСразу.Пометка Тогда
ФормированиеПриОткрытии = Истина;
ПодключитьОбработчикОжидания(«Сформировать», 0.1, Истина);
Иначе
СброситьТекущуюОбласть();
КонецЕсли;ОбщегоНазначенияСлужебныйКлиент.УстановитьВидимостьПанелиПоказателей(Элементы, РазвернутьОбластьПоказателей);
РассчитатьПоказатели(ОсновнойПоказатель);ОбновитьНадписьПериоды();
ПодключитьОбработчикОжидания(«ОпределитьПоведениеНаНачальнойСтранице», 0.1, Истина);
КонецПроцедуры -
31 августа 2026 в 12:36 #38518
Ошибка «пересечение ключей источника и приемника» в 1С обычно связана с конфликтом при выполнении замеров производительности (профилировании) или при работе с обработчиками ожидания, когда в одном и том же контексте пытаются одновременно работать с одними и теми же объектами или ресурсами.
В вашем коде процедуры ПриОткрытии есть вызов:
1С (Код)1ПодключитьОбработчикОжидания("Сформировать", 0.1, Истина);и другие вызовы обработчиков ожидания. Ошибка может возникать, если:
— Обработчик «Сформировать» запускается повторно, не дождавшись завершения предыдущего вызова.
— Внутри процедуры «Сформировать» или связанных с ней процедур происходит конфликт ключей (например, при работе с временными таблицами, коллекциями или источниками данных).
— В настройках отчёта или в коде формирования данных есть пересечение ключей (например, одинаковые идентификаторы в источнике и приемнике данных).—
Что проверить и сделать:
1. Проверить процедуру «Сформировать»
Убедитесь, что в процедуре «Сформировать» нет повторного запуска или рекурсии, которая может вызвать конфликт.
Если там есть асинхронные операции, добавьте блокировку или флаг, чтобы не запускать формирование повторно, пока не завершится предыдущий вызов.2. Проверить уникальность ключей в источниках данных
Если в отчёте используется СКД или запросы с объединением, проверьте, что ключи источника и приемника не пересекаются (см. предыдущий ответ).
Добавьте уникальный признак источника, если объединяете несколько выборок.3. Отключить замеры для проверки
В начале процедуры ПриОткрытии у вас есть переменнаяВыполнятьЗамеры = Ложь;. Убедитесь, что в коде формирования отчёта не включены замеры производительности, которые могут конфликтовать.
Если замеры включены, попробуйте их отключить.4. Использовать отладчик и логи
Включите журнал регистрации и отладчик, чтобы отследить момент возникновения ошибки.
Посмотрите, в какой момент вызывается ошибка — при подключении обработчика ожидания или при выполнении процедуры формирования.5. Обновить платформу и конфигурацию
Иногда такие ошибки связаны с багами платформы. Проверьте, что у вас актуальная версия платформы 1С и конфигурации.—
Если нужна помощь с конкретным кодом процедуры «Сформировать» или с запросами, приложите их, помогу найти точную причину.
—
Рекомендации по обработчикам ожидания:
— Не подключайте один и тот же обработчик несколько раз подряд без отключения.
— Используйте флаги состояния, чтобы контролировать запуск и завершение обработчиков.
— В обработчиках избегайте длительных операций, лучше делайте вызовы на сервер.—
Если ошибка связана именно с «пересечением ключей источника и приемника» в контексте замеров, скорее всего, проблема в том, что в процессе формирования отчёта или замеров происходит конфликт данных (например, при объединении таблиц или при работе с временными хранилищами).
—
Если хотите, могу помочь с примером корректного подключения обработчиков ожидания и организации формирования отчёта без конфликтов.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.