Как вызвать внешнюю обработку 1с. Использование встроенных и дополнительных обработок. Внешняя обработка или печатная форма сохранена в информационной базе

Внимание! Перед вами ознакомительная версия урока, материалы которого могут быть неполными.

Войдите на сайт как ученик

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

Создание конфигураций 1С: добавляем обработку

Продолжаем изучение азов создания конфигураций на 1С.

На этом уроке мы вместе создадим новую обработку, а затем напишем для неё команды, которые демонстрируют работу со справочником "Сотрудники".

Возвращаемся в конфигуратор и открываем дерево конфигурации.

Добавляем новую обработку

Правой кнопкой нажимаем на разделе "Обработки" и выбираем пункт "Добавить":

Открылось окно создания новой обработки. Перейдём на закладку "Основные" и укажем в качестве имени обработки "ОбработкаСправочников":

Создаём форму для обработки

Перейдём на закладку "Формы" нажмём на зелёный плюсик, чтобы добавить новую форму (визуальное представление нашей обработки):

Появился конструктор создания формы. Оставим всё по умолчанию и нажмём "Готово":

Открылась новая форма:

Создаём новую команду для формы

Перейдём на закладку "Команды"->"Команды формы":

Добавим новую команду (зелёный плюсик):

И в свойствах новой команды укажем имя "ВыводВсехСотрудников":

Нажмём в её же свойствах на лупу рядом с полем "Действие", чтобы задать обработчик команды. Выберем вариант создания обработчика "НаКлиенте" и нажмём "ОК":

Нас перенесло в модуль формы в процедуру-обработчик команды "ВыводВсехСотрудников":

Пишем код обработчика команды

Теперь наша задача написать код на внутреннем языке 1С, который будет перебирать все элементы справочника "Сотрудники".

Сразу хочу сказать, что этот код нельзя писать прямо в процедуре "ВыводВсехСотрудников", так как она выполняется на клиенте (обратите внимание на специальную строчку перед процедурой "&НаКлиенте"). Попытка прочитать данные из базы в клиентской процедуре всегда будет приводить к ошибке (пока просто запомните это).

Поэтому давайте допишем в конце модуля процедуру такого вида:

Обратите внимание, что перед ней я указал признак "&НаСервере". Это означает, что она будет выполняться на сервере, а значит мы можем из неё читать данные справочника.

Теперь организуем вызов этой процедуры из клиентской "ВыводВсехСотрудников":

Тут логика такая:

  1. Пользователь вызывает команду "ВыводВсехСотрудников" (например, нажатием на кнопку, которой у нас ещё правда нет)
  2. Команда запускает одноименную процедуру-обработчик "ВыводВсехСотрудников" на клиенте (ведь кнопка, а значит и команда находятся на клиенте)
  3. Клиентская процедура "ВыводВсехСотрудников" делает вызов серверной процедуры "ВыводВсехСотрудниковНаСервере"
  4. Серверная процедура "ВыводВсехСотрудниковНаСервере" читает данные справочника из базы и выводит их в окно сообщений

Нам осталась самая малость - написать код процедуры "ВыводВсехСотрудниковНаСервере", который пробегается по элементам справочника "Сотрудники" и выводит их в окно сообщений.

Это на самом деле несложно. Обход всех справочников в 1С однотипен. А значит научившись это делать сейчас со справочником "Сотрудники", вы сможете делать также и с любыми другими справочниками.

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

Менеджер = Справочники. Сотрудники;

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

Что представляет из себя менеджер справочника? Менеджер - это ещё не сами данные справочника. Менеджер - это некоторый программный объект (можете представлять его себе в виде чёрного ящика), через который мы можем что-либо делать со справочником.

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

Чтобы сделать это - необходимо вызвать встроенный в менеджер метод "Выбрать". Вызывается он через точку после имени переменной, в которой хранится менеджер, и возвращает коллекцию элементов справочника:

Менеджер = Справочники. Сотрудники; Выборка = Менеджер. Выбрать() ;

