1с как обратиться к метаданным внешней обработки
Обновлено: 05.07.2024
В этой статье мы узнаем, что такое обработки в платформе 1С 8.3 и для каких целей они нужны. Научимся создавать обработки в качестве объектов метаданных конфигурации 1С, научимся создавать внешние обработки, создавать формы обработок, добавлять обработки в подсистемы и давать права на обработки пользователям, а также узнаем, как открыть внешнюю обработку в 1С.
В платформе 1С, помимо объектов конфигурации, которые так или иначе связаны ведением учета (например, Справочники – для хранения однотипной информации, Документы – для отображения событий), существует объект, который напрямую не связан с ведением учета, и с помощью которого можно осуществлять различные вспомогательные действия (групповая обработка справочников и документов, загрузка – выгрузка информации и т.д.). Этот объект – Обработка. Обработки могут быть как объекты какой-то конфигурации, а также внешние – в этом случае сама обработка будет храниться где-то на жестком диске, её можно будет открыть в пользовательском клиенте 1С предприятия, и выполнить нужные действия.
Создать обработку 1С
После выполнения этой команды, будет создана пустая обработка, которая появится в дереве метаданных в соответствующей ветке, а также откроется окно менеджера обработки.
Обработка создана, и вы можете с ней работать: задать имя обработки, синоним и т.д.
Создать внешнюю обработку 1С
Или нажать на кнопку «Новый» в меню «Стандартная».
После откроется окно «Выбор вида документа», в котором необходимо выбрать «Внешняя обработка».
Откроется окно менеджера внешней обработки, и вы можете проделать с ней все нужные операции.
После того, как внешняя обработка создана, её желательно сохранить на жестком диске (и делать это периодически во время работы с ней в конфигураторе). Для того, чтобы сохранить внешнюю обработку необходимо или нажать на кнопку «Сохранить» меню «Стандартная».
Или просто нажать сочетание клавиш Ctrl + S.
После этих действий откроется окно, в котором можно выбрать каталог, где будет храниться эта внешняя обработка, а также ввести название файла.
После сохранения, у внешней обработки сверху будет прописан путь к ней.
Замечу, что файлы всех внешних обработок имеют расширение epf.
Добавить внешнюю обработку 1С
Иногда возникают задачи добавить внешнюю обработку в конфигурацию 1С. Чтобы это сделать, необходимо выделить ветку «Обработки» дерева метаданных конфигурации, вызвать контекстное меню и выполнить в нем команду «Вставить внешнюю обработку, отчет…».
В открывшемся окне необходимо выбрать нужную обработку.
После, обработка появится в дереве.
Сохранить обработку 1С в файл
Может возникнуть обратная задача: сохранить обработку из какой-то конфигурации в файл, т.е. сделать внешнюю обработку из простой обработки.
Делается это достаточно просто: нужно выделить обработку в дереве конфигурации, вызвать контекстное меню и выполнить команду «Сохранить как внешнюю обработку, отчет…»
Откроется окно «Сохранить как», в котором нужно выбрать месторасположение обработки, а также, если это необходимо, изменить название.
Подсистема обработки 1С
Обработку, которую мы создали в дереве метаданных можно включить в любую подсистему, тогда у нас появится возможность отобразить её в пользовательском интерфейсе. Для того, чтобы включить обработку в подсистему, необходимо зайти на закладку «Подсистемы» менеджера обработки и поставить флаг напротив нужной подсистемы.
Можно включить в подсистему другим способом. Необходимо выделить нужную обработку, вызвать контекстное меню и выполнить в этом меню команду «Дополнительно».
В правой части рабочего стола откроется окно «Дополнительно», в котором на закладке «Подсистемы» можно привязать эту обработку к нужной подсистеме, установив флаг рядом с подсистемой.
После того, как мы поставим флажки, то обработка включится в состав подсистемы.
Но, если мы попробуем её найти в пользовательском клиенте, то ни чего не найдем. Также, её не будет в командном интерфейсе подсистемы.
Причина этому – отсутствие основной формы обработки.
Основная форма обработки 1С
Для того, чтобы обработка появилась в командном интерфейсе, необходимо создать основную форму обработки.
Для этого, нужно в менеджере обработки перейти на вкладку «Формы», в которой нажать на кнопку «Добавить». После, откроется конструктор формы обработки, в котором можно ввести название новой обработки, её синоним, и самое главное установить флаг «Назначить форму основной».
Если вы нажмете на кнопку «Далее», то можете выбрать какие реквизиты обработки будут включены на форму, а если нажать на кнопку «Готово», то форма будет создана без реквизитов.
После этого, обработка появится в командном интерфейсе подсистемы.
Замечу, что основная форма обработки указана в свойстве обработки «Основная форма», если мы это свойство очистим.
То даже при наличии формы, обработка не будет отображаться в командном интерфейсе подсистемы.
Права на обработку 1С
Чтобы пользователь мог работать с обработкой, ему нужно дать права на неё. Для этого, необходимо у соответствующей роли для обработки установить права Использовать и Просмотр.
Если вы установите только право Использовать, то пользователь не сможет видеть обработку в интерфейсе. Он сможет только обращаться в ней посредством программного кода.
Если Вы внедряете обработку в какую-то типовую конфигурацию, то лучше для этого создать отдельную роль, а не изменять текущую. Тогда у вас будет меньше проблем с обновлением в будущем.
Открыть обработку 1с
И при выполнении команды с именем обработки будет открыта форма обработки.
Я немного изменил управляемую форму обработки, добавив надпись.
Управляемая форма открылась в независимом окне, если мы хотим, чтобы она открылась поверх окон, то нужно у основной формы обработки установить в свойство «Режим открытия окна» или значение «Блокировать весь интерфейс», или значение «Блокировать окно владельца».
После таких настроек, обработка будет открываться по верх окон.
Открыть внешнюю обработку 1С
В окне «Открыть» необходимо найти и выбрать нужную вам обработку.
После выйдет предупреждение безопасности, если вы знаете, что это за обработка, то нажимаете кнопку «Да».
Форма внешней обработки открылась.
Замечу, что в моем случае открылась форма обработки в отдельном окне, потому что, во-первых, я создал основную форму внешней обработки, а во-вторых, установил у основной формы в свойство «Режим открытия окна» значение блокировать окно владельца.
Чтобы пользователь мог открывать внешние обработки, ему необходимо установить право «Интерактивное открытие внешних обработок».
Другие статьи по конфигурированию в 1С:
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника.
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
можно оплатить вручную:
Работа во встроенном языке с объектами метаданных
Во встроенном языке "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С необходимо сначала обратиться к менеджеру этого объекта. Например, для управления документом, как объектом конфигурации, следует обратиться к менеджеру документа, а для управления справочником, как объектом конфигурации, нужно обратиться к менеджеру справочника.
Узнать, какое свойство за какой объект отвечает, можно в синтакс-помощнике в разделе Глобальный контекст, подразделе Свойства.
Если в модуле написать название свойства глобального контекста, и поставить «.» (или Ctrl + Space), то появится контекстная подсказка в которой, будут отображены все объекты этого прототипа, существующие в конфигурации на данный момент. Например, справочники.
После выбора конкретного объекта, мы уже обратимся к менеджеру этого объекта. Например, к менеджеру справочника.
И нам будут доступны все свойства и методы менеджера объекта. Заметим, что менеджер объекта даёт доступ не к конкретному экземпляру объекта, а ко всему объекту в целом.
Все свойства и методы менеджера нужного объекта можно посмотреть в синтакс-помощнике. Например, для справочника будет следующий путь.
А для документа, следующий:
Так мы получаем доступ к менеджеру конкретного справочника Контрагенты.
А так, к менеджеру документа Счет.
Естественно, и справочник Контрагенты, и документ Счет уже созданы в конфигурации.
Если после получения доступа к менеджеру объекта, мы поставим точку или выполним комбинацию клавиш Ctrl + Space, то появится контекстная подсказка со свойствами и методами менеджера объекта.
Подробно об этих методах можно почитать в синтакс-помощнике. Например, о методах менеджера справочника.
Например, в случае справочника, при помощи этих методов можно найти элемент, создать элемент, получить выборку и т.д.
Создать экземпляр объекта справочника можно так:
Где СоздатьЭлемент() – это функция менеджера справочника, которая возвращает новый экземпляр объекта.
А получить выборку элементов справочника можно так:
Где Выбрать() – это функция менеджера справочника, которая возвращает выборку элементов.
Модуль менеджера 1С
Помимо методов менеджеров объектов, которые предоставляет платформа 1С можно создать собственные методы того или иного объекта. Делается это в модуле менеджера 1С. Открыть модуль менеджера объекта 1С достаточно просто: необходимо в дереве конфигурации выделить нужный объект, вызвать контекстное меню, и выполнить команду «Открыть модуль менеджера» этого меню.
Теперь, мы можем обратиться к этому методу посредством менеджера конкретного справочника.
Т.е. с помощью модуля менеджера мы можем создавать свойства и методы, которые будут применимы только к конкретному справочнику, документу и т.д.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
можно оплатить вручную:
Читайте также: