Документобъект 1с что это

Обновлено: 07.07.2024

В этой статье я разберу объекты платформы 1С 8.3, и покажу, какие виды объектов бывают в 1С.

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

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

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

У объектов есть свойства, методы и события.

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

Метод объекта – это процедура или функция, которая выполняет или какое-то действие над экземпляром этого объекта, или возвращает информацию о состоянии экземпляра этого объекта.

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

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

Объекты конфигурации 1С

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

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

Дерево метаданных 1С

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

Дерево метаданных 1С

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

Справочник 1С

Например, у справочника, созданного выше, одни из свойств это Имя, Синоним и т.д., а методы, например, Записать, Заполнить и тд.

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

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

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

Справочник 1С в синтакс-помощнике

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

Реквизиты справочника 1С

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

Модуль справочника 1С

У некоторых объектов пользователь может создавать экземпляры этих объектов: например, можно создать экземпляр справочника или документа, и записать этот экземпляр в базу данных. А некоторые объекты метаданных пользователь может использовать для каких-то целей. Например, отчет или обработку.

Общие объекты 1С

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

В синтакс-помощнике информация обо всех общих объектах расположена в одноименном каталоге.

Общие объекты 1С в синтакс-помощнике

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

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

Конструктор табличного документа в синтакс-помощнике 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С:Предприятие, которые используются для программной работы с документами.

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

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

ДокументСсылка – идентификатор документа. Используется обычно в реквизитах других объектов для указания ссылки на определенный документ.

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

ДокументВыборка – предназначен для работы с выборкой документов, произведенной по определенным условиям.

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

Для доступа к метаданным документа можно воспользоваться свойством Документы свойства глобального контекста Метаданные.

Создадим новую обработку, назовем ее РаботаСДокументами. Включим в подсистему Администрирование.

Добавим в обработку команду с именем ВывестиСписокВидовДокументов, зададим обработчик для этой команды, выведем ее на форму обработки.

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

Результат выполнения показан на рис. 7.11.

Вывод списка синонимов документов

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

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

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

Добавим в нашу обработку новую команду – СоздатьДокументПоступлениеМатериалов. Так же добавим новый реквизит – ПроводитьДокумент, поместим его на форму, рис. 7.12.

Мы зададим все данные, в том числе – и тип документа для создания – в коде.

Модификация формы обработки

Решить поставленную задачу можно с помощью следующего кода:

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

При вызове функции СоздатьДокумент(), мы планируем воспользоваться возвращенной ей ссылкой на созданный документ для открытия его формы с помощью метода ОткрытьЗначение().

Функция СоздатьДокумент принимает один параметр – РежимЗаписи, который мы используем после создания документа для задания режима его записи.

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

В реквизит Комментарий мы записываем строку.

Следующим этапом работы с документом становится заполнение его табличной части. Мы выполняем заполнение построчно, добавляя в табличную часть строку – она представлена в коде переменной НоваяСтрокаТЧ с типом Строка табличной части. Когда строка добавлена, мы обращаемся к ее реквизитам, заполняя их данными.

После того, как документ сформирован, мы записываем его (или – и записываем и проводим – в зависимости от значения параметра РежимЗаписи) и возвращаем ссылку на него в точку вызова функции СоздатьДокумент.

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

Документ, созданный автоматически

Решим теперь следующую задачу. Нужно пометить на удаление все документы типа ПоступлениемМатериалов, которые созданы автоматически – их реквизит Комментарий содержит текст "Документ создан автоматически".

Добавим в форму обработки новую команду, назовем ее ПометитьНаУдаление. Поставленную задачу можно реализовать с помощью следующего кода:

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

Нашей следующей задачей будет вывод пользователю списка документов за заданный пользователем период. Добавим в форму обработки команду ВыводСпискаДокументовЗаПериод и два реквизита – ДатаНачала и ДатаОкончания – тип Дата, состав даты – Дата и время. Дата документа содержит сведения о дате и времени создания документа, поэтому для выбора периода, в который должны попасть искомые документы, нам понадобятся значения даты с датой и временем.

Решение задачи может выглядеть так:

Здесь мы пользуемся методом Выбрать с параметрами, устанавливающими дату начала и дату окончания для выборки документов. Полученную выборку перебираем в цикле и сообщаем пользователю о найденных документах, рис. 7.15.

Вывод списка документов, принадлежащих периоду, заданному пользователем


Рис. 7.15. Вывод списка документов, принадлежащих периоду, заданному пользователем

Выводы

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

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