Как правильно работать с установкой цен в 1С:КА 2 и почему возникают ошибки в закрытом периоде

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

Работа с ценообразованием в крупных конфигурациях, таких как 1С:Комплексная автоматизация 2 (КА 2) или 1С:ERP, требует от специалиста понимания не только логики подбора цен, но и архитектурных особенностей системы. Часто возникают ситуации, когда новые цены «не подтягиваются» в документы продажи или когда манипуляции с документами прошлых периодов вызывают гнев бухгалтерии. Разберем подробно, как устроены эти процессы, и выясним причины типичных ошибок.

Влияет ли документ «Установка цен номенклатуры» на закрытие периода?

Проанализируем ситуацию с точки зрения системы. Формально документ УстановкаЦенНоменклатуры является «техническим» — он не делает движений по регистрам накопления, не формирует проводок и не влияет на расчет себестоимости напрямую. Однако на практике изменение любого документа в закрытом периоде может привести к негативным последствиям. Рассмотрим причины:

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

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

Разбираемся с версиями ценообразования: 2.0 против 2.5

Одной из самых частых причин того, что цены отображаются некорректно, является переход системы на новую версию подсистемы ценообразования. В настройках 1С:КА 2 (НСИ и администрирование — Настройка НСИ и разделов — CRM и маркетинг) можно переключить версию с 2.0 на 2.5. Рассмотрим, что при этом меняется:

Если ваша база была обновлена или настройки переключены в процессе эксплуатации, может возникнуть конфликт: старые документы записаны в регистры версии 2.0, а новые заказы ищут данные в регистрах версии 2.5. Проанализируем это: если вы создали документ по старой схеме, он просто «не существует» для новой подсистемы. Именно это часто становится причиной того, что в ЗаказКлиента подставляется цена из очень старого, но «правильно сконвертированного» документа, игнорируя ваши свежие записи. Для переноса старых сведений в новый регистр пригодится обработка переноса истории данных цен при переходе на ценообразование 2.5.

Почему в Заказ клиента подтягивается неверная цена?

Если вы уверены, что версия ценообразования настроена верно, но цена все равно берется из документа двухлетней давности, проверим следующие моменты:

  1. Время документа: Если ЗаказКлиента создан в 09:00, а УстановкаЦенНоменклатуры — в 12:00 того же дня, то при автоматическом заполнении цен система возьмет цену, действующую на 09:00. Всегда старайтесь устанавливать цены либо будущей датой (начало дня), либо концом предыдущего дня.
  2. Статус документа: В версии 2.5 документы установки цен имеют статусы. Проверьте, что ваш документ находится в статусе «Действует». Если он в статусе «На согласовании», система его проигнорирует.
  3. Вид цены в соглашении: Посмотрите, какой вид цены указан в ИндивидуальноеСоглашение или ТиповоеСоглашение с клиентом. Возможно, там жестко закреплен старый вид цены (например, «Цена поставщика электроники»), а вы загружаете данные в новый вид («Оптовая цена спорта»).

Безопасное удаление «мусорной» номенклатуры и очистка ссылок

Часто возникает задача очистить базу от загруженных по ошибке тысяч позиций номенклатуры. Удалить их просто так не получится, если на них ссылаются документы УстановкаЦенНоменклатуры. Рассмотрим правильный алгоритм действий:

Использовать непосредственное удаление в рабочей базе категорически не рекомендуется. Вместо этого применим программный подход с использованием режима загрузки данных. Это позволит пометить документы на удаление, минуя некоторые проверки:


// Пример программной пометки на удаление документов УЦ без проверки периода
Процедура ПометитьНаУдалениеЦеныБезПроверок(МассивСсылокУЦ)
    Для Каждого Ссылка Из МассивСсылокУЦ Цикл
        ОбъектУЦ = Ссылка.ПолучитьОбъект();
        // Устанавливаем режим загрузки, чтобы обойти проверки даты запрета
        ОбъектУЦ.ОбменДанными.Загрузка = Истина;
        ОбъектУЦ.УстановитьПометкуУдаления(Истина);
        ОбъектУЦ.Записать();
    КонецЦикла;
КонецПроцедуры

Однако, даже если вы пометили документы на удаление, ссылки в базе остаются. Проанализируем способы окончательного решения проблемы:

Практические рекомендации для программиста

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

  1. Работайте на копии: Любые массовые изменения цен или удаление документов сначала тестируйте на копии базы. Проверяйте, не «слетает» ли статус закрытия месяца после ваших действий, используя автоматическую сверку бухгалтерских и налоговых проводок между базами.
  2. Используйте версионирование: Включите версионирование для документов установки цен. Это поможет быстро понять, кто и когда изменил цены, если вдруг в заказах начали появляться странные цифры.
  3. Анализ регистров: При поиске причин «неправильной» цены всегда открывайте регистр сведений (ЦеныНоменклатуры или ЦеныНоменклатуры25) и делайте отбор по конкретной позиции. Там наглядно видно, какая запись является последней.
  4. Разграничение видов цен: Не смешивайте цены разных поставщиков в одном виде цены. Если программист до вас совершил такую ошибку, создайте новые, правильные ВидыЦен и переведите на них работу компании. Это гораздо безопаснее, чем пытаться «вычистить» историю в старых документах.

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

← На главную