Что делать, если после обновления 1С:Управление торговлей пропали цены и штрихкоды номенклатуры?

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

При обновлении конфигурации «1С:Управление торговлей» (особенно при переходе на релизы линейки 11.4.13 и выше) пользователи часто сталкиваются с пугающей ситуацией: в программе перестают отображаться цены в прайс-листах, а штрихкоды номенклатуры исчезают из карточек. При этом сами документы Установка цен номенклатуры остаются в базе, а штрихкоды могут быть видны в связанных справочниках поставщиков. Проанализируем причины этой проблемы и разберем пошагово, как вернуть корректное отображение данных.

Причина 1: Незавершенные процедуры отложенного обновления

В современных конфигурациях на базе 1С:Предприятие 8.3 процесс обновления разделен на два этапа. Первый этап происходит в конфигураторе и при первом запуске в режиме «Предприятие» — это изменение структуры таблиц. Второй этап — отложенное обновление — выполняется в фоновом режиме, пока пользователи уже работают в базе. Именно на этом этапе происходит пересчет регистров цен, перенос штрихкодов и установление связей между новыми объектами.

Если вы обновили программу сразу через несколько релизов («перепрыгнули»), очередь обработчиков обновления может зациклиться или остановиться из-за ошибок в данных. В результате документы Установка цен номенклатуры физически есть, но записи в регистре сведений Цены номенклатуры (откуда система реально берет данные для отображения) еще не созданы.

Рассмотрим порядок действий для проверки:

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

Причина 2: Реструктуризация справочника «Номенклатура контрагентов»

В релизах 11.4.13 разработчики 1С провели глобальную замену справочника Номенклатура поставщиков на единый справочник Номенклатура контрагентов. Это изменение затронуло не только название, но и внутреннюю структуру связей. Если при обновлении произошел сбой, связь между «старой» номенклатурой поставщика и основной карточкой товара могла разорваться.

Посмотрим на ситуацию глубже: штрихкоды поставщиков теперь хранятся в отдельном регистре сведений. Чтобы восстановить их видимость, необходимо убедиться, что для каждой позиции в справочнике Номенклатура контрагентов правильно указан владелец (основная номенклатура базы). Проверим это через стандартную форму списка или через консоль запросов.

Причина 3: Изменение механизмов работы видов цен

Иногда цены «пропадают» только визуально в прайс-листах или подборах, хотя в регистре они присутствуют. Выясним причину, изучив настройки видов цен. В новых версиях могли измениться алгоритмы компоновки данных. Рассмотрим действия для исправления:

  1. Зайдем в раздел CRM и маркетинг — Настройки и справочники — Виды цен.
  2. Откроем проблемный вид цены и проверим флаги Использовать при продаже и Назначать автоматически.
  3. Попробуем выполнить «фиктивное» перепроведение цен. Для этого в документе Установка цен номенклатуры достаточно изменить статус (например, перевести из «Согласовано» в «Действует» и обратно) и провести его. Это инициирует принудительную запись в регистр Цены номенклатуры.

Причина 4: Конфликт с расширениями базы

Если в вашей базе используются расширения для работы с торговым оборудованием, ТСД или для печати этикеток, они могут обращаться к старым реквизитам, которые были удалены или переименованы разработчиками 1С в типовой конфигурации. Рассмотрим, как выявить такой конфликт:

Временно отключите все активные расширения в разделе Администрирование — Печатные формы, отчеты и обработки — Расширения и проверьте, появились ли штрихкоды. Если данные отобразились, значит, расширение требует адаптации под новый релиз 11.4.13.

Технические методы проверки целостности данных

Если визуальные методы не помогли, воспользуемся инструментами разработчика для анализа того, что произошло на уровне таблиц базы данных. Проанализируем ситуацию с помощью регистра сведений ШтрихкодыНоменклатуры.

Для проверки выполните следующие шаги:

  1. Откройте Функции для технического специалиста (ранее «Все функции»).
  2. Найдите регистр сведений Штрихкоды номенклатуры.
  3. Сделайте отбор по конкретной позиции товара, которая «потеряла» код.
  4. Если запись в регистре есть, но в карточке номенклатуры пусто — проблема в кэше или в связях справочника Номенклатура контрагентов.

Для восстановления связей можно использовать следующий программный метод (если вы обладаете навыками программирования): необходимо программно пересчитать ссылки в регистре, сопоставив идентификаторы объектов. Пример логики для обработки может выглядеть так:


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |   Штрихкоды.Штрихкод КАК Штрихкод,
    |   Штрихкоды.Владелец КАК Владелец
    |ИЗ
    |   РегистрСведений.ШтрихкодыНоменклатуры КАК Штрихкоды
    |ГДЕ
    |   Штрихкоды.Владелец ССЫЛКА Справочник.Номенклатура";

Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
    // Здесь можно выполнить проверку битых ссылок
    // Или принудительное обновление индекса поиска
КонецЦикла;

Как избежать подобных проблем в будущем?

Подведем итоги и зафиксируем правила безопасного обновления «Управления торговлей»:

  1. Всегда делайте архивную копию перед каждым этапом обновления.
  2. Не перескакивайте через много релизов. Обновляйтесь последовательно, как рекомендует поставщик в файле v8upd.htm.
  3. Дожидайтесь завершения фоновых заданий. После обновления конфигурации в режиме «Предприятие» обязательно зайдите в «Результаты обновления программы» и убедитесь, что процент выполнения равен 100%.
  4. Проверяйте критичные данные сразу. Наличие цен и штрихкодов — это первое, что нужно проверить на копии базы перед тем, как пускать пользователей в рабочую среду.

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

← На главную