1с как обратиться к метаданным внешней обработки

Обновлено: 05.07.2024

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

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

Создать обработку 1С

Создать обработку 1С

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

Создать обработку 1С

Обработка создана, и вы можете с ней работать: задать имя обработки, синоним и т.д.

Создать внешнюю обработку 1С

Создать внешнюю обработку 1С

Или нажать на кнопку «Новый» в меню «Стандартная».

Создать внешнюю обработку 1С

После откроется окно «Выбор вида документа», в котором необходимо выбрать «Внешняя обработка».

Создать внешнюю обработку 1С

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

Создать внешнюю обработку 1С

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

Сохранить внешнюю обработку 1С

Или просто нажать сочетание клавиш Ctrl + S.

После этих действий откроется окно, в котором можно выбрать каталог, где будет храниться эта внешняя обработка, а также ввести название файла.

Сохранить внешнюю обработку 1С

После сохранения, у внешней обработки сверху будет прописан путь к ней.

Сохранить внешнюю обработку 1С

Замечу, что файлы всех внешних обработок имеют расширение epf.

Добавить внешнюю обработку 1С

Иногда возникают задачи добавить внешнюю обработку в конфигурацию 1С. Чтобы это сделать, необходимо выделить ветку «Обработки» дерева метаданных конфигурации, вызвать контекстное меню и выполнить в нем команду «Вставить внешнюю обработку, отчет…».

Добавить внешнюю обработку 1С

В открывшемся окне необходимо выбрать нужную обработку.

Добавить внешнюю обработку 1С

После, обработка появится в дереве.

Добавить внешнюю обработку 1С

Сохранить обработку 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)То есть вы из доработки хотите получить комментарий объекта?Например документа.Правильно?

(2)Нет, комментарий обработки, как видно из обращения через Метаданные()

(1)"Раньше" - где и когда? в ОФ эта строка работает.

Спасибо всем ответившим. Далее по порядку.
(2) Роман . Ну да, из самой обработки и ее же комментарий. Там у меня стоит номер версии и даты и его и их я показываю в заголовке основной формы обработки. Чтобы знать - с какой версией работают.
(3) Екатерина. Ну раньше - это в ЗИКБУ 1.0 (8.2.ххх) Там были только обычные приложения. А вот что такое ОФ - теряюсь просто в догадках. Или уже УФ ?
(4) Екатерина. Ваш пример не совсем мне понятен. Я запускаю свою обработку, скажем через
"Открыть файл" в обработке уже прописан ее комментарий, который я и хочу показать в заголовке
основной формы этой обработки. Зачем - уже написал (2). Вот это предложение мне и непонятно.
Возврат Обработки.ИМЯОБРАБОТКИ.Создать().Метаданные().Комментарий;
Что я должен создать, ведь метаданные там присутствуют, просто я их хочу получить в самой же обработке. Раньше (ЗИКБУ 1.0 8.2. было :
ЭтаФорма.Заголовок = ЭтаФорма.Заголовок + ". " + ЭтотОбъект.Метаданные().Комментарий;
Теперь же (ЗКГУ 3.1 8.3.10.ххххх нет ЭтогоОбъекта . ) Пишу версию и дату пока ручками в процедуре ПриОткрытии() этой формы, что в общем то одно и тоже. Интересно просто нумизматически, куда подевался ЭтотОбъект и кто исполняет теперь его функции ?

Спасибо еще раз всем, если есть что по решению этой темы - отвечайте.

(5) ОФ - обычные формы, УФ - управляемые формы.
Конструкция Обработки.ИМЯОБРАБОТКИ.Создать().Метаданные().Комментарий возвращает как раз ваш комментарий. Как по-другому до него добраться я не придумала, может быть опытные и подскажут другое решение. Ждите. Теперь не могу найти "ЭтотОбъект". Не подскажете, куда копнуть? Спасибо.

в УФ, ссылку на этот объект надо получать через РеквизитФормыВЗначение. На сервере.

А ваша задача решается, например в обработчике ПриСозданииНаСервере - это серверный обработчик.

либо отдельной функцией, вызвав ее- например в "ПриОткрытии"

П.С.
Я археолог ))) купился на поднявшуюся старую тему. Ну да ладно, решения все равно не было.

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

Менеджер объекта 1С

Для доступа к тому или иному объекту конфигурации 1С необходимо сначала обратиться к менеджеру этого объекта. Например, для управления документом, как объектом конфигурации, следует обратиться к менеджеру документа, а для управления справочником, как объектом конфигурации, нужно обратиться к менеджеру справочника.

Узнать, какое свойство за какой объект отвечает, можно в синтакс-помощнике в разделе Глобальный контекст, подразделе Свойства.

Свойство глобального контекста 1С

Если в модуле написать название свойства глобального контекста, и поставить «.» (или Ctrl + Space), то появится контекстная подсказка в которой, будут отображены все объекты этого прототипа, существующие в конфигурации на данный момент. Например, справочники.

Свойство глобального контекста 1С

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

И нам будут доступны все свойства и методы менеджера объекта. Заметим, что менеджер объекта даёт доступ не к конкретному экземпляру объекта, а ко всему объекту в целом.

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

Менеджер объекта 1С

А для документа, следующий:

Менеджер объекта 1С

Так мы получаем доступ к менеджеру конкретного справочника Контрагенты.

А так, к менеджеру документа Счет.

Естественно, и справочник Контрагенты, и документ Счет уже созданы в конфигурации.

Если после получения доступа к менеджеру объекта, мы поставим точку или выполним комбинацию клавиш Ctrl + Space, то появится контекстная подсказка со свойствами и методами менеджера объекта.

Менеджер объекта 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


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

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

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