1с справочникменеджер получить ссылку

Обновлено: 06.07.2024

Мы уже познакомились с таким понятием, как объект в 1С , следующим шагом будет логично познакомиться с таким понятием, как ссылка в 1С.

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

Мы помним, что в платформе 1С 8.3. существуют три вида объектов. Это объекты метаданных, общие объекты и универсальные коллекции значений.

Так вот, ссылка может быть только у объектов метаданных.

Замечу что, ссылка указывает не на сам объект, а на экземпляр объекта. Хотя, очень часто употребляют выражения «ссылка объекта», «ссылка на объект» и т.п.

Все ссылки объектов имеют тип СправочникСсылка.<НазваниеОбъекта>, ДокументСсылка.<НазваниеОбъекта> и т.д.

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

Например, в моей конфигурации есть справочник Контрагенты.

Справочник в конфигурации 1С

Ссылка на справочник у реквизита документа 1С

Это значит, теперь в документе Оплата можно хранить информацию о контрагенте, который сделал оплату.

Ссылка на справочник у реквизита документа 1С

Если мы используем ссылку в качестве реквизита какого-то объекта, то при редактировании экземпляра, на который указывает ссылка, сам реквизит не изменится.

Поясню на примере. Я выше создал документ Оплата и реквизит Оплативший для этого документа с типом СправочникСсылка.Контрагенты.

Если я переименую элемент справочника Контрагенты.

Элемент справочника 1С

Затем, зайду обратно в выше созданный документ Оплата, то увижу, что отображение контрагента в реквизите поменялось автоматически.

Документ 1С

Что это значит? Это не значит, что реквизит Оплативший элемента и сам элемент справочника Номенклатура поменялся автоматически. Нет, это значит, что данный реквизит хранит указатель на экземпляр объекта, который отображается посредством наименования. Поменяли наименование, поменялось только отображение, если бы поменяли какой-нибудь другой реквизит справочника Контрагенты, то пользователь бы ничего не заметил.

Получить ссылку 1С

Каким образом программно получить ссылку на экземпляр объекта, который уже есть в базе?

Сделать это можно несколькими способами: найти по коду, найти по наименованию, найти по реквизиту и найти по нескольким реквизитам через запрос. Я рассмотрю первые два метода.

Для демонстрации этих методов, на основной форме документа Оплата я создам команду «Установить контрагента», которую размещу в командной панели формы.

Команда основной формы 1С

При выполнении этой команды я буду в поле Оплативший записывать определенного контрагента. Для этого я создам обработчики команды на клиенте и на сервере.

Обработчики команды 1С

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

Функция НайтиПоКоду вернёт ссылку на экземпляр объекта справочник Контрагенты, которому соответствует код 000000002. Почему мы задали код в виде строки, а не в виде цифры, например? Чтобы понять это, нужно открыть непосредственно редактор справочника Контрагенты в конфигураторе, перейти на закладку «Данные» и посмотреть, какой тип кода у этого справочника.

Тип кода справочника 1С

Таким образом, данный код:

Рассмотрим синтаксис этой функции для менеджера справочника:

НайтиПоКоду(<Код>,<ПоискПоПолномуКоду>,<Родитель>,<Владелец>)

Код – непосредственно тот код, по которому мы ищем наш элемент;

Данное поле необязательно, по умолчанию – Ложь;

Родитель – для иерархических справочников можно указать группу, тогда поиск будет вестись внутри группы. Данное поле необязательно;

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

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

Этот способ можно применить только для тех объектов, у которых имеется стандартный реквизит Наименование.

Например, у справочников этот реквизит имеется.

Стандартный реквизит Наименование справочника 1С

А у документов его нет.

Отсутствие стандартного реквизита Наименование документа 1С

В случае этой функции, поиск ведется по тому значению, которое в поле Наименование объекта

Синтаксис функции для менеджера справочника следующий:

НайтиПоНаименованию(<Наименование>,<ТочноеСоответствие>,<Родитель>,<Владелец>)

«Наименование» – непосредственно то наименование, по которому мы ищем наш элемент;

Данное поле необязательно, по умолчанию – Ложь.

