Свой текст в документах, справочниках и печатных формах 1С 8.3

· 9 мин

Содержание

Чтобы добавить текст в 1С без программиста, используйте поле Комментарий внизу формы документа или создайте дополнительный реквизит: в БП 3.0 это Администрирование → Общие настройки → Дополнительные реквизиты и сведения. Если текст должен попасть в печатную форму, правьте её макет в Администрирование → Печатные формы, отчеты и обработки → Макеты печатных форм. Новое поле в структуре базы добавляют в Конфигураторе или расширении.

Типичная ситуация: бухгалтеру нужно писать в реализации номер договора поставки, а в счёте на оплату — строку «Оплата по счёту означает согласие с условиями». Поля для этого нет. Решение зависит от того, где текст должен жить: только в карточке, в отчётах или на бумаге. Ниже способы от простого к сложному.

1. Где ввести текст в режиме «Предприятие» без доработок

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

📝 Поле «Комментарий». Есть почти во всех документах БП 3.0, ЗУП 3.1 и УТ 11, обычно в самом низу формы. Текст виден в списке документов (колонку можно включить через Ещё → Изменить форму или настройку списка) и ищется поиском по списку. В печатные формы комментарий, как правило, не выводится.

📦 Полное наименование. В карточке номенклатуры два поля: краткое Наименование для поиска и Полное наименование, которое идёт в документы для покупателя. Если в накладной нужна длинная формулировка товара, пишите её во второе поле, а короткое оставьте для подбора.

📎 Присоединённые файлы. Значок скрепки в командной панели документа или справочника открывает список вложений. Туда можно положить договор, служебную записку или скан. Удобно, когда текст длинный и форматированный.

🗂 Контактная информация и описание. У контрагентов и сотрудников есть поля для адресов, телефонов и произвольного комментария. Для заметок о клиенте это быстрее любой доработки.

💡 Длинный текст удобнее набрать в Блокноте, а затем вставить в поле через Ctrl+V. Форматирование из Word (жирный, таблицы) при вставке в обычное поле теряется: 1С хранит здесь простую строку.

Как вывести поле на форму, если его не видно

Многие поля скрыты настройкой формы. Откройте документ, нажмите Ещё → Изменить форму. В открывшемся окне отметьте флажком нужный элемент и перетащите его выше. Настройка сохраняется для вашего пользователя и ничего не меняет в базе. Вернуть исходный вид можно кнопкой Ещё → Установить стандартные настройки в том же окне.

2. Дополнительные реквизиты: новое текстовое поле без Конфигуратора

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

Включение и создание реквизита в БП 3.0

  1. Откройте Администрирование → Общие настройки.
  2. Найдите группу «Дополнительные реквизиты и сведения» и включите флажок.
  3. Перейдите по ссылке «Дополнительные реквизиты».
  4. Слева выберите объект: например, «Реализация (акт, накладная)» или «Номенклатура».
  5. Нажмите Добавить → Новый и задайте наименование поля, например «Номер договора поставки».
  6. В поле типа значения выберите Строка. Для длинных заметок укажите неограниченную длину и многострочный ввод.
  7. Нажмите Записать и закрыть.

После этого в форме выбранного объекта появится группа «Дополнительные реквизиты» с новым полем. Обычно она свёрнута — разверните её щелчком по заголовку.

В ЗУП 3.1 и УТ 11 механизм тот же, он входит в общую библиотеку. Флажок включения ищите в Администрирование → Общие настройки.

Реквизит или сведение: что выбрать

ВариантГде хранитсяКогда подходит
Дополнительный реквизитВместе с объектом, меняется при его записиТекст — часть документа: номер договора, условие поставки
Дополнительное сведениеОтдельно от объектаТекст можно менять в закрытом периоде без перезаписи документа

Дополнительный реквизит не появится в печатной форме сам по себе. Чтобы текст напечатался, нужна правка макета или внешняя печатная форма (разделы 4 и 5).

Значения доп. реквизитов доступны в отчётах на базе системы компоновки данных. В настройке отчёта раскройте объект в списке полей — доп. реквизиты будут среди его полей. По ним можно отбирать и группировать.