Что представляет из себя выборка? Выборка (опять же это только имя переменной, в которую мы сохраняем результат работы метода "Выбрать" и оно могло бы быть любым другим) представляет из себя коллекцию, но не такую, как например массив или список значений.

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

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

Чтобы получить очередную порцию данных из выборки, необходимо вызвать у выборки встроенный в неё метод "Следующий". Получение порций данных (одна порция соответствует одному элементу справочника) обычно происходит в цикле:

Когда данные (элементы справочника) в выборке закончатся, метод "Следующий" вернёт Ложь и цикл прекратится.

После каждого вызова метода "Следующий" (при условии, что он вернул "Истина") выборка будет содержать в себе все поля с данными только считанного элемента справочника, обращаться к которым можно по именам через точку:

Получается в один момент - мы работаем с данными только одного из элементов справочника. И тут мы можем или сразу их вывести пользователю (методом "Сообщить") или, к примеру, мы можем сложить их в другую коллекцию (массив), чтобы потом уже за раз с ними что-нибудь сделать. Всё зависит от задачи, которую мы решаем.

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

Обработка «Поиск и замена значений»

Обработка "Поиск и замена значений" находится на диске ИТС.
Универсальная обработка "Поиск и замена значений" предназначена для поиска и замены ссылочных значений в различных объектах информационной базы "1С:Предприятия".

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

Последовательность действий:

1) В поле "Что заменять" выбираем справочник "Договоры контрагентов" и выбираем договор конкретного контрагента. В поле "На что заменять"выбираем нужный нам договор контрагента

1) Нажимаем кнопку "Выполнить замену значений" и проверяем результат, открыв, например, документ "Заказ покупателя", а затем посмотрев структуру его подчиненности.

Обработка «Универсальный подбор и обработка объектов»

Обработка "Универсальные подбор и обработка объектов" предназначена для поиска объектов в справочниках и документах по произвольному условию и дальнейшей обработки найденных объектов. Обработка внешняя, поставляется на дисках ИТС.

Сначала заполняется объект поиска (нужный справочник или документ). Затем заполняется вкладка "Отбор по значениям реквизитов", в которой указываются условия по отбираемым объектам, и нажимается кнопка "Найти объекты".
На вкладке "Найденные объекты" отображаются данные произведенного отбора.
Закладка "Обработки" содержит варианты возможных действий, которые можно произвести над отобранной совокупностью объектов:

· Произвольный алгоритм – обработку пишет сам специалист

· Установка реквизитов – замена значений старых реквизитов новыми

· Перенумерация объектов – нумерация объектов в соответствии с заданными правилами

· Пометить на удаление

· Удалить

· Провести

· Отменить проведение

Пример 1:
Допустим, мы хотим установить единый договор в заказе поставщику для определенного контрагента.
Последовательность действий – в качестве объекта устанавливаем "Заказ поставщику", производим отбор по интересующему нас поставщику. Нажимаем кнопку "Найти объекты"

Видим заполненную вкладку "Найденные объекты"

Переходим на вкладку "Обработки" и выбираем вариант "Произвольный алгоритм".

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

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

Видим заполненную вкладку "Найденные объекты"


Переходим на вкладку "Обработки" и выбираем "Перенумерация объектов", в открывшемся окне изменяем префикс документов и нажимаем "Выполнить"

Обработка "Универсальный журнал документов"

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

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

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

Начать работу с обработкой необходимо, нажав кнопку "Состав" и определив тем самым список выводимых в журнале типов документов.

Затем произвести отбор, нажав кнопку на панели инструментов (фильтр)

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

Последовательность действий:

Определяем состав документов – приходный кассовый ордер и платежное поручение входящее, заполняем все графы по умолчанию

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

Встроенный отчет, позволяющий отследить движения по любому документу, зарегистрированному в системе. Вызвать отчет можно, выполнив Операции/Отчеты/ "Движения документа по регистрам".

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