Помните это, что по умолчанию поиск ведется не точно;

Параметры «Родитель» и «Владелец» точно такие же, как для процедуры НайтиПоКоду.

Пустая ссылка 1С

Выглядит он так:

ПустаяНоменклатура= Справочники.Номенклатура.ПустаяСсылка();

ПустаяОплата = Документы.Оплата.ПустаяСсылка();

Переменные ПустаяНоменклатура и ПустаяОплата содержат в себе пустые ссылки на каждый объект.

Обращаю Ваше внимание, что для каждого вида справочника и каждого документа будет своя собственная пустая ссылка.

Данный метод очень удобно использовать, когда нам необходимо знать, найден ли элемент справочника по коду (названию) или нет.

Метод Пустая() удобно использовать работая в клиентском контексте (в том числе на тонком клиенте), потому что менеджер объекта это «тяжелый» объекта и с ним можно работать только в серверном контексте. Т.е. установку контрагента можно сделать таким способом:

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

Пустая ссылка в 1С

Программировать в 1С за 11 шагов

  1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  2. Научитесь понимать архитектуру 1С;
  3. Станете писать код на языке 1С;
  4. Освоите основные приемы программирования;
  5. Закрепите полученные знания при помощи задачника.

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

Основы разработки в 1С такси

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


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

можно оплатить вручную:

Ветка "Справочники".
Справочник "Номенклатура". ("лист ветки")
Записи в справочнике "Номенклатура".

Менеджеры существуют у веток, "листьев", каждой записи (хотя странно)?

Менеджеры существуют у веток, "листьев", каждой записи (хотя странно)?


нет, менеджеры существуют только у "объектов". У справочника нет ни "листьев", ни "веток", ни "записей" (записи - это в регистрах), а есть только элементы.
Вы пытаетесь с понятиями настоящего ООП подойти к "объектам" 1С: "ага, если есть объект СправочникиМенеджер - значит, он автоматически содержит объекты "Справочник" (пусть и "СправочникМенеджер" - может, 1с его просто так обозвала?!), СправочникСсылка (запись справочника - т.е. элемент справочника), и "СправочникВыборка"; если объект Регистр - автоматически содержит объект "Запись" и т.д.
Тут, конечно, можно поговорить об так называемом "разъименовании" объектов (получении данных объекта по ссылке через точку),