3. Добавление реквизита для текста в Конфигураторе и расширении

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

Новый строковый реквизит

  1. Запустите базу в режиме Конфигуратор: Конфигурация → Открыть конфигурацию.
  2. В дереве метаданных найдите объект, например Документы → РеализацияТоваровУслуг.
  3. Откройте его, на закладке «Данные» добавьте реквизит.
  4. Задайте имя латиницей или кириллицей без пробелов (ДоговорПоставки), тип Строка и длину.
  5. Вынесите реквизит на форму: перетащите его из списка реквизитов формы в дерево элементов.
  6. Сохраните конфигурацию и обновите конфигурацию базы данных (F7).

Длина 0 означает строку неограниченной длины. Её удобно использовать для заметок, но есть ограничения: такую строку нельзя напрямую сравнивать в условии запроса, группировать и индексировать. Для сравнения её приводят: ВЫРАЗИТЬ(Документ.Заметка КАК СТРОКА(200)).

Чтобы поле на форме было многострочным, у элемента формы включите свойство МногострочныйРежим и растяните элемент по высоте.

Почему лучше расширение, а не правка типовой

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

  1. В Конфигураторе: Конфигурация → Расширения конфигурации → Добавить.
  2. Откройте расширение, заимствуйте нужный документ (контекстное меню объекта в основной конфигурации → «Добавить в расширение»).
  3. Добавьте реквизит в заимствованный объект и выведите его в заимствованную форму.
  4. Обновите конфигурацию базы данных.

Если удалить расширение с данными, значения его реквизитов тоже пропадут. Перед удалением или пересозданием расширения выгрузите базу в .dt.

Форматированный текст

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

4. Как добавить текст в печатную форму через макет

Это самый частый запрос: дописать фразу в счёт, акт или накладную. Есть три пути — от разового до постоянного.

Разово: отредактировать готовую форму

Сформируйте печатную форму через кнопку «Печать». В окне просмотра включите режим редактирования (кнопка с карандашом на панели). Теперь в ячейки можно вписать текст, как в Excel. Изменение действует только на этот экземпляр: при следующей печати форма соберётся заново.

Постоянно: изменить макет

  1. Откройте Администрирование → Печатные формы, отчеты и обработки → Макеты печатных форм.
  2. Найдите макет по названию, например «Счет на оплату».
  3. Нажмите «Изменить». Макет откроется как табличный документ.
  4. Выделите ячейку в нужной области и впишите текст.
  5. Запишите макет и проверьте печать на любом документе.

Ячейки макета бывают трёх видов заполнения. Это видно в свойствах ячейки:

ЗаполнениеЧто в ячейкеЧто произойдёт при печати
ТекстОбычные словаПечатается как есть
ПараметрИмя параметраПодставится значение из программы
ШаблонТекст с [ИмяПараметра] внутриСлова останутся, параметр заменится значением

Для своей фразы используйте ячейку с заполнением «Текст». Ячейку с параметром не трогайте: если заменить её содержимое, программа перестанет подставлять туда данные.

💡 Изменённый макет отмечается в списке. Если что-то пошло не так, выберите его и нажмите «Использовать стандартный макет» — вернётся исходный вариант. После обновления конфигурации проверьте изменённые макеты: если фирма 1С поменяла стандартный макет, ваш вариант его не получит.

Когда нужен программист

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

5. Программное добавление и обработка текста во встроенном языке

В коде текст — это значение типа Строка. Основные приёмы:

// Склейка строк с переносом
Текст = "Договор поставки № 15" + Символы.ПС + "от 01.03";

// Подстановка значений: числа не склеивать напрямую
Сумма = 125000;
Строка1 = СтрШаблон("Сумма к оплате: %1 руб.", Формат(Сумма, "ЧДЦ=2; ЧГ=0"));

// Замена и поиск
Текст = СтрЗаменить(Текст, "поставки", "оказания услуг");
Позиция = СтрНайти(Текст, "№");

