Скачать универсальную обработку объектов 1С 8.3.

В обычном приложении версии платформы 1С 8.2 и 8.1 (на обычных формах) была такая замечательная обработка, как «Универсальный подбор и обработка объектов». Она значительно упрощала жизнь программистам и администраторам программы.

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

Поиск и отбор объектов

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

На первой закладке мы должны выбрать объект, с которым собираемся работать. И так, в поле «Объект поиска» уже выбран документ «Реализация (акты, накладные)». Это потому, что до этого уже выбирали данный объект. Обработка умеет запоминать.

По кнопке «Настройка отбора», мы можем установить отбор практически по любому полю объекта:

Если данных отборов не достаточно, можно отобрать нужные объекты с помощью произвольного запроса. Для этого переведите переключатель «Режим отбора» в соответствующее положение.

После всех настроек объекты нужно отобрать. Нажмем на кнопку «Найти объекты» и смотрим результат отбора:

Обработка элементов

Перейдем на закладку «Обработки»:

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

Произвольный алгоритм

Обработка «Произвольный алгоритм» позволяет написать программу действий над объектами на внутреннем языке 1С. Обработка требует навыков программирования и ее описание достойно отдельной статьи. С ее помощью можно сделать практические действия над объектами:

Установка реквизитов

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

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

Перенумерация объектов

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

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

Теперь мы можем последовательно выполнить выбранные настройки, нажав кнопку «Выполнить».

По материалам: programmist1s.ru

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

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

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

    Можно вводить на основании и заполнять объекты сразу на основании нескольких объектов, а не одного

    Можно задавать расписание выполнение серверных команд (на сервере).

    Можно задавать режим «Безопасный» или «Небезопасный», т.е. запускать обработку с учетом ограничением прав или игнорировать их (как под полными правами)

    Можно задать режим использования: Не использовать, отладка, использовать. «Не использовать» - не в работе, «Отладка» - видно только администраторам, «Использовать в работе».

    Можно включить использование в формах объекта и в форма списков

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

    Можно настроить быстрый доступ к определенным командам внешних обработок.

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

Итак, что можно подключить к стандартным конфигурациям?

С точки зрения платформы можно подключать:

  • внешние обработки (файлы с расширением “epf”) ;
  • внешние отчеты (файлы с раширением «erf»).

С точки зрения прикладной области (конфигурации) можно подключать внешние обработки и отчеты с видом*:

  • Дополнительная обработка
    • Просто дополнительная обработка. Есть возможность настроить
  • Дополнительный отчет
    • Просто дополнительный отчет
  • Заполнение объекта
    • Свои кнопки по заполнению объектов (документа), ранее были только кнопки по заполнению табличной части.
  • Печатная форма
    • Дополнительная печатная форма (добаляется кнопка «Дополнительные печатные формы»)
  • Отчет
    • Отчет, прикрепляемый к объектам (к справочникам и документам).
  • Создание связанных объектов
    • Свой ввод на основании (в пункт меню «Ввод на основании» добавляется кнопка «Создание связанных объектов…»)

*на примере редакции «Управление небольшой фирмой ред. 1.2»

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

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

Функция СведенияОВнешнейОбработке() Экспорт
РегистрационныеДанные = Новый Структура;
РегистрационныеДанные.Вставить("Наименование", "Пример использование внешних обработок 8.2.");
РегистрационныеДанные.Вставить("БезопасныйРежим", Истина);
РегистрационныеДанные.Вставить("Версия", "1.0");

//ДополнительнаяОбработка
//ДополнительныйОтчет
//ЗаполнениеОбъекта
//Отчет
//ПечатнаяФорма
//СозданиеСвязанныхОбъектов
РегистрационныеДанные.Вставить("Вид", "ДополнительнаяОбработка");

РегистрационныеДанные.Вставить("Информация", "Обработка сделано по новому стандарту подключения внешних обработок 8.2. Пример обработки ""Hello Word"" ");

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


строкаКоманды.Идентификатор = "1";
строкаКоманды.Представление = "команда ""Hello Word"" (ОткрытиеФормы)";

строкаКоманды.Использование = "ОткрытиеФормы";

СтрокаКоманды = тзКоманд.Добавить();
строкаКоманды.Идентификатор = "2";
строкаКоманды.Представление = "команда ""Hello Word"" (ВызовКлиентскогоМетода)";
строкаКоманды.ПоказыватьОповещение = Истина;
строкаКоманды.Использование = "ВызовКлиентскогоМетода";

