Справочники и Данные · 11 мин
Как выбрать значение из справочника в 1С
Как выбрать значение из справочника в 1С: подбор в документах и формах, быстрый поиск, выбор на форме, программное обращение к справочнику и частые ошибки.
Выбор значения из справочника — одна из самых частых операций в 1С: контрагент указывается в счёте, номенклатура — в накладной, склад — в ордере, сотрудник — в кадровом приказе. Несмотря на кажущуюся простоту, у пользователей регулярно возникают вопросы: почему нужный элемент не находится, как выбрать несколько позиций сразу, чем отличается ввод по строке от открытия формы списка.
Способ выбора зависит от того, где вы работаете: в обычном поле документа, в табличной части, в отчёте или в программном коде. Ниже разобраны все основные сценарии — от простого клика по кнопке выбора до обращения к справочнику из встроенного языка 1С, а также типичные проблемы и способы их проверки.
Материал применим к типовым конфигурациям на управляемых формах (1С:Бухгалтерия, 1С:Управление торговлей, 1С:ЗУП и аналогичные), но большинство приёмов работает и в обычных формах старых конфигураций.
Как устроен выбор из справочника в 1С
Справочник в 1С — это список однотипных объектов: контрагентов, товаров, складов, договоров, валют. Когда в документе или отчёте есть поле, ссылающееся на справочник, платформа предлагает несколько способов указать нужный элемент: быстрый ввод по строке, открытие формы выбора, выбор из выпадающего списка или подбор из истории.
Какой именно вариант сработает, определяется настройками поля в конфигурации: свойствами «Быстрый выбор», «Кнопка выпадающего списка», «История выбора при вводе». В типовых конфигурациях для большинства полей включён ввод по строке и кнопка выбора, поэтому пользователю обычно доступны оба пути.
Выбор значения в поле документа или справочника
Самый быстрый способ — ввод по строке. Установите курсор в поле и начните набирать название, код, ИНН или артикул: 1С покажет выпадающий список подходящих элементов уже после нескольких символов. Стрелками на клавиатуре выберите нужный и нажмите Enter. Поиск работает по началу слов, а во многих конфигурациях — и по подстроке.
Второй способ — кнопка выбора (значок с тремя точками или стрелкой вниз справа от поля). Она открывает форму выбора справочника, где можно искать, фильтровать по группам и реквизитам, а при необходимости сразу создать новый элемент кнопкой «Создать». После двойного клика по строке или нажатия «Выбрать» значение подставляется в поле.
Третий вариант — выпадающий список. Если в конфигурации для поля включён режим списка (типично для полей с небольшим числом вариантов, например «Вид операции»), достаточно развернуть список и кликнуть нужное значение. Для больших справочников вроде номенклатуры такой режим не используется — список был бы слишком длинным.
- 1Кликните по кнопке выбора справа от поля или нажмите F4
- 2В открывшейся форме найдите элемент через строку поиска или отбор
- 3При необходимости создайте новый элемент кнопкой «Создать» и заполните его реквизиты
- 4Дважды кликните по строке или нажмите «Выбрать»
- 5Убедитесь, что в поле подставилось правильное значение
Подбор нескольких значений в табличную часть
Когда нужно добавить в накладную сразу десятки товаров, открывать форму выбора для каждой строки неудобно. Для этого в документах есть команда «Подбор» в командной панели табличной части. Открывается специальная форма подбора: вы кликаете по товарам или перетаскиваете их, указываете количество, а все позиции накапливаются в корзине и переносятся в документ одним действием.
Альтернатива — множественный выбор в обычной форме списка: выделите несколько строк с зажатым Ctrl или Shift и нажмите «Выбрать». Работает не во всех формах — зависит от настроек конфигурации. Ещё один приём для массового ввода — вставка из буфера обмена: скопируйте список артикулов или наименований из Excel и вставьте в табличную часть, если конфигурация поддерживает такую загрузку.
Почему элемент не находится и что проверить
Самая частая жалоба: «элемент точно есть, но в списке выбора его нет». Причины почти всегда одни и те же. Во-первых, пометка удаления: помеченные элементы по умолчанию скрываются из форм выбора. Во-вторых, установленный отбор в форме выбора — например, форма может показывать только поставщиков или только неархивные позиции; проверьте панель отборов и сбросьте лишние условия.
В-третьих, ограничение прав доступа: если у пользователя нет права чтения на часть данных (например, на контрагентов другой организации при включённом RLS), элементы просто не отображаются. В-четвёртых, параметры выбора поля: поле «Договор» часто отфильтровано по выбранному контрагенту и организации — пока эти поля не заполнены, список договоров будет пустым.
Как проверить, почему элемент не выбирается
Элемент находится и открывается
Элемент помечен на удаление или отсутствует
Отборы сброшены, список полный
Установлен отбор, скрывающий нужные элементы
Связанные поля заполнены, зависимый список показывает значения
Список пуст до заполнения родительского поля
Под администратором элемент виден
Под пользователем элемент скрыт — проблема в правах
Выбор значения программно: на форме и в коде
Разработчикам и при доработке конфигураций выбор из справочника делается программно. Для поиска существующего элемента используются методы менеджера справочника: Справочники.Номенклатура.НайтиПоКоду("000123") или НайтиПоНаименованию("Бумага А4"). Оба возвращают ссылку, а если элемент не найден — пустую ссылку, которую нужно проверять через Ссылка.Пустая().
Для интерактивного выбора пользователем в управляемых формах применяется оповещение: открывается форма выбора с параметрами, а результат обрабатывается в указанной процедуре. Типовой шаблон выглядит так:
&НаКлиенте
Процедура КонтрагентНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Отбор", Новый Структура("ПометкаУдаления", Ложь));
ОткрытьФорму("Справочник.Контрагенты.ФормаВыбора", ПараметрыФормы,
Элементы.Контрагент);
КонецПроцедуры
Если нужно перебрать элементы справочника пакетно (например, для обработки), используется выборка: Выборка = Справочники.Номенклатура.Выбрать(); Пока Выборка.Следующий() Цикл ... КонецЦикла;. Для выборки с условиями эффективнее запрос — он не тянет лишние данные на клиент.
Параметры выбора и связи по владельцу
Многие поля связаны между собой: договор зависит от контрагента, банковский счёт — от организации, подразделение — от выбранной компании. Это реализуется через свойство «Связь по владельцу» и «Параметры выбора» в конфигураторе. Практическое следствие для пользователя: сначала заполняйте родительское поле, потом зависимое — иначе список будет пуст или покажет нерелевантные значения.
Если зависимое поле уже заполнено, а потом меняется родительское, 1С обычно очищает зависимое значение или выдаёт предупреждение о несоответствии. Это нормальное поведение, защищающее от ошибок: например, чтобы в документе не остался договор другого контрагента.
Выбор значения в отчётах и настройках отборов
В отчётах на СКД (почти все типовые отчёты) выбор значения справочника происходит в настройках отбора. Откройте «Настройки», добавьте отбор по нужному полю, в колонке «Значение» кликните кнопку выбора — откроется та же форма выбора справочника. Для отбора по нескольким значениям переключите вид сравнения на «В списке» и добавьте элементы по одному или подбором.
Полезный приём — отбор «В группе» или «В группе из списка»: он выбирает все элементы, входящие в указанную папку справочника, например все товары группы «Канцелярия». Это избавляет от необходимости перечислять позиции вручную и автоматически учитывает новые элементы, добавленные в группу позже.
Как выбрать способ выбора
Частые вопросы
Почему при вводе по строке 1С не находит элемент, который точно есть?
Чаще всего элемент помечен на удаление, скрыт отбором в форме выбора или недоступен по правам. Также поиск может идти по началу слова: если вы вводите фрагмент из середины названия, попробуйте открыть полную форму выбора и использовать поиск по подстроке там.
Как выбрать сразу несколько контрагентов в отборе отчёта?
В настройках отчёта установите для поля вид сравнения «В списке», затем добавляйте элементы через кнопку выбора по одному. Если контрагентов много и они объединены папкой, удобнее использовать условие «В группе» по нужной группе справочника.
Чем отличается «Подбор» от обычного выбора в табличной части?
Обычный выбор заполняет одну строку и закрывает форму. Подбор держит форму открытой: вы добавляете позиции одну за другой, указываете количество, а затем переносите всё накопленное в документ одним действием. Это заметно быстрее при вводе десятков строк.
Можно ли выбрать элемент справочника по штрихкоду?
Да, если в конфигурации подключено оборудование или настроен поиск по штрихкоду: отсканируйте код в поле ввода или в форме подбора — 1С найдёт номенклатуру по регистру штрихкодов и подставит её. Если штрихкод не найден, система предложит создать новый элемент или привязать код к существующему.
Что возвращает НайтиПоНаименованию, если элементов с таким названием несколько?
Метод возвращает ссылку на первый найденный элемент без гарантии, какой именно это будет из дублей. Поэтому для программной идентификации надёжнее использовать код, уникальные реквизиты или запрос с дополнительными условиями, а результат всегда проверять методом Пустая().
Почему список договоров пуст, хотя у контрагента договоры заведены?
Проверьте, что поле «Контрагент» заполнено до открытия списка договоров и что отбор по организации совпадает с организацией договора. Также договор может быть помечен на удаление или относиться к другому типу (например, «С комитентом» вместо «С покупателем»), который поле не показывает.
Что важно запомнить
Для разового выбора используйте ввод по строке или форму выбора, для массового — подбор и множественный выбор. Если элемент не находится, проверяйте пометку удаления, отборы, связанные поля и права. В коде идентифицируйте элементы по коду или уникальным реквизитам и всегда проверяйте результат на пустую ссылку.