В процессе работы с программой «1С:Управление нашей фирмой» (УНФ) версии 1.6 пользователи часто сталкиваются с ситуацией, когда после переноса базы данных на другой компьютер, очистки кэша или обновления системы привычный интерфейс документов меняется. Одной из таких неприятных неожиданностей может стать изменение порядка колонок в обработке «Формирование цен».
Представим стандартную рабочую ситуацию: оператор привык, что первой колонкой в таблице отображается «Розничная цена», а при расчете наценки система автоматически предлагает изменять именно розничную цену. После переноса базы порядок колонок изменился на «Учетная цена» -> «Закупочная цена» -> «Розничная цена». В результате розничная цена «уехала» за пределы видимости экрана, и пользователю приходится каждый раз прокручивать таблицу вправо, а при установке процента наценки вручную переключать базовый вид цены с учетного на розничный. Это существенно замедляет ежедневную рутинную работу по вводу накладных.
В этой статье мы подробно разберем, почему так происходит, проанализируем внутренние механизмы платформы 1С:Предприятие 8.3 и найдем несколько простых и эффективных способов вернуть удобный порядок колонок без привлечения программистов и изменения кода конфигурации.
Первое, что пытается сделать опытный пользователь или администратор для решения проблемы с отображением колонок, — это воспользоваться стандартным механизмом платформы: нажать кнопку «Еще» -> «Изменить форму». Однако в случае с обработкой «Формирование цен» этот способ не сработает.
Выясним причину этого поведения. Дело в том, что табличная часть в этой форме является не статическим набором реквизитов, а динамически формируемым Деревом значений. Колонки видов цен добавляются на форму программно в момент ее инициализации в зависимости от выбранных пользователем настроек и контекста открытия. Поскольку структура таблицы создается «на лету», в конфигураторе и в стандартном окне настройки формы эти колонки просто отсутствуют. Следовательно, управлять их порядком через пользовательские настройки интерфейса напрямую невозможно.
Проанализируем поведение системы при различных сценариях запуска. Логика работы помощника «Формирование цен» напрямую зависит от того, из какого раздела программы или документа он был вызван:
Рассмотрим пошагово, как запустить обработку с правильным фокусом:
При таком сценарии запуска система определяет «Розничную» цену как основную целевую. В результате она автоматически становится первой колонкой в дереве значений, а при нажатии кнопки «Изменить на процент» по умолчанию будет предлагаться именно розничная цена.
Зачастую на предприятиях малого бизнеса «Учетная цена» и «Закупочная цена» фактически дублируют друг друга и равняются одной и той же величине. Если оператору для работы не требуется одновременно видеть обе эти цены в таблице формирования розничных цен, то лучшим решением будет скрыть одну из них.
Для этого при запуске помощника «Формирование цен» на первом шаге достаточно просто снять флажок с ненужного вида цены (например, отключить «Учетную цену»). Это позволит:
Если вам требуется глобально изменить приоритет вывода цен во всех отчетах и прайс-листах системы, включая форму формирования цен, мы можем настроить их последовательность непосредственно в справочнике.
Для каждого элемента справочника ВидыЦен в системе предопределено числовое поле «Порядок» (в некоторых версиях интерфейса оно может называться сортировкой). Программа выстраивает колонки слева направо в соответствии с возрастанием этого показателя. Чтобы сделать розничную цену приоритетной:
1).2 и 3 соответственно).Для понимания того, как система определяет вид цены по умолчанию, обратимся к программному коду формы. В модуле обработки за это отвечает следующий фрагмент кода:
Если Элементы.ТекущийВидЦен.СписокВыбора.Количество() = 1 Тогда
ТекущийВидЦен = Элементы.ТекущийВидЦен.СписокВыбора[0].Значение;
ИначеЕсли Параметры.Свойство("ТекущаяКолонка") Тогда
ТекущийВидЦен = ?(Элементы.ТекущийВидЦен.СписокВыбора.НайтиПоЗначению(Параметры.ТекущаяКолонка) = Неопределено,
Элементы.ТекущийВидЦен.СписокВыбора[0].Значение,
Параметры.ТекущаяКолонка);
КонецЕсли;
Разберем этот алгоритм подробнее. Конструкция СписокВыбора[0].Значение указывает на то, что если система не может однозначно определить текущую колонку из параметров контекста (например, при быстром переходе), она автоматически подставляет самый первый элемент (индекс 0) из сформированного списка выбора.
Именно поэтому правильное позиционирование первой колонки (через контекстный запуск из справочника или через настройку реквизита порядка в справочнике) гарантирует, что при расчете наценки программа сразу предложит нужный вам вид цены, избавляя оператора от лишних кликов мышкой.
Используя предложенные варианты настройки, вы сможете быстро адаптировать рабочее место оператора под любые требования комфортной работы без изменения типовой конфигурации 1С:УНФ.