но это именно и есть "получение данных объекта по ссылке": формирование запроса на получение данных и соединение нескольких таблиц для вывода искомого. Откуда и тормоза в запросах (и не только - в частности, при использовании в тех же Выборках) при разъименовании, и категорический запрет на использование в запросах "двойного разъименования" (Объект.Свойство<содержащее СсылкуНаДругойОбъект>.СвойствоДругогоОбъекта) - а только явное соединение таблиц через СОЕДИНЕНИЕ.
А на самом деле в 1С нет настоящих "объектов" ООП (с чем я и пытаюсь бороться постоянно - чтобы не путали и не называли одним и тем же словом совершенно разное, или, хотя бы, понимали, что объекты в ООП и в 1С - это не одно и то же, а лишь названо одним термином; а для 1С, видимо, выгоднее, чтобы путались, и думали: "объекты" же есть, - значит - ООП!). В 1С, собственно, и введено внутренее понятие КоллекцияЗначений - а это не есть аналог контейнера объектов из ООП (который и сам определяет поведение входящих объектов, и дает доступ напрямую к ним - к их свойствам, методам, данным, событиям и т.д.), а набор ссылок на другие объекты, и из коллекции, если не получен "вложенный" элемент-объект (например, через метод НабораЗаписей "НаборЗаписей.Прочитать()" ), нельзя напрямую получить свойства и методы элементов коллекции, а только - получить "объекты" коллекции, и уже обходом или обращением к элементу коллекции - работать со свойствами и методами "вложенных" объектов. Объект РегистрСведений не содержит объект РегистрСведенийНаборЗаписей, а НаборЗаписей не содержит объекты РегистрСведенийЗапись. Для работы с каждым вложенным уровнем так называемых "объектов" - нужно получать объекты этого нового уровня вложенности.
Собственно, вся канитель "не могу получить данные объекта там-то", "не могу получить доступ к процедуре тут-то", "не видна переменная экспортная такая-то" и прочие невообразимые и множественные ограничения платформы - именно из-за наборов не связанных напрямую друг с другом "объектов", которых нужно каждый раз "получать", извлекать данные, и которым нужно каждый раз указывать - что мы от них хотим.
Возратимся к МенеджеруСправочников.
МенеджерСправочников ничего не делает, кроме как дает доступ к МенеджеруСправочника, который управляет объектом Справочник (но это не объект "СправочникОбъект"!).
А СправочникОбъект - это отдельный объект, не упомянутый выше объект Справочника целиком - как мы можем подумать, прочитав про "объект" (тот, выше упомянутый, просто предоставляет доступ к объекту конфигурации Справочник<такой-то> (т.е., можно сказать, к "описанию типа" справочника в конфигурации) - и здесь мы можем, например, создать Элемент справочника или группу, а вот СправочникОбъект - возвращает нам непосредственно конкретный созданый объект Справочник<такой-то> для работы с ним: удалить элемент, редактировать, прочитать свойства, обработать события), а объект Справочник (МенеджеруСправочника) является лишь "частью" общего формального понятия "Объект" (только лишь понятия, а не реализации такового в 1С!), если так можно сказать, оформленная в виде отдельного "объектика", и уже некоторые из них - собраны в "коллеции".
Надеюсь, что за "объектики" и как они "часть целого понятия" - я объяснил доступно: например, создаем новый элемент справочника в его "формальном" описании - в СправочникМенеджер, а вот работаем с конкретными элементами "как с настоящим объектом" - увы, уже в СправочникОбъект.
Есть еще и СправочникСсылка - еще один "объект", хоть и предоставляющий (как бы "содержащий") ссылку на конкретный объект СправочникОбъект, но сам являющийся отдельным и "независимым" объектом конфигурации со своими свойствами, методами и конструктором.

В модели разработки прикладных решений 1С:Предприятия для ряда сущностей предметной области используется объектный подход манипулирования данными.

Эти сущности описываются в конфигурации объектами метаданных:

    ; ;
  • ПланВидовХарактеристик;
  • ПланСчетов;
  • ПланВидовРасчета.

С точки зрения модели данных 1С:Предприятия, в базе данных для этих сущностей хранятся объекты.

Рассмотрим состав типов, используемых для манипулирования этими сущностями в конфигурации на примере справочника ( для других перечисленных объектов метаданных имеется аналогичный состав типов ).

Справочник хранится в таблице. Запись (строка) таблицы определяет объект базы данных – элемент справочника. Но объект базы данных включает не только запись в основной таблице справочника, но и все записи всех табличных частей справочника, относящиеся к данному объекту. Таким образом, объект базы данных включает в себя:

  1. запись основной таблицы;
  2. записи табличных частей.

Объект базы данных 1С

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

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

Тип СправочникиМенеджер

Тип СправочникиМенеджер предназначен в основном для доступа к менеджерам конкретных справочников. Кроме того, он имеет метод ТипВсеСсылки (), который позволяет получить значение ОписаниеТипов , содержащее типы ссылок всех справочников конфигурации. Например, с помощью данного значения (используя метод СодержитТип ()) можно проверить, является ли тип некоторого значениям типом ссылки какого-либо справочника.

Тип СправочникМенеджер

Тип СправочникМенеджер предоставляет доступ к общим действиям, относящимся к конкретному справочнику . С помощью его методов выполняются действия, относящиеся к справочнику, а не к его конкретным объектам, например:

  • создать новый объект справочника;
  • найти объект справочника по коду, и т.д.

Данный менеджер является своего рода "точкой входа" в конкретный справочник в объектной модели встроенного языка.

Объекты типа СправочникиМенеджер и СправочникМенеджер имеются в системе в единственном экземпляре.

Тип СправочникСсылка

Объект базы данных 1С

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

Значение типа СправочникСсылка – хранит ссылку, идентифицирующую объект в базе данных 1С.