Пример:
Посмотреть отчет по документу "Начисление зарплаты сотрудникам организации" и "Зарплата к выплате организации"

Последовательность действий:

Выбираем тип данных – документ "Начисление зарплаты сотрудникам организации"
Выбираем конкретный документ

Жмем на кнопку "Сформировать" и получаем результат:


Встроенный механизм, воспользоваться которым можно через Операции/Поиск ссылок на объекты.

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

Пример: Допустим, необходимо найти все документы, в проводках которых используется 51 счет (расчетный счет).
Последовательность действий:

В качестве типа данных выбираем бухгалтерский план счетов.
Выбираем 51 счет и жмем на кнопку "Найти". В нижней части появляются документы:

Обработка «Проведение документов»

Встроенный механизм, найти который можно в пункте меню "Операции"

Обработка содержит 2 вкладки: "Проведение документов" и "Восстановление последовательностей"


Необходимо отметить галочками все типы документов, которые требуется провести/перепровести и ввести необходимую дату проведения/перепроведения (сняв при этом отметку "Не ограничивать", иначе ввод даты будет невозможен).
Существует 3 варианта проведения документов:

Если выбрать вариант "Только проведенные", произойдет перепроведение документов в хронологическом порядке.
Если выбрать вариант "Только непроведенные" - проведутся все непроведенные документы.
Для проведения всех существующих (в том числе, непроведенных) документов выбирается вариант "Проведенные и непроведенные".

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

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

Граница последовательности (ГП) – позиция, последнего введённого документа в последовательность. Если после ГП есть другие документы в последовательности, то последовательность считается нарушенной и её необходимо восстановить.
Перед процедурой закрытия месяца настоятельно рекомендуется восстанавливать последовательность путем перепроведения документов.

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

Внешний вид обработки

*Обновить индекс.
Запускается формирование системой индекса поиска.
Для оптимизации процесса формирования индекса используется основной индекс и дополнительный, который формируется при вводе данных и содержит информацию по данным, введенным после последнего обновления основного индекса. Если флажок "Разрешить слияние индексов" установлен, то результат индексирования последних изменений добавится к основному индексу. Этот режим может потребовать достаточно большого времени (если размер основного индекса большой).

*Настройка.
Устанавливает, разрешать или нет полнотекстовый поиск.

После выполнения всех действий, можно переходить к работе со встроенной обработкой "Поиск данных". (Если данные действия не были выполнены, то при начале работы с обработкой "Поиск данных" система задаст вопрос об использовании полнотекстового поиска и сама установить дату актуальности индекса на текущую дату).
Механизм полнотекстового поиска в данных системы "1С:Предприятие" 8 позволяет осуществлять поиск в базе данных с указанием поисковых операторов (И, ИЛИ, НЕ, РЯДОМ и др.).

Удаление помеченных на удаление объектов

Существует как встроенная обработка (Операции/Удаление помеченных на удаление объектов), так и внешняя (поставляется на дисках ИТС). Рассмотрим каждую из них.

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

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

Использование внешней обработки "Удаление помеченных на удаление объектов" необходимо в случаях, когда:

· В базе много помеченных объектов, их удаление занимает большой промежуток времени, а при работе встроенной обработки "Удаление помеченных на удаление объектов" работа с базой невозможна (нет ограничения по поводу монопольного режима).

· Когда нет возможности доступа к встроенной обработке

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

Стандартная обработка (Сервис/Групповая обработка справочников и документов).
При работе в программе пользователи постоянно заполняют справочники и документы. Иногда возникает необходимость пакетного изменения содержимого справочников и документов (например, поменять ставку НДС в группе номенклатуры или назначить нового ответственного). Именно в таких ситуациях можно воспользоваться данной обработкой.

· Закладка "Объекты отбора" - указывается, какие именно объекты базы будут обрабатываться

*Тип объекта – справочник или документ

*Вид объекта – один или несколько справочников или документов(обрабатывать табличные части – делает доступным проведение изменений над табличными частями справочников)

