Как разрешить выбор цен с НДС и без НДС в одном соглашении УТ 11.5?

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

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

Понимание проблемы

Система 1С накладывает строгие связи параметров выбора на реквизиты справочников, чтобы исключить логические ошибки при расчете налогов. Если в соглашении установлен флаг Цена включает НДС, система автоматически ограничивает список доступных видов цен только теми, где также активен этот признак. Это сделано для того, чтобы алгоритмы расчета суммы в заказе или реализации работали корректно и предсказуемо. Попытка принудительно изменить этот выбор через штатный интерфейс невозможна, так как отбор заложен в свойствах объекта конфигурации.

Решение задачи с помощью расширения конфигурации

Если бизнес-процессы вашей компании требуют отхода от типовой логики, мы можем вмешаться в процесс формирования списка выбора. Рассмотрим пошаговый алгоритм решения этой задачи.

  1. Создайте новое Расширение конфигурации, если оно еще не создано.
  2. Добавьте в расширение справочник, отвечающий за уточнения цен (обычно это часть механизма Соглашения с клиентами или регистр сведений).
  3. Перехватите событие инициализации формы или управления связями параметров выбора.
  4. Программным путем очистите массив связей, который накладывает ограничение на поле выбора вида цены.

Для реализации этого метода необходимо в коде расширения при открытии формы или при изменении контекста обратиться к элементу управления. Рассмотрим пример программного вмешательства:


// Пример кода для программной очистки связей параметров выбора
&НаСервере
Процедура ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
    // Очищаем существующие связи параметров выбора для элемента формы
    // Получаем элемент, отвечающий за выбор вида цены
    Элемент = ЭтаФорма.Элементы.ВидЦены;
    
    // Создаем пустой массив связей
    НовыеСвязи = Новый Массив;
    
    // Устанавливаем пустой массив связей, тем самым отключая отбор
    Элемент.СвязиПараметровВыбора = Новый ФиксированныйМассив(НовыеСвязи);
КонецПроцедуры

Важные замечания и риски

Рассмотренный выше метод является эффективным «обходом» системы, но он несет в себе определенные риски, которые необходимо учитывать при внедрении:

Мы проанализировали ситуацию и выяснили, что программная очистка связей через СвязиПараметровВыбора позволяет пользователю выбрать любой вид цены. Однако перед запуском этого функционала в промышленную эксплуатацию крайне рекомендуется провести тестирование проведения документов с использованием различных комбинаций видов цен и признаков НДС, чтобы убедиться в корректности формирования проводок и движений по регистрам накопления.

← На главную