Как массово изменить строки табличной части в 1С на управляемых формах (КА 2, УТ 11, ERP)?

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

При переходе со старых конфигураций 1С (например, УТ 10 или УПП) на современные решения с управляемыми формами (Комплексная автоматизация 2, Управление торговлей 11, ERP 2) пользователи часто сталкиваются с одной и той же проблемой. В старых системах присутствовала удобная встроенная кнопка «Изменить», которая вызывала обработку ОбработкаТабличнойЧастиТовары. Она позволяла массово пересчитывать цены на заданный процент, устанавливать скидки и выполнять другие групповые операции со строками документа. Разберем подробнее, почему этого инструмента больше нет «из коробки» и какие существуют аналоги в современных реалиях.

Почему 1С отказалась от универсальной встроенной обработки?

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

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

Штатные способы группового изменения строк

Рассмотрим, какие встроенные инструменты мы можем использовать, не прибегая к программированию.

  1. Стандартный механизм «Изменить выделенные...»

    В новых конфигурациях реализована базовая возможность массового редактирования строк контекстным меню. Выделим нужные строки в табличной части (используя клавиши Shift или Ctrl+A), нажмем правую кнопку мыши и выберем команду «Изменить выделенные...».

    Ограничение: Данный функционал позволяет установить всем выделенным строкам только статичное значение. Например, мы можем массово поменять ставку НДС, указать один склад для всех строк или установить одинаковую цену. Этот механизм не умеет делать математические вычисления (например, увеличить все цены на 15%) и далеко не всегда вызывает алгоритмы пересчета зависимых колонок.

  2. Интеграция с табличным документом (Excel)

    В качестве обходного пути пользователи активно используют буфер обмена. Посмотрим на алгоритм действий:

    1. Выводим список строк табличной части (команда «Вывести список»).
    2. Копируем данные в Excel.
    3. Применяем нужную математическую формулу к колонке с ценами.
    4. Копируем полученный столбец и вставляем его обратно в 1С в соответствующую колонку.

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

  3. Групповое изменение реквизитов (Функции технического специалиста)

    С помощью типовой обработки ГрупповоеИзменениеРеквизитов можно корректировать данные в табличных частях. Однако менять с её помощью числовые показатели (цены, количество, суммы) категорически не рекомендуется. Обработка запишет новые цифры напрямую в базу, но не вызовет внутренние процедуры документа для пересчета. Как итог — суммы в строках не будут соответствовать итоговой сумме документа.

Решение проблемы с помощью внешних обработок (Плагинов)

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

Разберем по шагам, как это работает:

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

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

← На главную