*Отбор – условия для отбора элементов

· Закладка "Обработка" - результат выполненных программой (по условиям отбора) действий и вариантов изменения полученных результатов.

Пример работы:

Допустим, мы хотим в справочнике "физ. лица" увидеть комментарий "Предпенсионный возраст" у всех женщин - сотрудниц, которым в 2013 году будет 60 или более лет.
Закладка "Объекты отбора" будет выглядеть так:

После того, как были отобраны объекты, устанавливаем действие "Изменить:[Комментарий]", пишем нужный комментарий и жмем «Выполнить».

Стоит обратить внимание на такой пункт настройки обработки, как "Разрешить изменение реквизитов объектов" (увеличится количество действий, которые можно выполнять над выбранными объектами). Допустим, перед нами стоит задача изменить ставку НДС у каждой номенклатуры, которая является услугой.
Закладка "Объекты отбора"

После того, как были отобраны объекты, устанавливаем действие "Изменить:[Ставка НДС]", выбираем ставку и жмем "Выполнить".

Поиск и замена дублирующихся значений

Существует как встроенная обработка (Сервис/Поиск и замена дублирующихся значений справочников), так и внешняя, поставляемая на дисках ИТС.
Данная обработка позволяет выполнять поиск, замену и удаление дублирующихся элементов любого справочника. Действия, выполняемые данной обработкой, являются необратимыми.
Поиск может выполняться в двух режимах: по равному значению реквизита, по похожим словам (только для реквизитов строкового типа)

Типовой вариант обработки

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

Обработка «Свертка базы»

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

  • Увеличение скорости работы системы.
  • Уменьшение размера информационной базы.

Внешний вид:

1.Дата свертки . Под датой свертки понимается последняя секунда, входящая в сворачиваемый период. Так, для того чтобы свернуть в информационной базе данные за 2006 год, в качестве даты свертки требуется указать 31.12.2006 23:59:59.

Количество строк в документах ввода остатков . Данный параметр определяет максимально возможное количество строк в одном документе ввода остатков. Если параметр не заполнен (равен 0), то на каждый регистр/счет будет создано по одному документу без ограничения количества строк.

2.На втором этапе (вторая закладка) определяется, какие объекты и за какой период следует сворачивать.
Предусмотрены следующие способы обработки объектов:

    1. Не обрабатывать - свертка объектов не производится.
    2. На дату - сворачиваются объекты, предшествующие дате свертки.
    3. За период - сворачиваются все объекты, лежащие в указанном интервале.
    4. Очистить - удаляются все объекты, предшествующие дате свертки, при этом документы ввода остатков не создаются. Режим доступен только для регистров сведений.

Кнопка "Заполнить настройки по умолчанию" - документы и регистры накопления и бухгалтерии, периодические регистры сведений (с регистратором "корректировка записей регистра") сворачиваются на дату, периодические регистры сведений без регистратора "корректировка записей регистра" и не периодические регистры сведений - не сворачивается

3. 3.На третьем этапе (на третьей вкладке "Документы ввода остатков") будут сформированы документы ввода остатков по регистрам накопления, сведений, бухгалтерии. Созданные документы будут расположены в следующей секунде за датой свертки, т.е. если дата свертки 31.12.2006 23:59:59, то документы будут созданы 01.01.2007 00:00:00.

В качестве документов ввода остатков используются документы "Корректировка записей регистров" и "Операция (бухгалтерский и налоговый учет)".
Для этого необходимо последовательно нажать "Сформировать" и "Активировать".
Выполнение обработки может занимать продолжительное время. После выполнения свертки базы вносить какие-либо изменения или перепроводить документы в свернутом периоде категорически запрещается.

Рассмотрим в данной статье пошаговую инструкцию по созданию внешней обработки в 1С 8.3 в режиме управляемого приложения, соответственно, будем использовать управляемые формы. А самое главное — мы научимся подключать её к механизму «внешних обработок» конфигураций 1С, построенных на библиотеке стандартных подсистем версии 2.0 и новее.

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

