Довідковий матеріал

Робота з прикладними об'єктами засобами вбудованої мови

Робота з будь-яким прикладним об'єктом (об'єктом конфігурації) схожа на роботу з іншими об'єктами, тому що є загальний принцип. Розуміючи цей принцип, можна швидко освоїти всі прикладні об'єкти, чи то довідники, плани рахунків, документи, регістри або будь-який інший прикладний об'єкт. Специфічні об'єкти . Взаємозв'язок об'єктів. Резюме

Робота з прикладними об'єктами засобами вбудованої мови

Специфічні об'єкти

Взаємозв'язок об'єктів

Резюме

 

Робота з будь-яким прикладним об'єктом (об'єктом конфігурації) схожа на роботу з іншими об'єктами, тому що є загальний принцип. Розуміючи цей принцип, можна швидко освоїти всі прикладні об'єкти, чи то довідники, плани рахунків, документи, регістри або будь-який інший прикладний об'єкт.

Цей розділ має радше теоретичний характер, але для успішної розробки в 1С:Підприємстві 8 абсолютно необхідно розуміти цю класифікацію об'єктів. У наступній таблиці перелічено види програмних об'єктів із конкретними прикладами, їх короткий опис, типові властивості та методи (тобто такі, що трапляються в різних об'єктів):

Вид об'єктаОписТипові
властивості та методи
Менеджер прикладних об'єктів цього типу

приклади:

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

Об'єкти цього виду забезпечують доступ до менеджерів конкретного прикладного об'єкта.

Зазвичай доступ до таких об'єктів здійснюється через властивості глобального контексту, наприклад, Справочники.Сотрудники, Документы.Счет, РегистрыСведений.КурсыВалют тощо.

Ці об'єкти є колекціями значень і дають змогу перебрати свої елементи за допомогою циклу "Для Каждого".

Властивості відповідають іменам прикладних об'єктів і є об'єктами типу "Менеджер прикладного об'єкта"

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

приклади:

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

Цей об'єкт є "центральним" в об'єктній моделі, з якого можна отримати інші об'єкти, наприклад, посилання, вибірки, об'єкти для змінення, набори записів тощо (див. нижче параграф "Взаємозв'язок об'єктів").

Об'єкт цього виду забезпечує доступ до операцій над прикладним об'єктом як множиною елементів. Через методи цього об'єкта можна здійснювати пошук, отримувати вибірку, створювати нові записи, звертатися до форм і макетів прикладного об'єкта.

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

приклади:

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

Цей об'єкт однозначно ідентифікує об'єкт бази даних (наприклад, елемент довідника, документ) і дає змогу звертатися до нього в режимі "тільки читання". Через властивості та методи цього об'єкта можна прочитати реквізити елемента, звернутися до його табличних частин.

Посилання зберігаються в реквізитах, що посилаються на елементи цього прикладного об'єкта, наприклад, у реквізиті "Сотрудник" документа "ПриемНаРаботу" зберігається посилання на конкретний елемент довідника "Сотрудники".

Зауважте, що записи регістрів не мають посилань.

Для змінення об'єкта бази даних (елемента довідника, документа) потрібно отримати інший об'єкт за допомогою методу ПолучитьОбъект().

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

приклади:

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

Цей об'єкт надає можливість обходу (перебирання) об'єктів бази даних. Наприклад, можна перебрати елементи довідника або перебрати документи, що входять до конкретного журналу.

Зверніть увагу, що цей об'єкт не є колекцією значень і, отже, не можна використовувати цикл "Для Каждого" для перебирання елементів.

Властивості аналогічні властивостям об'єкта типу "Посилання".

Типові методи:

  • Следующий()
  • ПолучитьОбъект()
Об'єкт

приклади:

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

Надає доступ до елемента з можливістю запису змін до бази даних. Цей об'єкт містить методи, що впливають на елемент у базі даних, наприклад, методи Записать і Удалить.

Для звітів і обробок через цей об'єкт зазвичай здійснюється формування звіту або виконання обробки.

Якщо в модулі прикладного об'єкта (не плутати з модулем форми) є експортовані змінні модуля або процедури/функції, то вони доповнюють набір властивостей і методів саме цього програмного об'єкта.

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

Властивості аналогічні властивостям об'єкта типу "Посилання".

Типові методи:

  • Записать()
  • Удалить()
  • Заблокировать()
  • Разблокировать()
  • Заблокирован()
  • Скопировать()
  • ПолучитьФорму()
  • ПолучитьМакет()
  • Метаданные()
Список

приклади:

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

Цей програмний об'єкт призначений для керування списком елементів у табличному полі. Дає змогу керувати колонками, відбором і сортуванням у списку.

Цей об'єкт не можна створити програмно, він створюється системою автоматично під час розміщення на формі табличного поля. Звісно, програмно можна створити табличне поле в екранній формі, і тоді буде створено об'єкт цього типу.

Типові властивості:
  • Колонки
  • Отбор
  • Порядок
Типові методи:
  • Обновить()
Набір записів

приклади:

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

Набір записів дає змогу оперувати відразу кількома записами прикладного об'єкта (зазвичай регістра). Набір записів можна повністю прочитати з бази даних, додати до нього записи або змінити їх, а потім записати до бази даних (в одній транзакції).

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

Типові властивості:
  • Отбор
  • ЭтотОбъект
Типові методи:
  • Добавить()
  • Удалить()
  • Очистить()
  • Записать()
  • Прочитать()
  • Количество()
  • Выгрузить()
  • Загрузить()
Запис

приклади:

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

Забезпечує доступ до одного запису з набору, щоб установити його виміри, ресурси тощо. Цей об'єкт повертається методами інших об'єктів, наприклад, методом Добавить в об'єкта типу РегистрНакопленияНаборЗаписей.

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

Типові властивості:
  • <измерение>
  • <реквизит>
  • <ресурс>
  • Активность
  • Период
  • Регистратор
  • НомерСтроки
  • ВидДвижения
Типові методи:
  • МоментВремени()
Ключ запису

приклади:

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

Цей об'єкт потрібен для ідентифікації запису регістра в табличному полі, наприклад, набору записів документа-реєстратора або списку всіх записів регістра. Він використовується для позиціювання у списку записів на конкретному записі регістра.

Типові властивості (крім регістра відомостей):
  • НомерСтроки
  • Регистратор

Властивості для регістра відомостей:

  • <ИмяИзмерения>
  • Период
  • Регистратор

Специфічні об'єкти

Нижче перелічено деякі важливі об'єкти, які не вкладаються в наведену вище класифікацію:

Вид об'єктаВідповідний
прикладний об'єкт
Опис

Менеджер запису регістра відомостей

Регістри відомостей

Застосовується для операцій над одним записом регістра відомостей. Цей об'єкт існує лише в незалежного регістра відомостей, тобто не підпорядкованого реєстратору.

Слід мати на увазі, що навіть якщо редагування записів здійснюється з використанням менеджера запису, то на нижньому рівні все одно застосовується набір записів регістра, тобто під час збереження/видалення записів спрацьовують події модуля набору записів регістра.

ПланСчетовВидыСубконто
ПланСчетовВидыСубконтоСтрока

Плани рахунків Застосовується для роботи зі списком видів субконто, прикріплених до цього рахунку.

РегистрБухгалтерииСубконто

Регістри бухгалтерії Властивість Субконто об'єкта РегистрБухгалтерииЗапись є об'єктом саме цього типу. Цей об'єкт є колекцією значень і дає змогу керувати значеннями субконто для конкретного запису регістра бухгалтерії.

КонстантыНабор

Константи

Аналогічний об'єктам типу НаборЗаписей у тому сенсі, що дає змогу прочитати з бази даних або записати до бази даних значення кількох констант в одній транзакції. Його набір властивостей і методів нетиповий порівняно з наборами записів, тому його винесено до специфічних об'єктів.

МенеджерВнешнихОбработок
ВнешняяОбработка

Зовнішні обробки

Менеджер зовнішніх обробок подібний до менеджерів інших прикладних об'єктів. Його метод Создать(<имя файла>) дає змогу створити об'єкт типу "ВнешняяОбработка". Цей об'єкт, своєю чергою, подібний до об'єктів ОтчетОбъект і ОбработкаОбъект та надає доступ до реквізитів і табличних частин зовнішньої обробки для передавання параметрів формування звіту або виконання обробки.

Якщо в модулі зовнішньої обробки (не плутати з модулем форми) є експортовані змінні модуля або процедури/функції, то вони доповнюють набір властивостей і методів об'єкта "ВнешняяОбработка".


Взаємозв'язок об'єктів

Нижче показано взаємозв'язок програмних об'єктів, характерний для об'єктів, що мають посилання (на прикладі довідників):

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

А тепер дещо інший взаємозв'язок, характерний для регістрів (на прикладі регістрів накопичення):

Як бачите, ліві частини цих схем дуже схожі, а праві частини відрізняються. Не думайте, що об'єкт "Ключ запису" аналогічний об'єктам "Посилання", а об'єкти "НаборЗаписей" і "Запис" аналогічні об'єкту "Об'єкт", хоча певна схожість простежується.

  • Об'єкт "Ключ запису" нагадує "Посилання" тим, що це найточніший можливий ідентифікатор конкретного запису регістра (але не такий абсолютний, як "Посилання"). Необхідно весь час пам'ятати, що конкретні записи регістра не мають посилань, тобто немає жодних унікальних ідентифікаторів, що відрізняють цей запис від іншого і ніколи не змінюються в часі та просторі.
  • Об'єкт "НаборЗаписей" у сукупності з об'єктом "Запис" схожий на об'єкт типу "Об'єкт" лише тим, що тільки через ці об'єкти відбувається змінення даних у базі даних.

Резюме

  • Робота з будь-яким прикладним об'єктом має багато спільного з іншими прикладними об'єктами, оскільки організована за допомогою кількох програмних об'єктів, кожен із яких має своє призначення, типовий набір властивостей і методів. Але для кожного прикладного об'єкта набір властивостей і методів може відрізнятися від типового.
  • З одних програмних об'єктів за допомогою певних властивостей і методів можна отримати інші програмні об'єкти.
  • Можна виділити дві групи прикладних об'єктів: такі, що мають посилання (елементи довідників довідники, документів) і такі, що не мають посилання (зазвичай пов'язані з регістрами).
  • Частина програмних об'єктів не вкладається в загальну схему та наведена окремо.
Записатися телефоном