Фактически значение СправочникСсылка хранит только внутренний идентификатор, хранящийся в поле Ссылка таблицы справочника. Это значение:

  • хранится в полях других таблиц базы данных,
  • выбирается в поле ввода,
  • указывается в параметрах запроса при поиске по ссылке и т.д.

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

Тип СправочникОбъект

Значение типа СправочникОбъект используется (в основном):

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

Для одного и того же элемента справочника можно получить несколько объектов типа СправочникОбъект:

  • При сравнении этих значений они будут равны, только если это один и тот же объект встроенного языка.
  • Два объекта встроенного языка, полученные для одного элемента справочника, не будут равны, даже если в них считан один и тот же объект базы данных и совпадают все данные объекта.

СправочникОбъект оптимизирует запись изменений в базу данных, например:

  1. если не менялись реквизиты самого объекта, то будет записываться только минимальная информация об изменении;
  2. если не менялись строки табличной части, то табличная часть записываться не будет;
  3. если менялись только отдельные строки или добавлялись строки, то будут записываться только измененные и добавленные строки;
  4. если строки удалялись или изменялся порядок строк, то будут записываться все строки табличной части.

Т.о. для манипулирования справочником во встроенном языке существуют два основных типа СправочникСсылка.ХХХХ и СправочникОбъект.ХХХХ , где ХХХХ — имя справочника в метаданных.

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

Отличие типов СправочникСсылка и СправочникОбъект:

  • значение типа СправочникСсылка хранит ссылку, идентифицирующую объект в базе данных;
  • значение типа СправочникОбъект позволяет считывать и записывать данные объекта.

И СправочникСсылка, и СправочникОбъект предоставляют доступ через свойства к данным объекта - значениям полей таблицы. Однако это происходит совершенно по-разному, так как назначение и использование этих типов принципиально отличается:

  • Значение СправочникОбъект хранит свойства непосредственно в объекте встроенного языка. Они заполняются при считывании существующего объекта значениями из базы данных, а для нового объекта инициализируются значениями по умолчанию.
  • Значение СправочникСсылка при обращении к свойствам осуществляет считывание информации из базы данных. Однако чтобы считывание происходило не при каждом обращении – данные объектов кэшируются системой.

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

Данные объекта удерживаются в кэше около 20 минут , но после интервала в 20 секунд при очередном обращении будет выполняться проверка того, что объект в базе данных не менялся, и, при необходимости, выполняется обновление данных в кэше. Если объект записывается в данной сессии, то он сразу обновляется в кэше. Также имеются ограничения на количество объектов хранимых в кэше. Следует заметить, что в рамках транзакции система использует отдельный кэш, поэтому обращение к данным объекта через ссылки в транзакциях гарантированно выдает актуальные данные.

Оптимистическая и пессимистическая блoкировка объекта

Для объектов обеспечивается оптимистическая блокировка : объект не может быть записан, если он был изменен в базе данных после считывания.

Этот механизм обеспечивает логическую целостность изменения объектов. Каждый, кто меняет объект, может быть уверен, что его изменения не "затрут" изменений сделанных другими пользователями (сессиями) или другими объектами в этой же сессии. Такая блокировка не препятствует изменению объекта другими сессиями или этой сессией. Однако если с момента считывания объекта и до попытки его записи объект был изменен в базе данных, то запись не будет выполнена.

Механизм пессимистической блокировки запрещает изменения другими сессиями или этой сессией, до снятия блокировки этим объектом встроенного языка. Данный механизм необходимо включать в явном виде методом Заблокировать (). В основном он предназначен для блокировки объектов, редактируемых в форме. Расширение формы элемента справочника автоматически включает блокировку, чтобы пользователь был уверен что, начав редактировать объект, он сможет его записать.

Тип СправочникВыборка

Тип СправочникВыборка предназначен для динамического обхода элементов справочника. Механизм выборок для объектных таблиц не имеет существенных отличий от выборок других таблиц. Можно заметить, что считанные в выборке элементы могут быть получены в качестве значений типа СправочникОбъект. При этом они не будут повторно считываться из базы данных.