Для этого сразу произведем необходимую настройку в программе (рассматривается конфигурация 1С 8.3: «Бухгалтерия предприятия 3.0» на управляемых формах).

Установка данного флажка дает нам возможность использовать внешние обработки.

Создание новой внешней обработки в 1С 8.3 на примере

Теперь переходим в конфигуратор. В меню «Файл» выбираем «Новый…». Откроется окно выбора вида создаваемого файла. Выбираем «Внешняя обработка»:

Откроется окно новой внешней обработки. Сразу зададим ей имя. Оно будет предложено при сохранении обработки на диск:

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

На форме у нас будет два реквизита:

  • ГруппаНоменклатуры – ссылка на справочник «Номенклатура»;
  • ВыбСтавкаНДС – ссылка на перечисление Ставки НДС.

Создаем реквизиты в колонке «Реквизит» в верхнем правом окне. Перетаскиваем мышкой их в левое верхнее окно. Новые реквизиты должны сразу отобразиться на форме внизу.

Очередность реквизитов можно менять стрелками «Вверх» – «Вниз»:

Получите 267 видеоуроков по 1С бесплатно:

Осталось добавить кнопку «Установить». В управляемых формах нельзя просто так добавить кнопку на форму. Даже если добавить её в структуру элементов формы, на самой форме её видно не будет. Кнопку обязательно нужно связать с командой, которую она будет выполнять. Переходим к закладке «Команды» и добавляем команду «УстановитьСтавкуНДС». В свойствах команды создаем действие. Обработчик команды выбираем «На клиенте». Команду можно добавить на форму также простым «перетаскиванием» в раздел с элементами формы.

В модуле формы будет создана одноименная процедура. В ней вызовем процедуру на сервере:

&НаКлиенте

Процедура УстановитьСтавкуНДС(Команда)

УстановитьСтавкуНДСНаСервере();

КонецПроцедуры

В процедуре на сервере напишем небольшой запрос и действия, связанные с установкой ставки НДС:

&НаСервере

Процедура УстановитьСтавкуНДСНаСервере()

Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Ссылка В ИЕРАРХИИ (&ГруппаНоменклатуры)
| И НЕ Номенклатура.ПометкаУдаления
| И НЕ Номенклатура.ЭтоГруппа»;

Запрос.УстановитьПараметр(«ГруппаНоменклатуры», ГруппаНоменклатуры);
РезЗапроса = Запрос.Выполнить();
ВыбДетЗаписи = РезЗапроса.Выбрать();

Пока ВыбДетЗаписи.Следующий() Цикл

Попытка
СпрНомОбъект.Записать();
Исключение
Сообщить(«Ошибка записи объекта «»» + СпрНомОбъект + «»»!
|» + ОписаниеОшибки());
КонецПопытки;

КонецЦикла;

КонецПроцедуры

Возвращаемся на закладку «Форма», добавляем на форму кнопку и связываем ее с командой:

Как таковая наша обработка готова к использованию. Чтобы ее вызвать, в режиме «1С Предприятия» нужно зайти в меню «Файл» – «Открыть» и выбрать созданный файл.

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

Для этого и служит раздел «Дополнительные отчеты и обработки».

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

Описание функции «Сведения О Внешней Обработке»

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

Функция СведенияОВнешнейОбработке() Экспорт

ДанныеДляРег = Новый Структура();
ДанныеДляРег.Вставить(«Наименование», «Установка ставки НДС»);
ДанныеДляРег.Вставить(«БезопасныйРежим», Истина);
ДанныеДляРег.Вставить(«Версия», «ver.: 1.001»);
ДанныеДляРег.Вставить(«Информация», «Обработка для установки ставки НДС в справочнике Номенклатура»);
ДанныеДляРег.Вставить(«Вид», «ДополнительнаяОбработка»);

