Правка текста в ячейках 1С: от формы списка до макета и кода

· 9 мин

Содержание

Чтобы изменить текст ячейки в 1С, выделите её и нажмите F2 или дважды щёлкните мышью. Введите новое значение и подтвердите клавишей Enter. Так работает любая редактируемая таблица: табличная часть документа, список в карточке, сформированный отчёт в режиме редактирования.

Сложности начинаются, когда ячейка не поддаётся. Бухгалтер правит сумму в акте, а поле серое. Или исправляет опечатку в печатной форме, а после повторной печати ошибка возвращается. Причина каждый раз своя: права, дата запрета, отчёт без режима редактирования или текст, зашитый в макет. Разберём все случаи по порядку — от самого простого до правки в конфигураторе и замены текста кодом.

Как редактировать ячейку таблицы в режиме Предприятия

В пользовательском режиме (1С:Предприятие) правят ячейки табличных частей документов, справочников и регистров сведений. Порядок одинаковый для БП 3.0, ЗУП 3.1, УТ 11 и других конфигураций на платформе 8.3.

  1. Откройте документ или элемент справочника.
  2. Встаньте на нужную строку и ячейку стрелками или мышью.
  3. Нажмите F2, Enter или дважды щёлкните — ячейка перейдёт в режим ввода.
  4. Исправьте текст и нажмите Enter. Esc отменяет правку и возвращает старое значение.
  5. Запишите объект кнопкой «Записать» или «Провести и закрыть».

Полезные клавиши при правке:

  • ⌨️ F4 — открыть выбор значения из справочника для ссылочного поля;
  • 🧹 Shift+F4 — очистить значение поля;
  • 📋 Ctrl+C / Ctrl+V — скопировать и вставить текст внутри ячейки в режиме ввода;
  • 🔍 Ctrl+F — найти ячейку с нужным текстом в длинном списке или табличном документе.

Если в ячейке ссылка (номенклатура, контрагент, счёт), набирать текст бесполезно: 1С ищет совпадение по справочнику. Чтобы поменять само наименование, откройте элемент справочника и исправьте его там. Новое имя подтянется во все документы, где этот элемент выбран.

Заголовок колонки вместо значения

Иногда нужно поменять не данные, а надпись — например, заголовок колонки в списке. Это делается без программиста: Ещё → Изменить форму. В дереве элементов выберите колонку, справа в свойствах исправьте «Заголовок» и нажмите «ОК». Настройка сохранится только для вашего пользователя. Вернуть всё как было можно там же, командой стандартных настроек.

Почему ячейка не редактируется: права и ограничения

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

Диагностика: выберите симптом

Ещё два технических ограничения:

  • 🔒 Свойство «Только просмотр» у элемента формы. Его ставит разработчик, пользователь снять не может. Решение — расширение конфигурации или доработка формы.
  • 🔄 Объект заблокирован другим пользователем. Если коллега держит документ открытым и уже начал правку, при записи вы получите сообщение о блокировке. Дождитесь, пока он закроет форму.

Сдвиг даты запрета открывает закрытый период для всех пользователей с правом изменения. Возвращайте дату обратно сразу после исправления, иначе в отчётность попадут случайные правки.

Как изменить текст ячейки в отчёте и печатной форме

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

Отчёт

  1. Сформируйте отчёт.
  2. Найдите в меню «Ещё» команду, которая включает режим редактирования отчёта. В отчётах БП 3.0 и УТ 11 это переключатель «Редактирование».
  3. Дважды щёлкните по ячейке и введите текст.
  4. Сохраните результат: главное меню ≡ → Файл → Сохранить как — в xlsx, pdf или mxl.

Нажатие «Сформировать» перестраивает отчёт и стирает все ручные правки. Сначала сохраните файл, потом меняйте настройки.

Печатная форма документа

В окне печати (кнопка «Печать» в документе) табличный документ открывается сразу. В командной панели формы есть переключатель редактирования: после него ячейки правятся так же, как в отчёте. Это удобно для разовых исправлений — поправить основание в счёте или добавить строку в акт.

