При настройке новой базы 1С:Комплексная автоматизация 2 (КА 2) или 1С:ERP специалисты часто сталкиваются с ситуацией: данные (номенклатура, характеристики, цены) перенесены из старой базы с помощью обработки «Универсальный обмен данными XML», документы «Установка цен номенклатуры» проведены, записи в регистрах присутствуют, но в «Заказах клиента» или «Реализациях» цена упорно не заполняется автоматически. Более того, выбор цены вручную также может быть заблокирован.
В этой статье мы подробно разберем, почему «визуально правильные» данные не работают в логике системы, проанализируем скрытые механизмы работы справочника ВидыЦен и выясним, как исправить ситуацию, не прибегая к полному ручному вводу данных.
Рассмотрим стандартную цепочку действий. Вы создали новую базу, перенесли справочники и документы установки цен. Проверили регистр сведений ЦеныНоменклатуры — там есть записи на нужную дату, с верной валютой и характеристиками. В СоглашенииСКлиентом или настройках склада указан правильный вид цены. Однако при выборе товара в документе продажи колонка «Цена» остается пустой.
Проблема кроется в том, что для корректной работы алгоритмов КА 2 недостаточно простого наличия ссылки в регистре. Объект ВидЦены (справочник ВидыЦен) должен обладать определенным набором корректно заполненных реквизитов, многие из которых являются служебными или не видны в стандартных формах при определенных настройках. При переносе через «Конвертацию данных 2.0» (КД 2) эти связи или специфические строковые идентификаторы могут быть повреждены или пропущены.
Проанализируем структуру справочника ВидыЦен. Одним из важнейших реквизитов в современных версиях КА 2 является ИдентификаторДляФормул. Этот реквизит используется системой для программного обращения к виду цены, особенно если цена является расчетной.
При ручном создании вида цены в интерфейсе 1С этот идентификатор формируется автоматически из наименования. Однако при загрузке через XML он может оказаться пустым или содержать недопустимые символы. Если система не может корректно разрешить этот идентификатор, механизм поиска цен в документах может давать сбой.
Разберем, как это проверить и исправить:
РозничнаяЦена).ПередЗаписью, которая может дозаполнить служебные поля.В конфигурации 1С:Комплексная автоматизация 2 у каждого вида цены есть функциональные флаги, определяющие его назначение. Выясним причину, по которой вид цены может игнорироваться документами продажи:
Истина, вид цены будет доступен для внутреннего учета, но алгоритм заполнения «Заказа клиента» его проигнорирует.Действует.При переносе данных через КД 2 часто сопоставляются только основные реквизиты (Наименование, Валюта), а эти флаги могут не перенестись, если они не были явно указаны в правилах обмена (ПКО).
Как показывает практика, создание нового вида цены «руками» в новой базе решает проблему. Это происходит потому, что при интерактивном создании срабатывают все встроенные обработчики событий объекта. Если видов цен много, пересоздавать их вручную нецелесообразно. Мы можем заставить систему пересчитать служебные поля программно.
Рассмотрим пример кода для обработки перенесенных видов цен (использовать в консоли кода или внешней обработке):
Выборка = Справочники.ВидыЦен.Выбрать();
Пока Выборка.Следующий() Цикл
ОбъектВидаЦены = Выборка.ПолучитьОбъект();
// Инициируем обновление служебных реквизитов
ОбъектВидаЦены.ОбменДанными.Загрузка = Ложь;
Попытка
ОбъектВидаЦены.Записать();
Сообщить("Вид цены обновлен: " + ОбъектВидаЦены.Наименование);
Исключение
Сообщить("Ошибка при записи: " + ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
Важный момент: Установка ОбменДанными.Загрузка = Ложь обязательна, чтобы сработали алгоритмы проверки и заполнения ПередЗаписью, которые обычно отключаются при загрузке данных из XML.
Если с самим видом цены все в порядке, проанализируем настройки, связывающие этот вид цены с документом. В КА 2 действует строгая иерархия приоритетов:
Проанализируем ситуацию с переносом УИД (уникальных идентификаторов). Если вы перенесли Соглашение, но не перенесли связанный с ним Вид цены (или перенесли его как новый объект с другим УИД), то в поле «Вид цены» в Соглашении может отображаться «Объект не найден» или пустая ссылка, что блокирует подстановку цен.
В новой «пустой» базе часто забывают включить ключевые функциональные опции, которые активируют механизмы ценообразования. Проверим следующие настройки (НСИ и администрирование -> Настройка НСИ и разделов -> CRM и маркетинг -> Маркетинг):
Чтобы избежать подобных проблем в будущем, при настройке правил обмена в «Конвертации данных 2.0» для справочника ВидыЦен следуйте этим правилам:
УИД (Уникальному идентификатору), чтобы сохранить связи между Соглашениями, Видами цен и Документами установки.ВидыЦен убедитесь, что переносятся реквизиты ИдентификаторДляФормул, ИспользоватьПриПродаже и ВалютаЦены.ЦеныНоменклатуры не только на наличие записей, но и на соответствие измерений (Характеристика, Единица измерения).Подводя итог, можно сказать, что в 90% случаев проблема незаполнения цен после миграции данных в КА 2 связана с «недозаполнением» объекта ВидЦены служебной информацией, которая в типовых формах скрыта, но критически важна для внутренних запросов системы. Самый быстрый способ диагностики — ручное создание аналогичного вида цены и сравнение его поведения с перенесенным объектом.