ТабЗнКоманды = Новый ТаблицаЗначений;
ТабЗнКоманды.Колонки.Добавить(«Идентификатор»);
ТабЗнКоманды.Колонки.Добавить(«Использование»);
ТабЗнКоманды.Колонки.Добавить(«Представление»);

НовСтрока = ТабЗнКоманды.Добавить();
НовСтрока.Идентификатор = «ОткрытьОбработку»;
НовСтрока.Использование = «ОткрытиеФормы»;
НовСтрока.Представление = «Открыть обработку»;
ДанныеДляРег.Вставить(«Команды», ТабЗнКоманды);

Возврат ДанныеДляРег;

КонецФункции

Чтобы лучше понять, какие поля структуры регистрационных данных нужно использовать, посмотрим реквизиты справочника «Дополнительные отчеты и обработки»:

Как видим, все довольно просто. Не совпадает лишь один реквизит: «ВариантЗапуска» – «Использование». Если посмотреть код одного из общих модулей, то мы увидим, как возникает связка этих полей:

Чтобы определить, какие поля структуры обязательны, можно сначала не описывать ее, просто создать пустую, а далее воспользоваться отладчиком. Если трассировать модули при регистрации обработки, сразу становится ясно, какие поля требуются, а какие нет.

Подключение внешней обработки в 1С 8.3

Для работы с внешними обработками (а внешняя печатная форма тоже является внешней обработкой) существует объект ВнешниеОбработки.

Рассмотрим два возможных случая:

Внешняя обработка хранится на диске отдельно от информационной базы

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

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

Для программного открытия формы внешней обработки в 1С используется функция ПолучитьФорму() объекта ВнешниеОбработки. Функция имеет несколько параметров. Рассмотрим простое открытие основной формы обработки:


Форма= ВнешниеОбработки. ПолучитьФорму(АдресФайла) ;
Форма. Открыть() ;

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

//В переменной АдресФайла находится полный путь к файлу внешней обработки
Форма= ВнешниеОбработки. ПолучитьФорму(АдресФайла, "НеосновнаяФорма" ) ;
Форма. Открыть() ;

Открытие внешней обработки как объекта

Для того чтобы получить внешнюю обработку как объект используется функция Создать() объекта ВнешниеОбработки.

//В переменной АдресФайла находится полный путь к файлу внешней обработки
ОбъектОбработки= ВнешниеОбработки. Создать(АдресФайла) ;

По умолчанию все обработки открываются в безопасном режиме. Чтобы его отключить, используются следующие параметры:

//В переменной АдресФайла находится полный путь к файлу внешней обработки

Внешняя обработка или печатная форма сохранена в информационной базе

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

Для открытия внешней обработки нужно:

  1. Получить ее из хранилища.
  2. Сохранить файл с обработкой на диск.
  3. Открыть форму или получить объект обработки.
  4. Если мы имеем дело с внешней печатной формой, то можно заполнить стандартный реквизит СсылкаНаОбъект и вызвать экспортную функцию Печать.

//В переменной СпрСсылка находится ссылка на элемент справочника ВнешниеОбработки
ДвДанные= СпрСсылка. ХранилищеВнешнейОбработки. Получить() ;
АдресФайла= ПолучитьИмяВременногоФайла() ;
ДвДанные. Записать(АдресФайла) ;
ОбъектОбработки= ВнешниеОбработки. Создать(АдресФайла, Ложь ) ;



Последние материалы раздела:

Сколько в одном метре километров Чему равен 1 км в метрах
Сколько в одном метре километров Чему равен 1 км в метрах

квадратный километр - — Тематики нефтегазовая промышленность EN square kilometersq.km … квадратный километр - мера площадей метрической системы...

Читы на GTA: San-Andreas для андроид
Читы на GTA: San-Andreas для андроид

Все коды на GTA San Andreas на Андроид, которые дадут вам бессмертность, бесконечные патроны, неуязвимость, выносливость, новые машины, парашют,...

Классическая механика Закон сохранения энергии
Классическая механика Закон сохранения энергии

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