Получить результат обработки 1с

Обновлено: 06.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(Команда)
Команда1НаСервере();
КонецПроцедуры

&НаСервере
Процедура Команда1НаСервере()
Для Каждого СтрокаТаблицы из Элементы.Таблица.ТекущиеДанные ЦИКЛ
Если (СтрокаТаблицы.ЧекбоксА=ИСТИНА)ТОГДА
Для Каждого СтрокаТаблицы2 из Элементы.Таблица.ТекущиеДанные ЦИКЛ
Если (СтрокаТаблицы2.ЧекБоксБ=ИСТИНА) ТОГДА
НаборД=РегистрыСведений.ВзаимосвязиДокументов.СоздатьНаборЗаписей();
СтрокаДанных=НаборД.Добавить();
СтрокаДанных.СсылкаА=СтрокаТаблицы.СсылкаА;
СтрокаДанных.СсылкаБ=СтрокаТаблицы2.СсылкаБ;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры

Amarg0: Элементы - это объекты, отвечающие за отрисовку данные, а вам нужны сами данные. Это будет либо Для Каждого Строка Из Объект.МояТабличнаяЧасть , если табличная часть - реквизит обработки. Либо просто «МояТабличнаяЧасть», если табличная часть - реквизит формы.

На ютубе есть серия видео «разработка управляемого приложения» - очень советую, поможет навести порядок в понимании управляемых форм.

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

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

В вашем примере существует обработка под названием "Связь", в которой есть табличная часть "Таблица". Запросы языка 1С указанным вами способом (путь по метаданным) могут получать выборки лишь из данных, которые сохранены в СУБД базы. Т.е. у вас ничего не выйдет. Но язык запросов позволяет делать запросы еще и к структурам в памяти, если их передавать в качестве параметров. Вы можете поступить следующим образом:


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

Примеры обработок: выгрузка документа в Excel, загрузка из текстового файла, групповая обработка документов, подбор в документы продажи и т.п.

Обработки находятся в узле Обработки дерева метаданных:

Обработка

Основные настройки обработки указываются на закладках Данные и Формы.

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

Обработка

На закладке Формы можно создать форму обработки, с помощью которой можно предоставить интерфейс для взаимодействия с пользователм:

Обработка

Внешние обработки

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

Чтобы создать внешнюю обработку нужно в конфигураторе в верхнем меню выбрать Файл -> Новый (или нажать на кнопку с белым листом ниже):

Внешняя обработка

В окне выбора вида документа нужно выделить пункт Внешняя обработка и нажать ОК:

Внешняя обработка

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

Внешняя обработка

Важно отметить, что у внешней обработки нет модуля менеджера.

Для сохранения внешней обработки нужно выбрать в верхнем Меню Файл -> Сохранить (или нажать на кнопку с дискетой ниже):

Внешняя обработка

Указать путь к файлу, имя файла и нажать Сохранить:

Внешняя обработка

Внешняя обработка сохраняется в файле с расширением .epf.

Для открытия внешней обработки в пользовательском режиме нужно в главном меню выбрать Файл -> Открыть и выбрать сохраненный файл внешней обработки:

Внешняя обработка

Внешняя обработка

Внешняя обработка

В этом случае текущая обработка будет заменена на внешнюю.

Внешняя обработка

Внешняя обработка
Внешняя обработка

Программная работа с обработками

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

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

Открыть форму обработки 1С

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

В первой статье, в которой мы начали знакомиться с обработками в 1С, я создал обработку «Обработка для примера» с формой.

В этой статье я покажу, как открыть программно форму этой обработки из другой обработки «Обработка1». Для этого у Обработки1 я создал управляемую форму и команду формы.

Обработка 1С и форма обработки 1С

В клиентском обработчике команды, напишем код, который будет открывать основную форму обработки.

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

Обработка 1С и форма обработки 1С

После, в результате выполнения команды, в отдельном окне будет открываться форма обработки «Обработка для примера».

Обработка 1С и форма обработки 1С

Открыть форму внешней обработки 1С

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

Разберем пример. Пусть, у внешней обработки будут две формы: Основная и Дополнительная.

Открыть форму внешней обработки

На основной форме создадим команду «Открытие дополнительной», при выполнении которой будет открываться дополнительная форма.

Открыть форму внешней обработки

У этой команды будет клиентский обработчик события, со следующим кодом:

Теперь, открыв внешнюю обработку, мы сможем из её основной формы открыть дополнительную.

Открыть форму внешней обработки

Открыть внешнюю обработку 1С

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

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

Открыть внешнюю обработку 1С

В форме обработки напишем следующий код:

Код работает, начиная с платформы 8.3.15.

После выполнения команды, откроется окно выбора файла внешней обработки.

Если файл будет выбран, внешняя обработка откроется.

Открыть внешнюю обработку 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


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

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

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