Как ввести формулу в поле «Сумма» в типовой операции в 1С:Бухгалтерия 3.0

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

При переходе на современную редакцию программы «1С:Бухгалтерия предприятия 3.0» (включая КОРП) многие пользователи и бухгалтеры сталкиваются с неожиданным изменением: привычный и удобный механизм произвольных формул в справочнике «Типовые операции» исчез. В старых версиях (редакции 1.6 и 2.0, работавших на обычных формах) можно было без труда написать алгоритм расчета прямо в пользовательском режиме (например, автоматически вычислять НДС как Сумма * 0.2 или распределять затраты). В новой редакции 3.0 на управляемых формах разработчики упростили этот справочник, убрав вкладку «Алгоритмы».

В этой статье мы подробно разберем, почему было принято такое решение, и проанализируем пять практических способов автоматизации расчетов в типовых операциях БП КОРП 3.0 без снятия конфигурации с поддержки.

Выясняем причину: почему в 1С 3.0 убрали формулы?

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

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

Способ 1. Использование встроенного калькулятора в полях ввода (без доработок)

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

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

  1. Откройте документ «Операция, введенная вручную» и выберите нужный шаблон типовой операции.
  2. Перейдите в поле ввода числового значения (например, в колонку Сумма).
  3. Прямо с клавиатуры начните вводить математическое выражение. Например, наберите 150000*0.2 или 150000/120*20.
  4. Нажмите клавишу Enter или Tab.
  5. Платформа 1С самостоятельно произведет математическое вычисление на лету и подставит готовый результат в поле ввода.

Этот простой метод не требует привлечения программистов и отлично подходит для разовых или нерегулярных расчетов непосредственно в момент заполнения документа.

Способ 2. Разделение на параметры (штатный функционал шаблонов)

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

Проанализируем этот вариант заполнения:

  1. Перейдите в справочник «Типовые операции» и откройте карточку настройки вашего шаблона.
  2. На вкладке «Список параметров» добавьте новые строки. Например, создайте параметр Сумма_Основная и параметр Сумма_НДС с типом значения «Число».
  3. В табличной части проводок в поле «Сумма» выберите способ заполнения «Из параметра» и укажите соответствующий созданный параметр.

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

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

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

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

Рассмотрим пример программного кода, который можно внедрить в расширение:


&После("ЗаполнитьДвиженияПоТиповойОперации")
Процедура Расшир_ЗаполнитьДвиженияПоТиповойОперации(ДокументОбъект, ТиповаяОперация)
    
    // Проверяем, что выбрана наша конкретная типовая операция
    Если ТиповаяОперация.Наименование = "Выделение НДС 20%" Тогда
        
        // Перебираем сформированные проводки и пересчитываем суммы
        Для Каждого СтрокаПроводки Из ДокументОбъект.Движения.Хозрасчетный Цикл
            
            Если СтрокаПроводки.Сумма <> 0 Тогда
                // Рассчитываем НДС по формуле: Сумма * 20 / 120
                СтрокаПроводки.Сумма = Окр((СтрокаПроводки.Сумма * 20 / 120), 2);
            КонецЕсли;
            
        КонецЦикла;
        
    КонецЕсли;
    
КонецПроцедуры

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

Способ 4. Подключение внешней обработки заполнения табличных частей

Если вы работаете во фреше (1С:Fresh) или у вас нет возможности устанавливать расширения, можно использовать внешнюю обработку заполнения.

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

Способ 5. Создание специализированного документа через расширение

Если ваши типовые операции содержат сложные формулы, зависящие от множества условий (например, расчет процентов по договорам займа в БП КОРП, распределение накладных расходов по подразделениям или филиалам), лучшим решением будет полный отказ от ручных операций.

Разберем, почему создание собственного документа в расширении гораздо эффективнее типовых операций:

Таким образом, несмотря на то, что прямой ввод формул в шаблоны типовых операций в 1С:Бухгалтерия 3.0 больше не поддерживается, платформа предоставляет обширный арсенал альтернативных инструментов. Для простых задач отлично подойдет встроенный калькулятор или параметры, а для масштабных бизнес-задач — аккуратные доработки через механизм расширений.

← На главную