Правка текста в ячейках 1С: от формы списка до макета и кода
Содержание
Чтобы изменить текст ячейки в 1С, выделите её и нажмите F2 или дважды щёлкните мышью. Введите новое значение и подтвердите клавишей Enter. Так работает любая редактируемая таблица: табличная часть документа, список в карточке, сформированный отчёт в режиме редактирования.
Сложности начинаются, когда ячейка не поддаётся. Бухгалтер правит сумму в акте, а поле серое. Или исправляет опечатку в печатной форме, а после повторной печати ошибка возвращается. Причина каждый раз своя: права, дата запрета, отчёт без режима редактирования или текст, зашитый в макет. Разберём все случаи по порядку — от самого простого до правки в конфигураторе и замены текста кодом.
Как редактировать ячейку таблицы в режиме Предприятия
В пользовательском режиме (1С:Предприятие) правят ячейки табличных частей документов, справочников и регистров сведений. Порядок одинаковый для БП 3.0, ЗУП 3.1, УТ 11 и других конфигураций на платформе 8.3.
- Откройте документ или элемент справочника.
- Встаньте на нужную строку и ячейку стрелками или мышью.
- Нажмите
F2,Enterили дважды щёлкните — ячейка перейдёт в режим ввода. - Исправьте текст и нажмите
Enter.Escотменяет правку и возвращает старое значение. - Запишите объект кнопкой «Записать» или «Провести и закрыть».
Полезные клавиши при правке:
- ⌨️
F4— открыть выбор значения из справочника для ссылочного поля; - 🧹
Shift+F4— очистить значение поля; - 📋
Ctrl+C/Ctrl+V— скопировать и вставить текст внутри ячейки в режиме ввода; - 🔍
Ctrl+F— найти ячейку с нужным текстом в длинном списке или табличном документе.
Если в ячейке ссылка (номенклатура, контрагент, счёт), набирать текст бесполезно: 1С ищет совпадение по справочнику. Чтобы поменять само наименование, откройте элемент справочника и исправьте его там. Новое имя подтянется во все документы, где этот элемент выбран.
Заголовок колонки вместо значения
Иногда нужно поменять не данные, а надпись — например, заголовок колонки в списке. Это делается без программиста: Ещё → Изменить форму. В дереве элементов выберите колонку, справа в свойствах исправьте «Заголовок» и нажмите «ОК». Настройка сохранится только для вашего пользователя. Вернуть всё как было можно там же, командой стандартных настроек.
Почему ячейка не редактируется: права и ограничения
Серое поле, которое не открывается по F2, — частая жалоба. Платформа и типовые конфигурации запрещают правку по нескольким причинам.
Ещё два технических ограничения:
- 🔒 Свойство «Только просмотр» у элемента формы. Его ставит разработчик, пользователь снять не может. Решение — расширение конфигурации или доработка формы.
- 🔄 Объект заблокирован другим пользователем. Если коллега держит документ открытым и уже начал правку, при записи вы получите сообщение о блокировке. Дождитесь, пока он закроет форму.
Сдвиг даты запрета открывает закрытый период для всех пользователей с правом изменения. Возвращайте дату обратно сразу после исправления, иначе в отчётность попадут случайные правки.
Как изменить текст ячейки в отчёте и печатной форме
Сформированный отчёт и печатная форма — это табличный документ. Текст в нём можно поменять перед печатью или сохранением, но правка живёт только до закрытия окна.
Отчёт
- Сформируйте отчёт.
- Найдите в меню «Ещё» команду, которая включает режим редактирования отчёта. В отчётах БП 3.0 и УТ 11 это переключатель «Редактирование».
- Дважды щёлкните по ячейке и введите текст.
- Сохраните результат: главное меню
≡ → Файл → Сохранить как— вxlsx,pdfилиmxl.
Нажатие «Сформировать» перестраивает отчёт и стирает все ручные правки. Сначала сохраните файл, потом меняйте настройки.
Печатная форма документа
В окне печати (кнопка «Печать» в документе) табличный документ открывается сразу. В командной панели формы есть переключатель редактирования: после него ячейки правятся так же, как в отчёте. Это удобно для разовых исправлений — поправить основание в счёте или добавить строку в акт.
| Что меняете | Где правка хранится | Когда пропадёт |
|---|---|---|
| Ячейку сформированного отчёта | Только в открытом окне | После «Сформировать» или закрытия |
| Ячейку в окне печати | Только в открытом окне | После повторной печати |
Сохранённый файл xlsx/mxl | В файле на диске | Не пропадёт, но 1С о нём не знает |
| Макет печатной формы | В информационной базе | Не пропадёт до сброса макета |
Если ошибка в печатной форме повторяется в каждом документе, источник не в ячейке, а в данных (реквизиты организации, наименование номенклатуры) или в макете. Правьте источник один раз, а не каждую печать.
Постоянная правка текста в макете печатной формы
Когда текст — часть самого бланка (заголовок, подпись, примечание внизу), его меняют в макете. В типовых конфигурациях на БСП для этого не нужен конфигуратор.
Путь в БП 3.0, УТ 11 и ЗУП 3.1: Администрирование → Печатные формы, отчеты и обработки → Макеты печатных форм.
- Найдите макет в списке — удобнее через поиск по названию формы, например «Счет на оплату».
- Откройте его кнопкой изменения макета. Макет откроется как табличный документ.
- Исправьте текст ячейки и сохраните изменения.
- Распечатайте любой документ и проверьте результат.
Измененный макет хранится в базе и отмечен в списке. Из окна печати тоже можно перейти к нему: через меню «Ещё» есть команда изменения макета.
Что важно знать при правке макета:
- 🧩 Ячейки бывают трёх видов по заполнению: текст, параметр и шаблон. Текст выводится как есть. Параметр — это имя, вместо которого программа подставит значение (например, наименование организации). Шаблон — текст с параметрами в квадратных скобках.
- ⚠️ Не меняйте имена параметров. Если в ячейке стоит параметр
Поставщик, переименование сломает заполнение: поле останется пустым. - 🔄 После обновления конфигурации фирма-разработчик может изменить типовой макет. Ваш изменённый останется, но новые правки из релиза в него не попадут. Сравните макеты после обновления и при необходимости верните типовой командой возврата к стандартному макету в том же списке.
Изменение текста ячейки в Конфигураторе
Конфигуратор нужен, когда текст «зашит» в объект метаданных: в общий макет, в подпись на форме, в отчёт без механизма пользовательских макетов.
Свойства ячейки макета
- Откройте нужный объект в дереве конфигурации и в ветке «Макеты» дважды щёлкните макет.
- Выделите ячейку и откройте палитру свойств (
Alt+Enterили правой кнопкой → «Свойства»). - В свойстве «Заполнение» проверьте вид: «Текст», «Параметр» или «Шаблон».
- Для текста правьте свойство «Текст». Для параметра — только если понимаете, где в коде он заполняется.
- Сохраните конфигурацию и обновите конфигурацию базы данных (
F7).
Типовая конфигурация на поддержке
Типовую конфигурацию в режиме «на поддержке без возможности изменения» править напрямую нельзя. Снимать её с поддержки ради одной надписи — плохая идея: каждое следующее обновление станет ручной работой.
Правильный путь — расширение конфигурации (появились в платформе 8.3.6):
- заимствуете нужную форму в расширение;
- меняете у элемента свойство «Заголовок» или добавляете свой элемент;
- загружаете расширение в базу.
Для печатной формы с другим текстом проще сделать внешнюю печатную форму или изменить макет через «Макеты печатных форм» (раздел выше). Это не требует доступа к конфигуратору.
Перед правками в конфигураторе выгрузите информационную базу в .dt или сделайте копию каталога файловой базы. Обновление структуры базы данных требует монопольного доступа — все пользователи должны выйти.
Массовое исправление текста в табличных частях и справочниках
Исправлять одну и ту же опечатку в 300 элементах вручную долго. В типовых конфигурациях есть обработка группового изменения.
Путь в БП 3.0: Администрирование → Обслуживание → Корректировка данных → Групповое изменение реквизитов. Её же можно вызвать из списка: выделите строки и выберите в меню «Ещё» команду изменения выделенных элементов.
- Выберите вид объектов (например, справочник «Номенклатура»).
- Отбором ограничьте круг — например, «Наименование содержит “Кабелъ”».
- Укажите реквизит и новое значение.
- Запустите изменение и посмотрите итог: обработка покажет, сколько объектов изменено и где были ошибки записи.
Групповое изменение задаёт реквизиту одно значение для всех объектов. Заменить часть текста внутри строки («Кабелъ» → «Кабель», остальное оставить) оно не умеет. Для этого нужна обработка с кодом — следующий раздел.
Для табличной части одного документа работает ручной приём:
- выделите несколько строк с
ShiftилиCtrl; - скопируйте их (
Ctrl+C), вставьте в Excel, исправьте заменойCtrl+H; - в документах, где есть загрузка из файла или вставка строк из буфера, верните данные обратно.
Автоматическая замена текста через запрос и обработку
Запрос в 1С только читает данные. Он находит объекты с нужным текстом, а меняет их код обработки: получает объект, правит строку, записывает. Такую внешнюю обработку пишет программист, запускают её через Файл → Открыть.
Пример: заменить часть строки в наименовании номенклатуры.
&НаСервере
Процедура ЗаменитьТекстНаСервере(СтарыйТекст, НовыйТекст)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Наименование ПОДОБНО &Шаблон";
Запрос.УстановитьПараметр("Шаблон", "%" + СтарыйТекст + "%");
Выборка = Запрос.Выполнить().Выбрать();
Счетчик = 0;
Пока Выборка.Следующий() Цикл
Объект = Выборка.Ссылка.ПолучитьОбъект();
Новое = СтрЗаменить(Объект.Наименование, СтарыйТекст, НовыйТекст);
Если Новое <> Объект.Наименование Тогда
Объект.Наименование = Новое;
Объект.Записать();
Счетчик = Счетчик + 1;
КонецЕсли;
КонецЦикла;
Сообщить(СтрШаблон("Изменено элементов: %1", Формат(Счетчик, "ЧГ=0")));
КонецПроцедуры
Тонкости, о которых спотыкаются:
- 🔤
ПОДОБНОищет без учёта регистра, аСтрЗаменить— с учётом. Поэтому в коде есть проверкаЕсли Новое <> ...: записываются только реально изменённые элементы. - ✳️ Символы
%,_и[в искомом тексте — служебные дляПОДОБНО. Если они есть в строке, экранируйте их черезСПЕЦСИМВОЛ. - 📏 Строки неограниченной длины в условии
ПОДОБНОне участвуют. Для таких реквизитов отбирайте все элементы и проверяйте текст функциейСтрНайтив цикле. - 📄 Документы правят так же, через
ПолучитьОбъект(), но строку ищут в табличной части:Для Каждого Строка Из Объект.Товары Цикл. Если реквизит участвует в движениях (например, содержание услуги попадает в проводки), документ нужно перепровести.
Для табличного документа есть отдельный приём — правка ячейки кодом прямо перед выводом:
Область = ТабДок.Область("R2C3");
Область.Текст = "Новый текст";
Обработку сначала запускайте на копии базы. Массовая запись сотен объектов не отменяется кнопкой: откат только из резервной копии.
Если ни один способ не подошёл
Бывает, что текст не меняется ни в форме, ни через групповое изменение. Тогда проверьте три вещи:
- Откуда берётся значение. Откройте карточку связанного объекта: часто текст в ячейке — это представление ссылки, и исправлять нужно справочник.
- Не перезаписывает ли его обмен. Если база получает данные из другой программы, ваша правка затрётся при следующей синхронизации. Исправляйте в базе-источнике.
- Нет ли подписки или доработки. В нетиповой конфигурации текст может формироваться при записи объекта. Спросите программиста, какой код заполняет поле.