Что меняетеГде правка хранитсяКогда пропадёт
Ячейку сформированного отчётаТолько в открытом окнеПосле «Сформировать» или закрытия
Ячейку в окне печатиТолько в открытом окнеПосле повторной печати
Сохранённый файл xlsx/mxlВ файле на дискеНе пропадёт, но 1С о нём не знает
Макет печатной формыВ информационной базеНе пропадёт до сброса макета

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

Постоянная правка текста в макете печатной формы

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

Путь в БП 3.0, УТ 11 и ЗУП 3.1: Администрирование → Печатные формы, отчеты и обработки → Макеты печатных форм.

  1. Найдите макет в списке — удобнее через поиск по названию формы, например «Счет на оплату».
  2. Откройте его кнопкой изменения макета. Макет откроется как табличный документ.
  3. Исправьте текст ячейки и сохраните изменения.
  4. Распечатайте любой документ и проверьте результат.

Измененный макет хранится в базе и отмечен в списке. Из окна печати тоже можно перейти к нему: через меню «Ещё» есть команда изменения макета.

Что важно знать при правке макета:

  • 🧩 Ячейки бывают трёх видов по заполнению: текст, параметр и шаблон. Текст выводится как есть. Параметр — это имя, вместо которого программа подставит значение (например, наименование организации). Шаблон — текст с параметрами в квадратных скобках.
  • ⚠️ Не меняйте имена параметров. Если в ячейке стоит параметр Поставщик, переименование сломает заполнение: поле останется пустым.
  • 🔄 После обновления конфигурации фирма-разработчик может изменить типовой макет. Ваш изменённый останется, но новые правки из релиза в него не попадут. Сравните макеты после обновления и при необходимости верните типовой командой возврата к стандартному макету в том же списке.

Изменение текста ячейки в Конфигураторе

Конфигуратор нужен, когда текст «зашит» в объект метаданных: в общий макет, в подпись на форме, в отчёт без механизма пользовательских макетов.

Свойства ячейки макета

  1. Откройте нужный объект в дереве конфигурации и в ветке «Макеты» дважды щёлкните макет.
  2. Выделите ячейку и откройте палитру свойств (Alt+Enter или правой кнопкой → «Свойства»).
  3. В свойстве «Заполнение» проверьте вид: «Текст», «Параметр» или «Шаблон».
  4. Для текста правьте свойство «Текст». Для параметра — только если понимаете, где в коде он заполняется.
  5. Сохраните конфигурацию и обновите конфигурацию базы данных (F7).

Типовая конфигурация на поддержке

Типовую конфигурацию в режиме «на поддержке без возможности изменения» править напрямую нельзя. Снимать её с поддержки ради одной надписи — плохая идея: каждое следующее обновление станет ручной работой.

Правильный путь — расширение конфигурации (появились в платформе 8.3.6):

  • заимствуете нужную форму в расширение;
  • меняете у элемента свойство «Заголовок» или добавляете свой элемент;
  • загружаете расширение в базу.

Для печатной формы с другим текстом проще сделать внешнюю печатную форму или изменить макет через «Макеты печатных форм» (раздел выше). Это не требует доступа к конфигуратору.

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

Массовое исправление текста в табличных частях и справочниках

Исправлять одну и ту же опечатку в 300 элементах вручную долго. В типовых конфигурациях есть обработка группового изменения.

Путь в БП 3.0: Администрирование → Обслуживание → Корректировка данных → Групповое изменение реквизитов. Её же можно вызвать из списка: выделите строки и выберите в меню «Ещё» команду изменения выделенных элементов.

  1. Выберите вид объектов (например, справочник «Номенклатура»).
  2. Отбором ограничьте круг — например, «Наименование содержит “Кабелъ”».
  3. Укажите реквизит и новое значение.
  4. Запустите изменение и посмотрите итог: обработка покажет, сколько объектов изменено и где были ошибки записи.

Групповое изменение задаёт реквизиту одно значение для всех объектов. Заменить часть текста внутри строки («Кабелъ» → «Кабель», остальное оставить) оно не умеет. Для этого нужна обработка с кодом — следующий раздел.

Для табличной части одного документа работает ручной приём:

  • выделите несколько строк с Shift или Ctrl;
  • скопируйте их (Ctrl+C), вставьте в Excel, исправьте заменой Ctrl+H;
  • в документах, где есть загрузка из файла или вставка строк из буфера, верните данные обратно.

