Переход с устаревших версий конфигураций, таких как 1С:Управление торговлей 11.1, на актуальные релизы 11.4 часто сопровождается сложностями, которые не всегда очевидны на первый взгляд. Одной из наиболее частых проблем является ситуация, когда после успешного, казалось бы, переноса данных часть контрагентов пропадает из специализированных списков (Клиенты или Поставщики), хотя в общем справочнике Партнеры они присутствуют. Параллельно с этим рядовые пользователи могут сталкиваться с критической ошибкой прав доступа, которая «зацикливает» интерфейс. В рамках этой статьи мы подробно разберем причины возникновения таких ситуаций и изучим методы их эффективного решения.
Для начала проанализируем, почему данные, перенесенные простыми инструментами (например, через Загрузку данных из табличного документа), могут отображаться некорректно. В версии 11.4 разработчики 1С существенно оптимизировали работу динамических списков для повышения быстродействия системы. В частности, для отображения контактной информации в списках справочника Партнеры был введен вспомогательный механизм.
Разберем ключевой момент: в УТ 11.4 в табличной части справочника Партнеры, отвечающей за контактную информацию, появился новый служебный реквизит — ВидДляСписка. Этот реквизит используется системой для быстрой фильтрации и вывода основных данных (телефон, адрес, email) прямо в форму списка без обращения к тяжелым запросам. При переносе данных из версии 11.1 этот реквизит остается пустым, так как в старой архитектуре его просто не существовало. В результате динамический список, настроенный на работу с этим полем, «теряет» записи или отображает их некорректно.
Если мы выяснили, что партнеры физически присутствуют в базе, имеют установленные флаги Клиент или Поставщик, но не видны в соответствующих разделах, нам необходимо принудительно инициализировать заполнение служебных полей. Рассмотрим пошаговый алгоритм выполнения этой операции:
Партнеры.ВидДляСписка и обновит данные в связанных таблицах.Этот метод позволяет системе запустить внутренние механизмы валидации данных, которые были проигнорированы при прямой загрузке через таблицу. При подготовке перехода на новую версию программы вы можете подобрать готовый инструмент миграции в разделе решений для переноса данных в 1С:УТ, чтобы избежать ошибок ручного заполнения.
Ситуация, когда администратор видит список, а менеджер получает бесконечное окно с ошибкой, связана с механизмом RLS (Record Level Security) — ограничением доступа на уровне записей. Рассмотрим, почему это происходит именно в списке Партнеры.
При активации строки в списке партнеров система пытается считать данные не только из самого справочника, но и из связанных объектов: Контрагенты, Банковские счета, Соглашения с клиентами. Если у пользователя в профиле настроен доступ к партнерам, но отсутствуют права на чтение связанных контрагентов (или права настроены по группам доступа, которые не были заполнены при переносе), возникает исключение. Для детальной проверки прав и профилей пользователей к связанным объектам подойдёт обработка для анализа прав доступа к объекту.
Почему ошибка зацикливается? Это происходит из-за особенностей работы управляемых форм. Когда фокус ввода (курсор) перемещается на строку, срабатывает событие ПриАктивизацииСтроки. Система выдает ошибку, пользователь нажимает «ОК», окно закрывается, фокус снова возвращается на ту же строку, что провоцирует повторный вызов события и новую ошибку. Выясним, как это лечить:
В новых версиях УТ активно используются Группы доступа партнеров. Если при переносе данных это поле у партнеров осталось пустым, а в профилях групп доступа пользователей установлены ограничения «Все запрещены, кроме разрешенных», система может блокировать доступ к записям с пустым значением группы доступа.
Проанализируем шаги по исправлению:
Контрагенты и Виды контактной информации.Помимо исправления реквизитов, важно выполнить регламентные операции, которые «склеивают» разорванные связи в базе данных. Посмотрим на список необходимых действий:
Администрирование — Поддержка и обслуживание — Полнотекстовый поиск — Очистить индекс / Обновить индекс.Партнеры в режиме обмена или через групповое изменение (с включенными обработчиками) решит эту проблему.В УТ 11.4 существует функциональная опция «Независимо вести партнеров и контрагентов». Если в исходной базе (11.1) она была выключена, а в новой включена (или наоборот), это может привести к конфликту отображения. Проанализируем настройки по пути: НСИ и администрирование — Настройка НСИ и разделов — CRM и маркетинг — Настройки CRM.
Если разделение не используется, убедитесь, что для каждого элемента справочника Партнеры существует ровно один связанный элемент справочника Контрагенты, и у них корректно заполнено поле Партнер. Проверить это можно простым кодом в консоли запросов:
ВЫБРАТЬ
Партнеры.Ссылка КАК Партнер,
Контрагенты.Ссылка КАК Контрагент
ИЗ
Справочник.Партнеры КАК Партнеры
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
ПО Контрагенты.Партнер = Партнеры.Ссылка
ГДЕ
Контрагенты.Ссылка ЕСТЬ NULL
И Партнеры.ЭтоГруппа = ЛОЖЬ
Если запрос возвращает строки, значит, у вас есть «одинокие» партнеры без контрагентов, что часто является причиной их отсутствия в бухгалтерских или управленческих списках, ориентированных на финансовые расчеты.
Подведем итог: Основная причина проблем после переноса данных в УТ 11.4 — это недозаполнение служебных реквизитов и игнорирование механизмов RLS. Использование штатной обработки Групповое изменение реквизитов с включенной опцией «Выполнять в обработчиках» является самым быстрым и безопасным способом привести базу в рабочее состояние.