Как настроить порядок колонок и вид цен по умолчанию в форме «Формирование цен» в 1С:УНФ 1.6?

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

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

Представим стандартную рабочую ситуацию: оператор привык, что первой колонкой в таблице отображается «Розничная цена», а при расчете наценки система автоматически предлагает изменять именно розничную цену. После переноса базы порядок колонок изменился на «Учетная цена» -> «Закупочная цена» -> «Розничная цена». В результате розничная цена «уехала» за пределы видимости экрана, и пользователю приходится каждый раз прокручивать таблицу вправо, а при установке процента наценки вручную переключать базовый вид цены с учетного на розничный. Это существенно замедляет ежедневную рутинную работу по вводу накладных.

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

Почему стандартная настройка формы «Изменить форму» не работает?

Первое, что пытается сделать опытный пользователь или администратор для решения проблемы с отображением колонок, — это воспользоваться стандартным механизмом платформы: нажать кнопку «Еще» -> «Изменить форму». Однако в случае с обработкой «Формирование цен» этот способ не сработает.

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

Способ 1. Изменение контекста запуска обработки (Быстрое решение)

Проанализируем поведение системы при различных сценариях запуска. Логика работы помощника «Формирование цен» напрямую зависит от того, из какого раздела программы или документа он был вызван:

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

Рассмотрим пошагово, как запустить обработку с правильным фокусом:

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

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

Способ 2. Отключение неиспользуемых видов цен в помощнике

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

Для этого при запуске помощника «Формирование цен» на первом шаге достаточно просто снять флажок с ненужного вида цены (например, отключить «Учетную цену»). Это позволит:

Способ 3. Изменение порядка цен в справочнике «Виды цен»

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

Для каждого элемента справочника ВидыЦен в системе предопределено числовое поле «Порядок» (в некоторых версиях интерфейса оно может называться сортировкой). Программа выстраивает колонки слева направо в соответствии с возрастанием этого показателя. Чтобы сделать розничную цену приоритетной:

  1. Откроем карточку вида цены «Розничная» и установим для нее наименьший порядковый номер (например, 1).
  2. Для цен «Закупочная» и «Учетная» установим значения порядка больше (например, 2 и 3 соответственно).
  3. Сохраним изменения. Теперь при инициализации таблиц система будет выстраивать колонки по заданным приоритетам.

Технический анализ механизма инициализации цен (для администраторов и разработчиков)

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


Если Элементы.ТекущийВидЦен.СписокВыбора.Количество() = 1 Тогда
    
    ТекущийВидЦен = Элементы.ТекущийВидЦен.СписокВыбора[0].Значение;
    
ИначеЕсли Параметры.Свойство("ТекущаяКолонка") Тогда
    
    ТекущийВидЦен = ?(Элементы.ТекущийВидЦен.СписокВыбора.НайтиПоЗначению(Параметры.ТекущаяКолонка) = Неопределено, 
                      Элементы.ТекущийВидЦен.СписокВыбора[0].Значение, 
                      Параметры.ТекущаяКолонка);
    
КонецЕсли;

Разберем этот алгоритм подробнее. Конструкция СписокВыбора[0].Значение указывает на то, что если система не может однозначно определить текущую колонку из параметров контекста (например, при быстром переходе), она автоматически подставляет самый первый элемент (индекс 0) из сформированного списка выбора.

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

Используя предложенные варианты настройки, вы сможете быстро адаптировать рабочее место оператора под любые требования комфортной работы без изменения типовой конфигурации 1С:УНФ.

← На главную