ВАЖНО! Выборка всегда считывает данные объектов целиком (все поля и все табличные части).

Тип СправочникСписок

Тип СправочникСписок предназначен для динамического просмотра данных справочника в элементе управления ТабличноеПоле . У него может быть настроен состав считываемых полей (колонок), отбор и сортировка. Список осуществляет считывание данных порциями в процессе навигации пользователем в табличном поле.

Кроме указанных типов значений справочник определяет несколько расширений элементов управления и форм, предназначенных для интерактивного ввода и просмотра данных справочника. Расширения не являются типами данных, а добавляют специфические свойства, методы и события к соответствующим объектам. Кроме того, расширения определяют некоторое специфическое поведение форм и элементов управления при конфигурировании и работе пользователя с системой.

Рисунок отсюда , там же можно почитать подробнее.

Взаимосвязь объектов 1С

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

Взаимосвязь регистров в 1С

Свойства и методы прикладных объектов

Менеджер прикладных объектов данного типа

  • СправочникиМенеджер
  • ДокументыМенеджер
  • КонстантыМенеджер
  • РегистрыНакопленияМенеджер
  • ОтчетыМенеджер
  • ОбработкиМенеджер

Объекты данного вида обеспечивают доступ к менеджерам конкретного прикладного объекта.

Обычно доступ к таким объектам производится через свойства глобального контекста, например, Справочники.Сотрудники, Документы.Счет, РегистрыСведений.КурсыВалют и т.д.

Эти объекты являются коллекциями значений и позволяют перебрать свои элементы с помощью цикла "Для Каждого".

Менеджер прикладного объекта

  • СправочникМенеджер
  • ДокументМенеджер
  • КонстантаМенеджер
  • РегистрНакопленияМенеджер
  • ОтчетМенеджер
  • ОбработкаМенеджер

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

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

Типичные свойства (для справочников и планов):

  • Выбрать()
  • НайтиПоКоду()
  • НайтиПоРеквизиту()
  • ПустаяСсылка()
  • СоздатьЭлемент()
  • СоздатьНаборЗаписей()
  • ПолучитьМакет()
  • ПолучитьФорму()
  • СправочникСсылка
  • ДокументСсылка
  • ПланСчетовСсылка
  • ПланВидовРасчетаСсылка

Данный объект однозначно идентифицирует объект базы данных (например, элемент справочника, документ) и позволяет обращаться к нему в режиме "только чтение". Через свойства и методы этого объекта можно прочитать реквизиты элемента, обратиться к его табличным частям.

Ссылки хранятся в реквизитах, ссылающихся на элементы данного прикладного объекта, например, в реквизите "Сотрудник" документа "ПриемНаРаботу" хранится ссылка на конкретный элемент справочника "Сотрудники".

Заметьте, что у записей регистров нет ссылок.

Для изменения объекта базы данных (элемента справочника, документа) нужно получить другой объект с помощью метода ПолучитьОбъект().

  • <реквизит>
  • <табличная часть>
  • ПометкаУдаления
  • Дата
  • Предопределенный
  • Ссылка
  • Пустая()
  • ПолучитьОбъект()
  • ПолучитьФорму()
  • Метаданные()
  • Скопировать()
  • СправочникВыборка
  • ДокументВыборка
  • ЖурналДокументовВыборка
  • РегистрНакопленияВыборка

Этот объект предоставляет возможность обхода (перебора) объектов базы данных. Например, можно перебрать элементы справочника или перебрать документы, входящие в конкретный журнал.

Обратите внимание, что данный объект не является коллекцией значений и, следовательно, нельзя использовать цикл "Для Каждого" для перебора элементов.

Свойства аналогичны свойствам объекта типа "Ссылка".

  • СправочникОбъект
  • ДокументОбъект
  • ПланСчетовОбъект
  • ОтчетОбъект
  • ОбработкаОбъект

Предоставляет доступ к элементу с возможностью записи изменений в базу данных. Этот объект содержит методы, влияющие на элемент в базе данных, например, методы Записать и Удалить.

Для отчетов и обработок через этот объект обычно осуществляется формирование отчета или выполнение обработки.