СтрокаКоманды = тзКоманд.Добавить();
строкаКоманды.Идентификатор = "3";
строкаКоманды.Представление = "команда ""Hello Word"" (ВызовСерверногоМетода)";
строкаКоманды.ПоказыватьОповещение = Истина;
строкаКоманды.Использование = "ВызовСерверногоМетода";

РегистрационныеДанные.Вставить("Команды", тзКоманд);

////////////// назначение (в каких объектах используется) /////////////////////////
//для печ.форм, заполнения, ввода свазанных объектов
//МассивНазначений = Новый Массив;
//МассивНазначений.Добавить("Документ.*"); // все документы назначаются
//МассивНазначений.Добавить("Документ.АвансовыйОтчет");
//МассивНазначений.Добавить("Документ.ЗаказПокупателя");
//РегистрационныеДанные.Вставить("Назначение", МассивНазначений);

Возврат РегистрационныеДанные;

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

Итак как видно функция заполняет структуру РегистрационныеДанные, которая имеет следующие элементы (параметры):

    Наименование – краткое наименование обработки

    Версия - информация о версии обработки

    Безопасный режим – отвечает за то, должна ли обработка выполняться учитывая права пользователя. Если поставить значение «Ложь», то обработка или отчет будут выполняться без учета ограничений прав (как под полными правами). Это возможность появилась именно в 8.2, где при создании внешних обработок и отчетов вторым параметром указывается режим.

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

  • Команды – таблица значений, в которой перечисляются используемые команды. Колонки таблицы значений:
    • Идентификатор – любая строка (идентификатор команды)
    • Представление – описание команды
    • Модификатор - строка (используется для дополнительных печатных форм)
    • ПоказыватьОповещение – окно оповещение будет появляться перед началом и после окончание выполнения (для команд клиентских и серверных без формы)
    • Использование – режим запуска обработки:
      • ОткрытиеФормы – откроется форма обработки
      • ВызовКлиентскогоМетода – вызов клиентского экспортного метода форма
      • ВызовСерверногоМетода – вызов экспортной метода из модуля обработки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте

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

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

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

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

&НаСервере

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

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

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

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

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

КонецЦикла;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Внимание!
Все обработки с дисков ИТС, предназначены для ознакомительных целей и исключительно для зарегистрированных пользователей ИТС.

Подбор и обработка объектов. (Универсальная)

Осуществляет поиск объектов в документах и справочниках, соответствующих определённым условиям. Обрабатывает итоги поиска.

Свёртка информационной базы. (Универсальная)

Производит свёртку ИБ типовых конфигураций:

  • УПП 3.1.
  • БП 1.6.
  • УТ 10.3.

Регистрация изменений для обмена. (Универсальная)

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

Преобразование журнала действий пользователя. (Универсальная)

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

Полнотекстовый поиск в данных. (Универсальная)

Индексирование и поиск в данных.

Поиск и замена значений. (Универсальная)

Ищет и производит замену ссылочных значений в объектах ИБ.

Настройка технологического журнала. (Универсальная)

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

Консоль заданий. (Универсальная)

Мониторит фоновые и регламентные задания. Удаляет, создаёт новые.

Конвертация внешних обработок. (Универсальная)

Изменение конфиденциальной информации. (Универсальная)

Выборочное изменение или очистка ИБ от определённой информации.

Групповое изменение реквизитов. (Универсальная)

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

Выгрузка и загрузка пользователей. (Универсальная)

Выгружает и загружает пользователей ИБ в файл XML.

Выгрузка данных во внешние базы данных. (Универсальная)

Выгружает структуры данных во внешние СУБД, посредством ADO в двух режимах:

  • Выгрузить всё
  • Выгрузить изменения (используется для синхронизации изменений рабочей ИБ, с ИБ – приемником). Этот режим использует механизмы плана обмена.

Поддерживает следующие СУБД:

  • Microsoft SQL
  • IBM DB2
  • Oracle
  • PostgreSQL
  • MySQL

Выгрузка и загрузка данных XML. (Универсальная)

Выгружает и загружает данные в ИБ, как полностью, так и частично. Применяется для переноса данных между, похожими по объектному составу, конфигурациями.

Загрузка данных из табличного документа. (Универсальная)

Производит загрузку данных в справочники и табличные части из табличных документов.

Работает в толстом клиенте в режиме обычного приложения.

Консоль запросов. (Универсальная)

Оказывает огромную помощь при составлении отчётов и создании запросов.