При обновлении конфигурации «1С:Управление торговлей» (особенно при переходе на релизы линейки 11.4.13 и выше) пользователи часто сталкиваются с пугающей ситуацией: в программе перестают отображаться цены в прайс-листах, а штрихкоды номенклатуры исчезают из карточек. При этом сами документы Установка цен номенклатуры остаются в базе, а штрихкоды могут быть видны в связанных справочниках поставщиков. Проанализируем причины этой проблемы и разберем пошагово, как вернуть корректное отображение данных.
В современных конфигурациях на базе 1С:Предприятие 8.3 процесс обновления разделен на два этапа. Первый этап происходит в конфигураторе и при первом запуске в режиме «Предприятие» — это изменение структуры таблиц. Второй этап — отложенное обновление — выполняется в фоновом режиме, пока пользователи уже работают в базе. Именно на этом этапе происходит пересчет регистров цен, перенос штрихкодов и установление связей между новыми объектами.
Если вы обновили программу сразу через несколько релизов («перепрыгнули»), очередь обработчиков обновления может зациклиться или остановиться из-за ошибок в данных. В результате документы Установка цен номенклатуры физически есть, но записи в регистре сведений Цены номенклатуры (откуда система реально берет данные для отображения) еще не созданы.
Рассмотрим порядок действий для проверки:
В релизах 11.4.13 разработчики 1С провели глобальную замену справочника Номенклатура поставщиков на единый справочник Номенклатура контрагентов. Это изменение затронуло не только название, но и внутреннюю структуру связей. Если при обновлении произошел сбой, связь между «старой» номенклатурой поставщика и основной карточкой товара могла разорваться.
Посмотрим на ситуацию глубже: штрихкоды поставщиков теперь хранятся в отдельном регистре сведений. Чтобы восстановить их видимость, необходимо убедиться, что для каждой позиции в справочнике Номенклатура контрагентов правильно указан владелец (основная номенклатура базы). Проверим это через стандартную форму списка или через консоль запросов.
Иногда цены «пропадают» только визуально в прайс-листах или подборах, хотя в регистре они присутствуют. Выясним причину, изучив настройки видов цен. В новых версиях могли измениться алгоритмы компоновки данных. Рассмотрим действия для исправления:
Установка цен номенклатуры достаточно изменить статус (например, перевести из «Согласовано» в «Действует» и обратно) и провести его. Это инициирует принудительную запись в регистр Цены номенклатуры.Если в вашей базе используются расширения для работы с торговым оборудованием, ТСД или для печати этикеток, они могут обращаться к старым реквизитам, которые были удалены или переименованы разработчиками 1С в типовой конфигурации. Рассмотрим, как выявить такой конфликт:
Временно отключите все активные расширения в разделе Администрирование — Печатные формы, отчеты и обработки — Расширения и проверьте, появились ли штрихкоды. Если данные отобразились, значит, расширение требует адаптации под новый релиз 11.4.13.
Если визуальные методы не помогли, воспользуемся инструментами разработчика для анализа того, что произошло на уровне таблиц базы данных. Проанализируем ситуацию с помощью регистра сведений ШтрихкодыНоменклатуры.
Для проверки выполните следующие шаги:
Штрихкоды номенклатуры.Номенклатура контрагентов.Для восстановления связей можно использовать следующий программный метод (если вы обладаете навыками программирования): необходимо программно пересчитать ссылки в регистре, сопоставив идентификаторы объектов. Пример логики для обработки может выглядеть так:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Штрихкоды.Штрихкод КАК Штрихкод,
| Штрихкоды.Владелец КАК Владелец
|ИЗ
| РегистрСведений.ШтрихкодыНоменклатуры КАК Штрихкоды
|ГДЕ
| Штрихкоды.Владелец ССЫЛКА Справочник.Номенклатура";
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
// Здесь можно выполнить проверку битых ссылок
// Или принудительное обновление индекса поиска
КонецЦикла;
Подведем итоги и зафиксируем правила безопасного обновления «Управления торговлей»:
v8upd.htm.Если все процедуры отложенного обновления завершены успешно, а данные так и не появились, рекомендуем запустить Тестирование и исправление базы данных в Конфигураторе (с включенными опциями проверки логической и ссылочной целостности). Это поможет восстановить связи, которые могли «повиснуть» при неудачной реструктуризации таблиц во время обновления. Для автоматизации регулярного архивирования, обновления и тестирования баз можно использовать программу для автоматического обновления и обслуживания баз 1С.