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

В этой статье мы разберём все актуальные способы модификации печатных форм — от простых правок через конструктор до сложных программных доработок. Вы узнаете, как адаптировать шаблон под требования вашей компании, какие инструменты для этого понадобятся, и где скрыты типичные «подводные камни». Особое внимание уделим различиям между управляемыми формами (1С 8.3) и обычными формами (1С 8.2), а также нюансам работы с разными конфигурациями: Бухгалтерия 3.0, Управление торговлей 11, ERP 2.5 и Комплексная автоматизация 2.

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

1. Когда требуется изменять форму договора?

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

Типичные ситуации, когда без правок не обойтись:

  • 📄 Отсутствуют обязательные реквизиты: например, в договоре купли-продажи нет поля для указания способа оплаты или срока поставки, требуемого вашим юридическим отделом.
  • 🖼️ Некорректное оформление: логотип компании отображается размыто, шрифты не соответствуют фирменному стилю, или таблицы «разъезжаются» при печати.
  • 📑 Дополнительные условия: нужно добавить блок с конфиденциальностью, штрафными санкциями или специфическими техническими требованиями.
  • 🔄 Изменение законодательства: например, с 2023 года в некоторые виды договоров обязательно включать информацию об обработке персональных данных.
  • 📊 Автоматизация заполнения: требуется, чтобы определенные поля подтягивались из других документов (например, реквизиты контрагента из справочника).

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

📊 Какой тип изменений вам нужен?
Только внешний вид (шрифты, логотип)
Добавление новых реквизитов
Изменение логики заполнения
Не знаю, что именно требуется

2. Способ 1: Редактирование через конструктор печатных форм (без программирования)

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

Инструкция для 1С:Бухгалтерия 3.0 и Управление торговлей 11:

  1. Откройте документ Договор контрагента (или другой нужный тип договора) в режиме 1С:Предприятие.
  2. Нажмите кнопку ПечатьНастройка печатной формы (или Изменить форму, в зависимости от конфигурации).
  3. В открывшемся окне конструктора выберите вкладку Макет — здесь отображается структура документа.
  4. Используйте панель инструментов для:
    • 🖼️ Добавления логотипа (кнопка Рисунок)
    • 📝 Редактирования текста (двойной клик по полю)
    • 📏 Изменения шрифтов и выравнивания (панель Форматирование)
    • 🗑️ Удаления ненужных блоков (выделите элемент и нажмите Delete)
  5. После правок сохраните изменения кнопкой ОК и проверьте результат через предварительный просмотр (Файл → Предварительный просмотр).
  6. Ограничения метода:

    • ❌ Нельзя добавить новые реквизиты, отсутствующие в базе (например, поле «Номер проекта»).
    • ❌ Не все конфигурации поддерживают конструктор (в 1С:ERP может потребоваться включить режим редактирования в настройках прав пользователя).
    • ❌ Изменения применяются только к текущей печатной форме, но не к самому документу в базе.

☑️ Подготовка к редактированию печатной формы

Выполнено: 0 / 4

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

Если конструктор печатных форм не предоставляет нужной гибкости, следующий шаг — редактирование макета непосредственно в конфигураторе. Этот метод требует доступа к режиму Конфигуратор и базовых знаний о структуре 1С.

