Что делать, если заказы поставщикам в 1С:УТ 11.5 не проводятся из-за конфликта блокировок после обновления?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

После обновления конфигурации «Управление торговлей 11.5» пользователи могут столкнуться с серьезной проблемой: документы «Заказ поставщику» перестают проводиться, система выдает ошибку «Конфликт блокировок при выполнении транзакции». Часто это сопровождается общим замедлением работы. Рассмотрим, как диагностировать и устранить эту проблему.

Выясняем причину проблемы

Основной симптом — длительное «зависание» документа при проведении, которое в итоге прерывается ошибкой о превышении времени ожидания блокировки. Если использовать отладчик, можно заметить, что система надолго задерживается в процедуре ЗаполнитьОперативныеВзаиморасчеты общего модуля ОперативныеВзаиморасчетыСервер. При этом происходит запись аномально большого количества строк (тысячи и более) в регистр накопления РасчетыСПоставщикамиПланПоставок.

Ключевая причина такого поведения — некорректные данные в графике оплат документа. Если в табличной части «Этапы графика оплаты» у одного или нескольких этапов не заполнена дата платежа, система не может определить плановый период расчетов. В результате она пытается сгенерировать записи в регистры за очень большой промежуток времени, что и приводит к длительной транзакции, блокировке данных и, как следствие, ошибке.

Такая ситуация может проявиться именно после обновления, так как в новых релизах могли измениться алгоритмы работы с графиками оплат, и данные, которые раньше не вызывали проблем, теперь приводят к ошибкам.

Пошаговый план решения

Наша главная задача — найти и исправить документы с некорректно заполненными графиками оплат. Сделаем это в два шага.

  1. Находим «проблемные» документы с помощью запроса

    Чтобы не перебирать все документы вручную, воспользуемся консолью запросов. С ее помощью мы можем быстро найти документы, которые создают наибольшее количество записей в регистрах расчетов с поставщиками. Выполним следующие запросы. Они покажут по 50 документов, создавших максимум движений в регистре РасчетыСПоставщикамиПланПоставок за указанный период.

    Запрос для поиска проблемных документов «Заказ поставщику»:

    
    ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 50
        Т1.Регистратор КАК ДокументРегистратор,
        КОЛИЧЕСТВО(*) КАК Записей
    ИЗ
        РегистрНакопления.РасчетыСПоставщикамиПланПоставок КАК Т1
    ГДЕ
        Т1.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
        И ТИПЗНАЧЕНИЯ(Т1.Регистратор) = ТИП(Документ.ЗаказПоставщику)
    СГРУППИРОВАТЬ ПО
        Т1.Регистратор
    УПОРЯДОЧИТЬ ПО
        Записей УБЫВ
    

    Аналогичный запрос для документов «Приобретение товаров и услуг», так как они тоже могут влиять на этот регистр:

    
    ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 50
        Т1.Регистратор КАК ДокументРегистратор,
        КОЛИЧЕСТВО(*) КАК Записей
    ИЗ
        РегистрНакопления.РасчетыСПоставщикамиПланПоставок КАК Т1
    ГДЕ
        Т1.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
        И ТИПЗНАЧЕНИЯ(Т1.Регистратор) = ТИП(Документ.ПриобретениеТоваровУслуг)
    СГРУППИРОВАТЬ ПО
        Т1.Регистратор
    УПОРЯДОЧИТЬ ПО
        Записей УБЫВ
    

    В параметрах запроса &ДатаНачала и &ДатаОкончания укажите период, за который наблюдается проблема. Документы, которые окажутся вверху списка, — наши главные кандидаты на проверку.

  2. Анализируем и исправляем данные

    Откройте поочередно документы из полученного списка. В каждом документе перейдите к табличной части, отвечающей за график оплаты (например, на вкладке «Основное» или «Дополнительно» может быть раздел «Оплата»).

    Внимательно проверьте все строки в таблице Этапы графика оплаты. Убедитесь, что у каждого этапа заполнено поле «Дата платежа». Если дата пустая, укажите корректное значение. После внесения исправлений сохраните и перепроведите документ. Скорее всего, после исправления данных он проведется быстро и без ошибок.

Дополнительные рекомендации

Если исправление данных не помогло или проблемных документов слишком много, рассмотрим еще несколько вариантов:

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

← На главную