// Разбить строку на части и собрать обратно
Части = СтрРазделить("Москва;Тула;Орёл", ";");
Итог = СтрСоединить(Части, ", ");

Дописать текст в комментарий выбранных документов

Пример для обработки, которой передают массив ссылок на документы:

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

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

Без кода ту же задачу решает групповое изменение: Администрирование → Обслуживание → Корректировка данных → Групповое изменение реквизитов. Выберите вид документов, отберите нужные, укажите новое значение поля «Комментарий». Учтите: обработка заменяет значение, а не дописывает его к старому.

Многострочный текст: ТекстовыйДокумент

Для сборки текста по строкам удобен объект ТекстовыйДокумент:

ТД = Новый ТекстовыйДокумент;
ТД.ДобавитьСтроку("Реестр счетов");
ТД.ДобавитьСтроку("Счёт № 1 — 15 000 руб.");
ТД.ДобавитьСтроку("Счёт № 2 — 7 500 руб.");
ТД.Записать("C:\Обмен\реестр.txt", КодировкаТекста.UTF8);
ТД.Показать("Реестр");

Метод Показать откроет результат в окне 1С, Записать сохранит файл на диск. Путь указывается относительно того компьютера, где выполняется код: на сервере 1С это диск сервера, а не ваш.

6. Импорт и экспорт текстовых данных

Текст попадает в 1С не только с клавиатуры. Варианты зависят от объёма.

Загрузка

  • 📋 Из Excel в справочник. В списке номенклатуры, контрагентов и ряда других справочников БП 3.0 есть команда загрузки из табличного документа. Скопируйте столбцы из Excel, вставьте в открывшуюся таблицу, сопоставьте колонки с полями 1С.
  • 📄 Из файла txt. ЧтениеТекста или ТекстовыйДокумент.Прочитать(ИмяФайла) в обработке. Подходит для реестров и выгрузок из других программ.
  • 🔁 Через обмен. Если текст приходит из другой базы, его поле должно быть в правилах обмена. Доп. реквизиты переносятся не всеми типовыми обменами — проверяйте на тестовой паре баз.

Выгрузка

  • Любой список: Ещё → Вывести список, затем сохранить результат в .xlsx через меню сохранения.
  • Отчёт: кнопка сохранения на панели отчёта, форматы .xlsx, .pdf, .docx, .txt.
  • Текстовый документ: меню Файл → Сохранить как в окне документа.

Кодировка и «кракозябры»

Если после загрузки вместо букв видны непонятные символы, файл и программа читают кодировку по-разному. Старые выгрузки из Windows-программ часто в Windows-1251, современные — в UTF-8. Решение — указать кодировку явно:

ТД = Новый ТекстовыйДокумент;
ТД.Прочитать("C:\Обмен\клиенты.txt", КодировкаТекста.ANSI);

Если файл открывается правильно в Блокноте, пересохраните его там с кодировкой UTF-8 и читайте с КодировкаТекста.UTF8.

Где должен оказаться ваш текст?

Частые вопросы о тексте в 1С

Почему введённый текст обрезается?
У реквизита задана длина строки. Например, если длина 50, всё после 50-го символа не сохранится. Длину меняют в Конфигураторе, для заметок лучше длина 0 (неограниченная).
Можно ли сделать перенос строки в поле?
Да, если поле многострочное. В однострочном поле перенос не сохраняется — нужен доп. реквизит с многострочным вводом или свойство МногострочныйРежим у элемента формы.
Сохранится ли мой текст в макете после обновления конфигурации?
Да, изменённый макет хранится в базе отдельно и обновлением не перезаписывается. Но новые правки фирмы 1С в этот макет не попадут — сравните его со стандартным после обновления.
Можно ли вставить в документ таблицу или картинку из Word?
В обычное поле — нет, вставится только текст. Документ Word прикрепите как присоединённый файл через значок скрепки.
Видят ли другие пользователи мои настройки формы?
Нет. Настройки через «Изменить форму» сохраняются для вашего пользователя. Дополнительный реквизит и правка макета видны всем.