Обработка в 1С

Для БП 2.0, ЗУП 2.5, УТ 10.3, КА 1.1, УПП 1.3

В верхем меню заходим Сервис->Дополнительные отчеты и обработки->Дополнительные внешние обработки.

Появляется форма списка справочника внешних обработок. В верхнем меню нажимаем кнопку Добавить.

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

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

На этом все! Процесс добавления обработки в конфигурацию завершен. Чтобы впоследствии открывать эту обработку, заходите по старому пути: Сервис->Дополнительные отчеты и обработки->Дополнительные внешние обработки.

Для БП 3.0, ЗУП 3.0, УТ 11, ERP 2.0.

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

Для первого случая добавим обработку по заполнению справочника номенклатуры из Эксель.

Переходим в соответствующий раздел программы:

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

В списке нажимаем Создать:

В открывшемся диалоговом окне выбираем нужный файл с обработкой:

Заполнилась карточка нового внешнего объекта в программе, осталось только настроить размещение (разделы программы, из которых будет доступна обработка):

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

Записываем и закрываем карточку внешнего объекта:

Теперь откроем обработку из интерфейса:

Список пустой, нажимаем Настроить список:

Выбираем нашу обработку:

Теперь она доступна для выбора. Чтобы открыть обработку, нужно нажать Выполнить:

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

При желании список размещения можно скорректировать (не добавить дополнительное размещение, а убрать лишнее):

Для принятия изменения карточку внешнего объекта также нужно записать.

Для того, чтобы воспользоваться обработкой, необходимо зайти в конкретный объект базы (из списка размещения), нажать пункт Заполнить в командной панели и выбрать команду:

Здравствуйте, мне необходимо сделать реквизит в документе, который при нажатии в форме списка можно редактировать, то есть открывается новая форма на ней указывается значение и при закрытии должен передаваться параметр, но у меня возникает ошибка при закрытии формы редактирования Недопустимая операция для неоткрытой формы и при этом открывается еще и форма документа, подскажите что не так делаю?
Форма списка:
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
// Вставить содержимое обработчика.
// Если поле, по которому был произведен двойной клик, является полем Наличие акта сверки, то должна произойти специальная обработка, состоящая в открытии формы редактирования реквизита
ИмяПоля=Поле.Имя;
Если ИмяПоля=»НаличиеАктаСверки» Тогда
ФормаРедактированияРеквизита=ПолучитьФорму(«Документ.СверкаВзаиморасчетов.Форма.ФормаРедактированияРеквезита»);
Значение=ФормаРедактированияРеквизита.ОткрытьМодально();
КонецЕсли;
КонецПРоцедуры;
//в модуле формы редактирования реквизита
&НаКлиенте
Процедура ПриЗакрытии()
Сообщить(ЭтотОбъект.Элементы.НаличиеАктаСверки.ВыделенныйТекст);
НаличиеАктаСверки=ЭтотОбъект.Элементы.НаличиеАктаСверки.ВыделенныйТекст;
ЭтаФорма.Закрыть(ЭтотОбъект.Элементы.НаличиеАктаСверки.ВыделенныйТекст);
КонецПроцедуры

В 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С.

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

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

В конфигураторе встроенные в конфигурацию обработки 1С находятся в ветке Обработки.

Внешние обработки 1С открываются и в конфигураторе и в Предприятии с помощью меню Файл/Открыть.

Безопасность. Обратите внимание на порядок выполнения модулей. Модуль объекта обработки 1С выполняется автоматически при открытии обработки 1С в режиме Предприятия. Поэтому, если Вы открываете обработку написанную злоумышленником – она может быть выполнена автоматически без лишних вопросов.

Как сделать обработку 1С самостоятельно

Итак, приступаем к самому интересному – алгоритм создания обработки 1С самостоятельно с нуля.

  • Заходим в конфигуратор
  • Если Вам нужно создать обработку, встроенную в конфигурацию – нажмите правой кнопкой мыши на ветке Обработки и выберите Добавить
  • Если Вам нужно создать внешнюю обработку, выберите Файл/Новый, в списке вариантов файлов выберите Обработка
  • Перед Вами открыт редактор обработки 1С. Две основные детали обработки 1С – это форма и модуль обработки 1С. В зависимости от предназначения этой конкретной обработки 1С, у нее может не быть или формы (если она используется как класс с функциями) или модуля (если она используется как интерфейсное окно, например, рабочий стол пользователя)
  • Добавим несколько реквизитов. Они нам потребуются для размещения на форме нескольких полей
  • Добавим форму. Если Вы работаете в конфигурации для толстого клиента – 1С создаст по умолчанию обычную форму, иначе – управляемую
  • Добавим на форму несколько полей и кнопку. Пример, как это сделать можно посмотреть в уроке по выгрузке файла из 1С
  • В модуле обработки 1С добавим пару функций. Вот так выглядит функция, которую можно будет вызывать позже извне обработки 1С (используя ее как «класс»). Публичные функции (которые будут видны извне обработки 1С) должны быть помечены как Экспорт
    Пример дальнейшего использования обработки 1С как класс:
    обСозданиеДокументов = Обработки.СозданиеДокументов.СоздатьОбработку(); //создаем экземпляр класса, конструктор выполняется неявно с помощью автозапуска, см . далее
    обСозданиеДокументов.СоздатьДокументы(); //вызываем метод
  • Строки кода, указанные в конце модуля объекта обработки 1С будут выполнены автоматически. Их обычно используют как неявный конструктор, инициализируя нужные переменные. Подробную информацию можно посмотреть в уроке про модуль 1С