Поля в формах 1С 8.3: правим значения, состав формы и реквизиты конфигурации

· 9 мин

Содержание

Чтобы отредактировать поле в 1С, откройте карточку документа или справочника, щёлкните в поле, введите значение и нажмите Записать или Записать и закрыть. Если поле серое, его закрыли права, дата запрета изменения или блокировка реквизитов. Чтобы скрыть или показать поле на форме, используйте Ещё → Изменить форму. Добавить новое поле, которого в программе нет, можно только в конфигураторе, а лучше через расширение.

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

Что такое поле в 1С и где хранятся его данные

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

УровеньЧто этоЧем меняют
ЗначениеКонкретные данные: ИНН, цена, склад в документеОбычный ввод в форме, групповая обработка
Элемент формыКак поле показано: виден ли, где стоит, можно ли правитьИзменить форму в пользовательском режиме или редактор форм в конфигураторе
Реквизит объектаКолонка в таблице базы данных, в которой лежит значениеКонфигуратор или расширение конфигурации

Значения хранятся в информационной базе: в файле 1Cv8.1CD у файловой базы или в таблицах СУБД у клиент-серверной. Править их напрямую в файле или в SQL нельзя. Так ломаются ссылки, итоги регистров и обмены. Любое изменение данных проходит через формы 1С, обработки или код на встроенном языке.

У документов поля бывают двух видов:

  • 📄 реквизиты шапки — дата, организация, контрагент, договор;
  • 📋 реквизиты табличной части — колонки списка товаров или услуг: номенклатура, количество, цена.

Как изменить значение поля в пользовательском режиме

Это самая частая задача: поменять склад в документе, исправить наименование контрагента, поставить другую цену.

  1. Откройте нужный список. Например, Покупки → Поступление (акты, накладные, УПД) в Бухгалтерии 3.0 или Справочники → Контрагенты.
  2. Двойным щелчком откройте карточку.
  3. Щёлкните в поле. Текст вводите с клавиатуры. Для ссылочных полей (контрагент, склад) начните печатать название — 1С подскажет варианты из справочника. Кнопка ... справа от поля открывает полный список для выбора.
  4. Чтобы очистить ссылочное поле, нажмите Shift+F4 или кнопку с крестиком, если она есть в поле.
  5. Нажмите Записать. У документа — Провести, если он должен формировать движения.

Если документ уже проведён, после правки его нужно провести заново. Иначе в учёте останутся старые проводки и движения регистров, а на экране будут новые значения. При нажатии Записать и закрыть 1С обычно сама предлагает перепровести документ.

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

Поля, которые не видны сразу

Часть полей типовые формы прячут в свёрнутые группы. Чаще всего это блоки «Дополнительно», «Расчёты», «Счета учёта». Щёлкните по заголовку группы со стрелкой, и она раскроется. Счета учёта в строках табличной части Бухгалтерии 3.0 обычно открываются по ссылке в самой строке или в отдельной колонке.

Как настроить форму без конфигуратора: видимость и порядок полей

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

  1. Откройте форму документа, справочника или списка.
  2. Нажмите Ещё → Изменить форму.
  3. Откроется дерево элементов. Снимите флажок у поля, чтобы скрыть его, или поставьте, чтобы показать.
  4. Стрелками вверх и вниз на панели настройки меняйте порядок полей внутри группы.
  5. В правой части окна у выделенного поля можно поменять заголовок, ширину и некоторые другие свойства. Сделать нередактируемым поле, которое программа разрешает править, здесь не всегда получится. Это задача прав доступа.
  6. Нажмите ОК.

Настройка сохраняется для текущего пользователя. Если форму «сломали», откройте снова Изменить форму и выберите в меню Ещё команду возврата к стандартным настройкам.

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

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

В типовых конфигурациях на БСП есть механизм дополнительных реквизитов и сведений. Он позволяет завести своё поле (например, «Менеджер клиента» у контрагента) без доработки конфигурации.

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

Такие поля попадают в отборы списков и в отчёты через настройку варианта.

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

В табличной части поле — это ячейка строки.

  1. Выделите строку и дважды щёлкните по ячейке или нажмите F2.
  2. Введите значение и нажмите Enter или Tab. Курсор перейдёт к следующей ячейке.
  3. Insert добавляет строку, Delete удаляет выделенную, F9 копирует текущую строку.
  4. Сумма в строке обычно пересчитывается автоматически после ввода количества и цены.

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

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

Если в документе 200 строк и нужно поменять одну цену у всех, не правьте строки по одной. Это долго и легко пропустить строку. Используйте команду массового изменения над таблицей или групповую обработку (раздел ниже).

Как изменить поле в конфигураторе: реквизит, форма, обновление базы

Конфигуратор нужен, когда поля нет в программе или когда нужно изменить его тип, длину, проверку заполнения. Перед доработкой сделайте резервную копию: Администрирование → Выгрузить информационную базу в конфигураторе, файл .dt.

Шаг 1. Выберите, где вести доработку