Пошаговая инструкция:

  1. Запустите 1С:Предприятие в режиме Конфигуратор (для этого при запуске удерживайте Shift или выберите режим в меню запуска).
  2. В дереве объектов найдите раздел Общие → Печатные формы (или Документы → [Ваш тип договора] → Печатные формы).
  3. Откройте макет нужной печатной формы (обычно он называется ПечатнаяФормаДоговора или аналогично).
  4. В редакторе макета:
    • Для табличных документов (формат .mxl): используйте инструменты разметки, аналогичные Word (вставка таблиц, изменение шрифтов).
    • Для текстовых макетов (формат .txt): правьте код разметки вручную (синтаксис похож на HTML).
  • После изменений сохраните макет (Файл → Сохранить) и обновите конфигурацию базы (Конфигурация → Обновить конфигурацию базы данных).
  • Пример кода для текстového макета (добавление блока с контактной информацией):

    &НомерСтроки
    

    //[Добавлен блок контактов]

    &Текст="Контактная информация:"

    &Текст="Телефон: " + Строка(Документ.Контрагент.Телефон)

    &Текст="Email: " + Строка(Документ.Контрагент.ЭлектроннаяПочта)

    &НоваяСтрока

    Внимание! Правка макетов в конфигураторе может привести к ошибкам при обновлении конфигурации. Всегда тестируйте изменения на копии базы.

    Что делать если макет «сломался» после правок?

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

    4. Способ 3: Программное изменение формы (для разработчиков)

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

    Основные сценарии программных изменений:

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

    Алгоритм программной доработки:

    1. Создайте расширение конфигурации (рекомендуемый способ) или откройте основную конфигурацию в режиме редактирования.
    2. Найдите объект Документ.ДоговорКонтрагента (или аналогичный) и добавьте нужные реквизиты в разделе Реквизиты.
    3. Отредактируйте модуль объекта или модуль печатной формы, добавив обработчики событий (например, ПриЗаписи, ПередПечатью).
    4. Для сложных изменений (например, интеграции с CRM) используйте внешние обработки или HTTP-сервисы.

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

    💡

    Перед началом программных изменений экспортируйте объект конфигурации в файл (.cf) — это ускорит восстановление при сбоях. Для этого в конфигураторе выделите документ и выберите Файл → Сохранить данные конфигурации в файл.

    5. Способ 4: Использование внешних обработок и расширений

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

    Преимущества метода:

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

      1. В режиме Конфигуратор выберите Файл → Новый → Внешняя обработка.
      2. В модуле обработки напишите код, который будет модифицировать печатную форму. Пример для добавления подписи ответственного лица:
        Процедура Печать(Документ, ТабДок) Экспорт
        

        // Стандартная печать

        Документ.Печать(ТабДок);

        // Добавляем блок с подписью

        ТабДок.ВывестиСекцию("ПодписьОтветственного");

        ТабДок.Текст = "Ответственный: " + Пользователи.ТекущийПользователь().Наименование;

        КонецПроцедуры

      3. Сохраните обработку в файл (.epf) и подключите её в режиме 1С:Предприятие через Файл → Открыть.
      4. Настройте права доступа к обработке в разделе Администрирование → Права пользователей.

      Для 1С:ERP 2.5 и Комплексной автоматизации 2 удобнее использовать расширения конфигурации:

      1. Создайте новое расширение через Конфигурация → Расширения → Добавить.
      2. В расширении добавьте новые реквизиты или модифицируйте существующие формы.
      3. Примените расширение к базе — изменения вступят в силу без перезапуска.

      Внимание! Внешние обработки могут конфликтовать с обновлениями платформы. Перед установкой нового релиза 1С проверяйте совместимость обработок в тестовой базе.

      6. Способ 5: Интеграция с Word/Excel для сложных шаблонов

      Если ваш договор содержит сложное форматирование (многоуровневые списки, графики, динамические таблицы), удобнее редактировать его во внешних программах — Microsoft Word или Excel — а затем импортировать в 1С. Этот метод часто используют юристы или отделы продаж, где важно соблюдение фирменного стиля.

      Инструкция по интеграции с Word:

      1. Создайте шаблон договора в Word с закладками для динамических данных (например, <<Контрагент>>, <<Сумма>>).
      2. В 1С используйте объект Word.Document для заполнения шаблона. Пример кода:
        Word = Новый COMОбъект("Word.Application");
        

        ДокументWord = Word.Documents.Open("C:\Шаблоны\Договор.docx");

        // Заполняем закладки

        ДокументWord.Bookmarks("Контрагент").Range.Text = Документ.Контрагент.Наименование;

        ДокументWord.Bookmarks("Сумма").Range.Text = Формат(Документ.СуммаДоговора, "ЧДЦ=2");

        // Сохраняем результат

        ДокументWord.SaveAs("C:\Выгрузка\Договор_" + Документ.Номер + ".docx");

        Word.Quit();

      3. Для автоматической выгрузки добавьте кнопку в форму документа 1С, которая будет запускать этот код.

    Преимущества метода:

    • 🎨 Полный контроль над оформлением (шрифты, стили, графические элементы).
    • 🔄 Легко обновлять шаблон без изменений в 1С.
    • 📑 Поддержка сложных структур (оглавления, сноски, водяные знаки).

    Недостатки:

    • ⚠️ Требуется наличие Microsoft Office на компьютере пользователя.
    • ⚠️ Код интеграции может тормозить при работе с большими документами.
    💡

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

    7. Типичные ошибки и как их избежать

    При изменении форм договоров пользователи часто сталкиваются с одними и теми же проблемами. Вот самые распространённые ошибки и способы их решения:

    Ошибка Причина Решение
    Печатная форма не обновляется после изменений Кэш 1С хранит старую версию макета Очистите кэш через Сервис → Очистка кэша или перезапустите сеанс
    Искажённое отображение таблиц при печати Несовпадение ширины колонок в макете и данных Задайте фиксированную ширину колонок в макете или используйте параметр АвтоШирина
    Ошибка «Не найден реквизит» при печати В макете используется поле, отсутствующее в документе Проверьте соответствие имён реквизитов в макете и конфигурации
    Договор печатается без логотипа Путь к файлу изображения указан неверно Используйте абсолютный путь (например, C:\Logo\company.png) или встройте изображение в макет

    Дополнительные рекомендации:

    • 🔍 Всегда тестируйте изменения на копии базы перед применением в рабочей системе.
    • 📋 Документируйте правки: ведите журнал изменений с указанием даты, автора и цели модификации.
    • 🔄 Проверяйте совместимость после обновления 1С — некоторые изменения могут конфликтовать с новыми версиями.
    • Внимание! Если вы используете облачную версию 1С (например, 1С:Фреш), возможности редактирования форм могут быть ограничены. В этом случае обратитесь к поставщику услуги за доступом к расширенным настройкам.

      8. Сравнение методов: какой выбрать?

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

      Метод Сложность Требуемые навыки Когда применять Риски
      Конструктор печатных форм Базовые знания 1С Косметические правки (шрифты, логотип) Минимальные
      Редактирование макета в конфигураторе ⭐⭐ Понимание структуры макетов Изменение структуры документа без добавления реквизитов Средние (риск ошибок при обновлении)
      Программная доработка ⭐⭐⭐ Знание языка 1С Добавление реквизитов, сложная логика Высокие (может сломаться при обновлении)
      Внешние обработки ⭐⭐ Базовое программирование Локальные изменения без правки конфигурации Низкие (не затрагивает типовую конфигурацию)
      Интеграция с Word/Excel ⭐⭐⭐ Знание COM-объектов Сложные шаблоны с фирменным оформлением Средние (зависимость от Office)

      Для большинства пользователей оптимальным решением будет комбинация методов:

      1. Косметические правки (шрифты, лого) — через конструктор печатных форм.
      2. Добавление новых блоков (условия, подписи) — через редактирование макета в конфигураторе.
      3. Сложная логика (автозаполнение, интеграции) — через внешние обработки или программные доработки.

      Внимание! Если ваша компания использует 1С:Документооборот, изменения форм договоров могут потребовать дополнительной настройки маршрутов согласования. Перед правками проконсультируйтесь с администратором системы.

      FAQ: Ответы на частые вопросы

      Можно ли изменить форму договора без доступа к конфигуратору?

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

      Как вернуть стандартную форму договора после неудачных изменений?

      Если вы редактировали макет в конфигураторе, восстановление зависит от типа изменений:

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

      Если не уверены в своих действиях, обратитесь к администратору 1С.

      Почему после обновления 1С исчезли мои изменения в форме договора?

      Это типичная проблема при обновлении конфигурации. Типовые обновления перезаписывают изменённые объекты, если они не были вынесены в расширения или внешние обработки. Чтобы избежать потерь:

      • Используйте расширения конфигурации (доступно с версии платформы 8.3.10).
      • Сохраняйте копии изменённых макетов в отдельной папке.
      • Перед обновлением сверяйтесь с журналом изменений на сайте 1С.
      Как добавить в договор динамическую таблицу с товарами/услугами?

      Для добавления таблицы с позициями договора:

      1. В конструкторе печатных форм выберите инструмент Таблица и нарисуйте нужное количество строк и столбцов.
      2. Для динамического заполнения используйте код вида:
        Для Каждого Товар Из Документ.Товары Цикл
        

        ТабДок.ВывестиСекцию("СтрокаТовара");

        ТабДок.Текст = Товар.Наименование;

        ТабДок.Текст = Формат(Товар.Количество, "ЧР=2");

        ТабДок.Текст = Формат(Товар.Цена, "ЧДЦ=2");

        КонецЦикла;

      3. Настройте параметры таблицы (ширина колонок, выравнивание) в свойствах макета.

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

      Можно ли сделать разные формы договоров для разных типов контрагентов?

      Да, это реализуется двумя способами:

      1. Через условия в печатной форме:
        Если Документ.Контрагент.ВидКонтрагента = "Физическое лицо" Тогда
        

        ТабДок.ВывестиСекцию("ФормаДляФизЛиц");

        Иначе

        ТабДок.ВывестиСекцию("ФормаДляЮрЛиц");

        КонецЕсли;

      2. Через несколько печатных форм:
        • Создайте дополнительные макеты (например, ПечатнаяФормаФизЛиц).
        • В модуле документа добавьте обработчик выбора формы:
          Процедура Печать(МассивФорм)
          

          Если Документ.Контрагент.ЭтоФизЛицо() Тогда

          МассивФорм.Добавить("ПечатнаяФормаФизЛиц");

          Иначе

          МассивФорм.Добавить("ПечатнаяФормаЮрЛиц");

          КонецЕсли;

          КонецПроцедуры