Если в модуле прикладного объекта (не путать с модулем формы) есть экспортируемые переменные модуля или процедуры/функции, то они дополняют набор свойств и методов именно этого программного объекта.

Для регистров подобного объекта не существует, а изменение данных всегда производится через набор записей (см. ниже).

Свойства аналогичны свойствам объекта типа "Ссылка".

  • Записать()
  • Удалить()
  • Заблокировать()
  • Разблокировать()
  • Заблокирован()
  • Скопировать()
  • ПолучитьФорму()
  • ПолучитьМакет()
  • Метаданные()
  • СправочникСписок
  • ДокументСписок
  • ЖурналДокументовСписок
  • ПланСчетовСписок
  • РегистрНакопленияСписок
  • КритерийОтбораСписок

Этот программный объект предназначен для управления списком элементов в табличном поле. Позволяет управлять колонками, отбором и сортировкой в списке.

Этот объект нельзя создать программно, он создается системой автоматически при размещении на форме табличного поля. Конечно, программно можно создать табличное поле в экранной форме и тогда будет создан объект данного типа.

Набор записей

  • РегистрСведенийНаборЗаписей
  • РегистрНакопленияНаборЗаписей
  • РегистрБухгалтерииНаборЗаписей
  • РегистрРасчетаНаборЗаписей
  • ПоследовательностьНаборЗаписей

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

У документов есть свойство-коллекция "Движения", которое предоставляет доступ к наборам записей по каждому регистру, отмеченному на закладке "Движения". Через это свойство обычно производится формирование движений документа при его проведении.

  • Добавить()
  • Удалить()
  • Очистить()
  • Записать()
  • Прочитать()
  • Количество()
  • Выгрузить()
  • Загрузить()
  • РегистрСведенийЗапись
  • РегистрНакопленияЗапись
  • РегистрБухгалтерииЗапись
  • РегистрРасчетаЗапись

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

Объект типа "Запись" не является постоянным идентификатором конкретной записи регистра, наподобие объекта "Ссылка" для справочников и документов. У записей регистра сведений вообще нет неизменяемого во времени идентификатора и каждая запись регистра однозначно определяется значениями своих измерений (включая системные, например, Период, Регистратор, НомерСтроки)

  • <измерение>
  • <реквизит>
  • <ресурс>
  • Активность
  • Период
  • Регистратор
  • НомерСтроки
  • ВидДвижения

Ключ записи

  • РегистрСведенийКлючЗаписи
  • РегистрНакопленияКлючЗаписи
  • РегистрБухгалтерииКлючЗаписи
  • РегистрРасчетаКлючЗаписи

Типичные свойства (кроме регистра сведений):

Свойства для регистра сведений:

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Ниже перечислены виды программных объектов "Документы", их краткое описание, свойства и методы.

ДокументыМенеджер - это менеджер прикладных объектов данного типа. Объекты данного вида обеспечивают доступ к менеджерам конкретного прикладного объекта (т.е. дает доступ к любому виду документов).

Примеры менеджеров прикладных объектов данного типа
  • СправочникиМенеджер
  • ДокументыМенеджер
  • КонстантыМенеджер
  • РегистрыНакопленияМенеджер
  • ОтчетыМенеджер
  • ОбработкиМенеджер

Обычно доступ к таким объектам производится через свойства глобального контекста, например, Документы.Счет , Справочники.Сотрудники , РегистрыСведений.КурсыВалют и т.д.

Свойства соответствуют именам прикладных объектов и являются объектами типа "Менеджер прикладного объекта".

Эти объекты являются коллекциями значений и позволяют перебрать свои элементы с помощью цикла "Для Каждого".

ДокументМенеджер - это менеджер прикладного объекта; объект обеспечивает доступ к операциям над прикладным объектом как множеством элементов. Через методы этого объекта можно:

  • осуществлять поиск,
  • получать выборку,
  • создавать новые записи,
  • обращаться к формам и макетам прикладного объекта.