Автоматическая замена текста через запрос и обработку

Запрос в 1С только читает данные. Он находит объекты с нужным текстом, а меняет их код обработки: получает объект, правит строку, записывает. Такую внешнюю обработку пишет программист, запускают её через Файл → Открыть.

Пример: заменить часть строки в наименовании номенклатуры.

&НаСервере
Процедура ЗаменитьТекстНаСервере(СтарыйТекст, НовыйТекст)

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Номенклатура.Ссылка КАК Ссылка
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    |    Номенклатура.Наименование ПОДОБНО &Шаблон";
    Запрос.УстановитьПараметр("Шаблон", "%" + СтарыйТекст + "%");

    Выборка = Запрос.Выполнить().Выбрать();
    Счетчик = 0;
    Пока Выборка.Следующий() Цикл
        Объект = Выборка.Ссылка.ПолучитьОбъект();
        Новое = СтрЗаменить(Объект.Наименование, СтарыйТекст, НовыйТекст);
        Если Новое <> Объект.Наименование Тогда
            Объект.Наименование = Новое;
            Объект.Записать();
            Счетчик = Счетчик + 1;
        КонецЕсли;
    КонецЦикла;

    Сообщить(СтрШаблон("Изменено элементов: %1", Формат(Счетчик, "ЧГ=0")));

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

Тонкости, о которых спотыкаются:

  • 🔤 ПОДОБНО ищет без учёта регистра, а СтрЗаменить — с учётом. Поэтому в коде есть проверка Если Новое <> ...: записываются только реально изменённые элементы.
  • ✳️ Символы %, _ и [ в искомом тексте — служебные для ПОДОБНО. Если они есть в строке, экранируйте их через СПЕЦСИМВОЛ.
  • 📏 Строки неограниченной длины в условии ПОДОБНО не участвуют. Для таких реквизитов отбирайте все элементы и проверяйте текст функцией СтрНайти в цикле.
  • 📄 Документы правят так же, через ПолучитьОбъект(), но строку ищут в табличной части: Для Каждого Строка Из Объект.Товары Цикл. Если реквизит участвует в движениях (например, содержание услуги попадает в проводки), документ нужно перепровести.

Для табличного документа есть отдельный приём — правка ячейки кодом прямо перед выводом:

Область = ТабДок.Область("R2C3");
Область.Текст = "Новый текст";

Обработку сначала запускайте на копии базы. Массовая запись сотен объектов не отменяется кнопкой: откат только из резервной копии.

Если ни один способ не подошёл

Бывает, что текст не меняется ни в форме, ни через групповое изменение. Тогда проверьте три вещи:

  1. Откуда берётся значение. Откройте карточку связанного объекта: часто текст в ячейке — это представление ссылки, и исправлять нужно справочник.
  2. Не перезаписывает ли его обмен. Если база получает данные из другой программы, ваша правка затрётся при следующей синхронизации. Исправляйте в базе-источнике.
  3. Нет ли подписки или доработки. В нетиповой конфигурации текст может формироваться при записи объекта. Спросите программиста, какой код заполняет поле.

Частые вопросы

Можно ли изменить текст ячейки в проведённом документе?
Да, если период не закрыт датой запрета и у вас есть права. После правки суммы или количества документ нужно перепровести, иначе движения останутся старыми.
Почему исправленный в окне печати текст не сохранился?
Правка в окне печати живёт до его закрытия. Для постоянного изменения меняйте данные документа или макет печатной формы.
Как сделать, чтобы длинный текст в ячейке печатной формы не обрезался?
Откройте макет и в свойствах ячейки включите перенос по словам. Высота строки при выводе подстроится под текст, если у строки не зафиксирована высота.
Что делать, если изменённый макет перестал заполняться?
Скорее всего, при правке стёрли или переименовали параметр. Откройте список макетов и верните типовой вариант, затем внесите правку заново, не трогая ячейки-параметры.
Видят ли другие пользователи заголовки колонок, которые я поменял через «Изменить форму»?
Нет. Это личная настройка формы. Общий заголовок для всех меняют в конфигураторе или расширении.