СпособКогда подходитРиски
Расширение конфигурацииТиповая конфигурация на поддержке, нужно добавить реквизит или поменять формуМинимальные: обновления ставятся как обычно, расширение проверяется после обновления
Изменение основной конфигурацииСвоя конфигурация или уже снятая с поддержкиКаждое обновление типовой придётся сравнивать и объединять вручную
Дополнительный реквизит (БСП)Нужно простое поле без логикиОграничены типы и поведение, нет проверок в коде

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

Шаг 2. Добавьте реквизит

В расширении:

  1. Откройте конфигуратор, Конфигурация → Расширения конфигурации, создайте расширение.
  2. В дереве основной конфигурации найдите объект (например, Справочники → Контрагенты), правой кнопкой — Добавить в расширение.
  3. В расширении откройте заимствованный объект, вкладка Данные, раздел Реквизиты → Добавить.
  4. Задайте имя латиницей или кириллицей без пробелов (МенеджерКлиента), синоним для экрана и тип.

В основной конфигурации порядок тот же, только объект открывается сразу в дереве конфигурации.

Ключевые свойства реквизита в палитре свойств:

  • 🔤 Тип — строка, число, дата, булево или ссылка;
  • 📏 Длина и точность — для строки и числа;
  • ✅ Проверка заполнения — «Выдавать ошибку», если поле обязательное;
  • 🔍 Индексировать — если по полю часто ищут и отбирают.

Шаг 3. Выведите поле на форму

  1. Откройте форму объекта (в расширении её тоже нужно заимствовать).
  2. На вкладке Реквизиты редактора формы разверните Объект и найдите новый реквизит.
  3. Перетащите его мышью в дерево Элементы, в нужную группу.
  4. В свойствах элемента настройте Видимость, Доступность и ТолькоПросмотр.

Разница между последними двумя: при Доступность = Ложь поле серое целиком, при ТолькоПросмотр = Истина значение видно и копируется, но не меняется.

Шаг 4. Обновите базу

Нажмите F7 (Конфигурация → Обновить конфигурацию базы данных). Добавление реквизита меняет структуру таблиц. Для этого нужен монопольный доступ к базе: попросите пользователей выйти, иначе обновление не применится и сеансы получат сообщение о необходимости перезапуска.

Почему поле не редактируется и как это исправить

Серое поле — самая частая жалоба. Причин несколько, и они проверяются по порядку.

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

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

При доработке в конфигураторе типичная проблема — реквизит добавили, а на форме его нет. Реквизит объекта и элемент формы — разные вещи: после добавления реквизита его всегда нужно отдельно вывести на форму.

Массовое редактирование полей: групповая обработка и запрос

Групповое изменение реквизитов

Типовой способ поменять одно поле у сотен элементов.

  1. Откройте список, например контрагентов или номенклатуры.
  2. Выделите нужные строки (Ctrl + щелчок или Ctrl+A).
  3. Нажмите Ещё → Изменить выделенные.
  4. В открывшейся обработке «Групповое изменение реквизитов» отметьте реквизит, задайте новое значение.
  5. Нажмите Изменить реквизиты.

Обработку можно открыть и отдельно: в Бухгалтерии 3.0 она находится в Администрирование → Обслуживание → Корректировка данных. Там выбирают тип объектов, ставят отбор по условию и меняют реквизиты, в том числе в табличных частях.

Групповое изменение проведённых документов перезаписывает их. Изменение может потребовать перепроведения, а в закрытом периоде запись не пройдёт из-за даты запрета. Перед массовой правкой документов выгрузите базу в .dt.

Своя обработка с запросом

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

&НаСервереБезКонтекста
Процедура ЗаполнитьКомментарийНаСервере()

	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	Контрагенты.Ссылка КАК Ссылка
	|ИЗ
	|	Справочник.Контрагенты КАК Контрагенты
	|ГДЕ
	|	Контрагенты.ПометкаУдаления
	|	И Контрагенты.Комментарий ПОДОБНО """"";

	Выборка = Запрос.Выполнить().Выбрать();
	Изменено = 0;

	Пока Выборка.Следующий() Цикл
		Объект = Выборка.Ссылка.ПолучитьОбъект();
		Объект.Комментарий = "Помечен на удаление, не использовать";
		Попытка
			Объект.Записать();
			Изменено = Изменено + 1;
		Исключение
			Сообщить(СтрШаблон("Не записан %1: %2",
				Выборка.Ссылка, ОписаниеОшибки()));
		КонецПопытки;
	КонецЦикла;

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

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

&НаКлиенте
Процедура ЗаполнитьКомментарий(Команда)
	ЗаполнитьКомментарийНаСервере();
КонецПроцедуры

Работа с объектами идёт на сервере: в тонком клиенте ПолучитьОбъект() на клиенте недоступен. Ошибка записи одного элемента не останавливает обработку, а попадает в сообщения.

Не ставьте ОбменДанными.Загрузка = Истина ради скорости. Этот флаг отключает проверки и обработчики записи, и в базе появятся объекты без обязательных данных.

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