Является "центральным" в объектной модели 1С (из него можно получить остальные объекты, например, ссылки, выборки, объекты для изменения, наборы записей и т.д.).

  • СправочникМенеджер
  • ДокументМенеджер
  • КонстантаМенеджер
  • РегистрНакопленияМенеджер
  • ОтчетМенеджер
  • ОбработкаМенеджер

Объект ДокументМенеджер предназначен для управления документом:

  • программное создание новых документов (метод СоздатьДокумент ());
  • поиск существующих документов (методы НайтиПоНомеру (), НайтиПоРеквизиту ());
  • получение выборок (методы Выбрать (), ПолучитьДанныеВыбора ());
  • получение ссылок (методы ПолучитьСсылку (), ПустаяСсылка ());
  • получение макетов (метод ПолучитьМакет ());
  • получение форм (методы ПолучитьФорму (), ПолучитьФормуВыбора (), ПолучитьФормуНовогоДокумента (), ПолучитьФормуСписка ()).

ДокументСсылка - этот объект однозначно идентифицирует документ как объект базы данных и позволяет обращаться к нему в режиме "только чтение". Используется для указания ссылки на документ из реквизитов других объектов и переменных. Через свойства и методы этого объекта можно прочитать реквизиты элемента, обратиться к его табличным частям.

  • СправочникСсылка
  • ДокументСсылка
  • ПланСчетовСсылка
  • ПланВидовРасчетаСсылка

Ссылки хранятся в реквизитах, ссылающихся на элементы данного прикладного объекта, например, в реквизите "Сотрудник" документа "ПриемНаРаботу" хранится ссылка на конкретный элемент справочника "Сотрудники".

Типичные свойства объектов вида "Ссылка":

Например, для изменения объекта базы данных (элемента справочника, документа) нужно получить другой объект с помощью метода ПолучитьОбъект ().

ДокументВыборка - объект предоставляет возможность обхода (перебора) объектов базы данных (выполняет динамический перебор документов).

Например, можно перебрать перебрать документы, входящие в конкретный журнал.

ВАЖНО ! Данный объект не является коллекцией значений и, следовательно, нельзя использовать цикл "Для Каждого" для перебора элементов.

  • СправочникВыборка;
  • ДокументВыборка;
  • ЖурналДокументовВыборка;
  • РегистрНакопленияВыборка;

Свойства аналогичны свойствам объекта типа "Ссылка".

ДокументОбъект - предоставляет доступ к объекту базы данных с возможностью записи изменений. Используется для чтения, добавления, изменения, удаления документов.

  • СправочникОбъект
  • ДокументОбъект
  • ПланСчетовОбъект
  • ОтчетОбъект
  • ОбработкаОбъект

Для отчетов и обработок через этот объект обычно осуществляется формирование отчета или выполнение обработки.

Для регистров подобного объекта не существует, а изменение данных всегда производится через набор записей (см. ниже).

Если в модуле прикладного объекта (не путать с модулем формы) есть экспортируемые переменные модуля или процедуры/функции, то они дополняют набор свойств и методов именно этого программного объекта.

ВАЖНО! У всех событий этого объекта назначены предопределенные процедуры-обработчики. Имена процедур соответствуют именам событий. Процедуры должны располагаться в модуле документа.

Методы ДокументОбъект:

блокировка и разблокировка Заблокирован(), Заблокировать(), Разблокировать()
модификация Записать(), Заполнить(), Модифицировать(), Скопировать(), Удалить(), УстановитьВремя(), УстановитьНовыйНомер(), УстановитьПометкуУдаления(), УстановитьСсылкуНового()
чтение Метаданные(), Модифицированность(), МоментВремени(), Прочитать(), ЭтоНовый(), ПроверитьЗаполнение()
получение ссылок ПолучитьСсылкуНового()
получение форм ПолучитьФорму()
получение макетов ПолучитьМакет()

ДокументСписок - объект предназначен для управления списком элементов в табличном поле (т.е. для решения интерфейсных задач ). Позволяет управлять колонками, отбором и сортировкой в списке.

Этот объект нельзя создать программно , он создается системой автоматически при размещении на форме табличного поля. Однако, программно можно создать табличное поле в экранной форме и тогда будет создан объект данного типа.

Читайте также: