1с как программно получить реквизит справочника

Работа программы со справочниками

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

Создать запись справочника

Создание новых записей справочника и групп осуществляется через программный объект CatalogManager. . Этот объект доступен только на сервере .
Создание новой записи каталога или группы состоит из следующих шагов:

  1. Создание записи или группы;
  2. Заполнить владельца (если каталог дочерний);
  3. Заполнить родительский каталог (если каталог иерархический);
  4. Заполнить имя и данные (если автоматическая нумерация не настроена, то и код);
  5. Заполнение частей таблицы;
  6. Элемент ввода.

Создайте новую группу:
Новая группа = Каталоги. Поставщики. Создать группу(); // Создаем группу
NewGroup . Имя = «Покупатель»; // Завершение имени
NewGroup . Напишите(); // Групповая запись

Создать новый элемент:
NewElement = Reference. Поставщики. создатьЭлемент(); // Создать элемент
NewElement . Родитель = Каталоги. Поставщики. НайтиПоИме(«Покупатель»); // Заполняем родительский элемент
NewItem . Имя = «ООО Ромашка» ; // Завершение имени
NewElement . НИФ = «123456789»; // Добавляем атрибут

// Добавление новой строки в секцию таблицы
NewString = NewElement . Контактная информация. Добавлять ();
Новая строка. Тип = «Адрес»;
Новая строка. Display = «Moscow» ;

Новый элемент. Напишите(); // Запись элемента

Поиск записей справочника

Существует несколько способов поиска элементов справочника в языке программирования 1С:

  • Найти по код (код >, поиск по полному коду >, родитель >, владелец >)
  • Поиск по имени (имя >, точное совпадение >, родитель >, владелец >)
  • Поиск по атрибуту (имя атрибута >, значение атрибута >, родитель >, владелец >)

Во всех методах, если поиск успешен, ссылка на найденный элемент будет возвращен.
Аккаунт найден = реферал. Поставщики. Поиск по коду («123»); // Находим контрагента с кодом «123»
Сделка найдена = Справочники . Связанные контракты. FindByCode(«1» , , , совпадение найдено ); // Поиск контракта, подчиненного найденному контрагенту с номером «1»
Найден контрагент = Справочники. Поставщики. НайтиПоИме(«Покупатель»); // Поиск товара с именем «Покупатели»
Найдено Counterparty1 = Directorys. Поставщики. FindByName(«Ромашка ООО», аналог найден); // Поиск записи «ООО Ромашка» в группе «Покупатели»
Найден контрагент = Справочники . Поставщики. FindByAttribute(«ИНН», «123456789»); // Поиск контрагента с ИНН «123456789»

Читайте также:  Как военнослужащему открыть бизнес

Изменить записи справочника

Изменить детали поиска, выполните следующие действия:

  1. Получить объект из элемента словаря (метод GetObject(), возвращаемый тип DirectoryObject. );
  2. Присвоить атрибутам объекта новые значения;
  3. Введите объект записи каталога.

Программное изменение каталога возможно только на стороне сервера.

Например, в форме обработки отображается атрибут Номенклатура типа СправочникСсылка.Номенклатура. Вот пример кода, который переименовывает элемент, выбранный пользователем:
NomenclatureObject = Item. ПолучитьОбъект();
Именование объекта. Имя = «Новое имя»;
Именование объекта. Напишите();

Удаление записей каталога

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

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

Метка удаления может быть установлена/снята двумя различными способами:
// Способ 1. Использование метода SetDeletionMark()
Найден аналог = Ссылки. Поставщики. Поиск по коду («123»);
AccountObject = AccountFound . ПолучитьОбъект();
AccountObject . SetRemoveFlag(True);

// Способ 2. Изменить свойство RemoveFlag
Account found = Referrals. Поставщики. Поиск по коду («123»);
AccountObject = AccountFound . ПолучитьОбъект();
АккаунтОбъект . флаг удаления = истина;
AccountObject . Напишите();

Пример прямого удаления искомого элемента:
Учетная запись найдена = Поиск. Поставщики. Поиск по коду («123»);
AccountObject = AccountFound . ПолучитьОбъект();
AccountObject . Удалить ();

Пропустить записи справочника

Пропустить записи справочника в языке программирования 1С можно двумя способами:

  • Выбрать (Главная >, Владелец >, Выбор >, Порядок >)
  • Выбрать иерархически (Основной >, Владелец >, Выбор >, Порядок >)

методы с различаются порядком выбора элементов: при иерархическом выборе для каждого элемента сначала выбираются элементы, родителем которых он является, а затем выбираются элементы следующего уровня.

Рассмотрим примеры пропуска элементов каталога:
// Пропуск всех элементов каталога Counterparts
Selection = Directorys . Поставщики. Выбирать (); // Получить выделение всех элементов в директории
While Selection . Next() Loop
// действие со следующим элементом
Message ( Selection . Name );
Конец цикла;

Читайте также:  Dayz как открыть шкаф

// Исключить контрагентов из группы «Покупатели»
GroupBuyers = Directorys . Поставщики. НайтиПоИме(«Покупатель»);
Выбор = Каталоги. Поставщики. Выбрать (группировать покупателей);
Во время выбора. Следующий() Цикл
Отчет(Выбор. Имя);
Конец цикла;

//Пропуск контрагентов по договорам ООО «Ромашка»
Найден контрагент = Справочники . Поставщики. FindByName(«ООО «Ромашка»»);
Выбор = Каталоги. Связанные контракты. Выберите (, VendorFound);
Во время выбора. Следующий() Цикл
Отчет(Выбор. Имя);
Конец цикла;

// Пропускать одноранговые узлы с пустым TIN
// Атрибут TIN должен быть проиндексирован!
Выбор = новая структура («ИНН», «»); // Структура может содержать только один элемент
Selection = References. Поставщики. Выделить (, , Выделение);
Во время выбора. Следующий() Цикл
Отчет(Выбор. Имя);
Конец цикла;

Отбор элементов словаря по запросу

Искать данные в базе 1С удобнее с помощью запросов. Запрос позволяет описать практически любое условие выбора, в отличие от методов Select() и SelectHierarchically(), которые имеют существенные ограничения. В большинстве случаев работа с запросами также быстрее, чем работа с кодом.

Простой пример поиска и отображения товаров с ценой больше 1000:
Запрос = Новый запрос;
Запрос. Text =
«ВЫБЕРИТЕ
Контрагент);
ОткрытьФорму(«Справочник.Счета.Форма.ФормаЭлементов», Открыть Параметры);

// Открыть Групповую Форму
// ГрупповыеСчета – атрибут формы, заполняемый пользователем в интерактивном режиме
ShowValue (, GroupAccounts);

// Другой способ открыть групповую форму
OpenParams = New Struct («Key» , GroupAccounts);
OpenForm(» Directory.Accounts.Form.GroupForm» , Open Options );

Внимание!

Следует отметить, что интерактивная работа (в т.ч. открытие форм) в 1С возможна только на стороне клиента, при этом поиск и редактирование данных возможно только на стороне клиента.сервера.

Источник

Программно получить/записать дополнительные сведения

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

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

Функция получает значение следующего объекта атрибута по ссылке и свойству.

  • Ссылка . Тип: Любая ссылка . Ссылка на искомый объект;
  • Свойство . Тип: Таблица типов элементов Атрибуты и другая информация . Необязательное свойство.
Читайте также:  Как мне получить деньги на погребение

Напишите более подробную информацию программно

Функция записывает значение суммы. атрибуты объекта по ссылке и свойству.

  • Ссылка . Тип: Любая ссылка . Ссылка на искомый объект;
  • Свойство . Тип: Таблица типов элементов Атрибуты и другая информация . Другое имущество;
  • Значение. Тип: Установите для этого свойства.

Если вы до сих пор не знаете, как для работы с механизмом дополнительной информации в 1с 8 читайте об этом в статье 1С Регистрация и получение дополнительной информации.

Источник

Как извлечь признак из ссылка на книгу «Номенклатура» ?

Почему не работает?Ошибка?Или пустое значение?В последнем случае может быть в поле «Товар» пустое значение?

Number = References.Nomenclature.FindByCode(«00000000028» );
Notify(«Номер позиции: » + Номер позиции);

Ps: Мой пункт не был заполнен, я прокомментировал и результат выполнения был такой:

Может у вас переменная Номенклатура не типа СправочникСсылка.Номенклатура и дальше точки ничего не получается.Тогда надо смотреть как вы получаете номенклатуру и что вы обычно ставите в этой переменной. Если вы храните имя со строковым типом (и не хотите, чтобы оно было исправлено), то

Скажите, какую ошибку он покажет, если не работает?

выберите свойства элемента по запросу:

Значение = References.ObjectPropertyValues.FindByName(String.NameFromDocumen т);
Property = PlansViewsCharacteristics.PropertiesObjects.FindBy Name(«Account1»);

Request = new Request; // найти свойства статьи, где указан аналог и статья
Request.Text =
«SELECT

Получить и записать сведения о документе или каталоге с помощью метаданных.

Методы работы с деталями документа или каталога через метаданные Автор статьи: Document Burial Angel.

Теперь о справочниках.
Они сложнее.

Получить список идентификаторов справочных сведений:

Но это еще не все. В дополнение к этим деталям есть еще такие вещи, как Код, Имя, Родитель и Владелец.

Конечно, вам не нужно копировать код. Атрибуты также могут быть периодическими, использоваться только группами, только элементами или и тем, и другим. Его можно редактировать вручную или с помощью документации…

Универсальная процедура копирования словарной статьи выглядит так:

Процедура имеет ряд недостатков: не копируются периодические реквизиты и дочерние справочники. не создаются. Но я думаю, что вы можете сделать это сами.

Шрифт

Поделиться с друзьями
Решатор