Как в 1С:УТ 10.3 сделать перемещение товаров только по ордерам

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

В типовой конфигурации «Управление торговлей 10.3» (УТ 10.3) часто возникает задача упростить работу пользователя, минимизировав количество совершаемых им выборов. Одной из таких задач является фиксация вида операции в документе ПеремещениеТоваров. Если на предприятии принята строгая политика использования ордерной схемы, выбор операции «Со склада» становится избыточным и даже вредным, так как может привести к рассинхронизации остатков. Рассмотрим подробнее, как реализовать работу «только по ордерам», используя программные методы и настройки системы.

Анализ проблемы и выбор стратегии

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

Метод 1. Изменение логики заполнения в общем модуле (программный способ)

Это самый надежный метод, который гарантирует, что при создании нового документа вид операции всегда будет принимать значение «По ордерам». Разберем по шагам, где именно в коде происходят эти изменения. Основная логика инициализации заголовков документов в УТ 10.3 сосредоточена в общем модуле ПолныеПрава.

Рассмотрим процедуру ПодготовитьСтруктуруДляЗаполненияШапкиДокумента. Именно здесь система определяет, какие значения будут подставлены в новый документ. Чтобы изменить логику, нам необходимо найти фрагмент кода, отвечающий за ВидПередачи (или ВидОперации в зависимости от конкретного релиза и контекста вызова).

Посмотрим на пример кода, который необходимо внедрить:


Процедура ПодготовитьСтруктуруДляЗаполненияШапкиДокумента(СтруктураПараметров, ТипОперации, ОбъектКопирования) Экспорт
    // Стандартная логика заполнения
    Если СвойствоЕстьИОноНЕЗаполнено("ВидПередачи", СтруктураПараметров) Тогда
        // Вместо стандартного "СоСклада" устанавливаем "ПоОрдеру"
        СтруктураПараметров.ВидПередачи = Перечисления.ВидыПередачиТоваров.ПоОрдеру;
    КонецЕсли;
КонецПроцедуры

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

Метод 2. Настройка ордерной схемы на уровне складов

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

Выполним следующие действия в интерфейсе:

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

Хотя это действие не скроет саму кнопку выбора операции в документе перемещения, проведение документа «Со склада» по «ордерному» складу будет противоречить методике учета, и система может выдавать предупреждения или требовать дополнительные складские документы. Это создаст административный барьер для совершения ошибки.

Метод 3. Использование внешних обработок заполнения

Рассмотрим альтернативный вариант, который не требует изменения конфигурации (сохраняем «поддержку»). Мы можем создать внешнюю обработку заполнения табличной части или заполнения самого объекта. В такой обработке можно прописать жесткую установку вида операции Перечисления.ВидыПередачиТоваров.ПоОрдеру.

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

Метод 4. Ограничение прав доступа и настройка интерфейса

Выясним, можно ли визуально скрыть кнопку «Операция». В обычном приложении 1С 8.3 (УТ 10.3) это можно сделать через Конфигуратор, изменив непосредственно форму документа ПеремещениеТоваров.

Рассмотрим этот процесс:

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

Процедура ПриОткрытии()
    Если НЕ РольДоступна("ПолныеПрава") Тогда
        // Блокируем изменение вида операции для обычных пользователей
        ЭлементыФормы.КнопкаВыборОперации.Доступность = Ложь;
        
        // Убеждаемся, что для нового документа стоит правильный вид
        Если ЭтоНовый() Тогда
            ВидОперации = Перечисления.ВидыОперацииПеремещениеТоваров.ПоОрдерам;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Метод 5. Значения по умолчанию через «Настройку пользователя»

В меню «Сервис» — «Настройки пользователя» можно задать многие значения по умолчанию (склад, организация). К сожалению, в типовой УТ 10.3 ВидОперации для перемещения не вынесен в этот список. Однако, если ваше предприятие использует механизм «Внутренних заказов», мы можем настроить цепочку так, чтобы при вводе на основании ВнутреннегоЗаказа вид операции подставлялся автоматически исходя из логики бизнес-процесса.

Резюме и рекомендации

Мы проанализировали ситуацию и пришли к выводу, что полностью исключить выбор вида операции «без кода» в УТ 10.3 невозможно. Наиболее эффективным решением будет сочетание двух подходов:

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

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

← На главную