Запуск обработки в 1С 8.3: от файла .epf до проверки результата
Содержание
Чтобы выполнить внешнюю обработку
в 1С 8.3, откройте главное меню (кнопка с тремя полосками слева вверху) и выберите Файл → Открыть или нажмите Ctrl+O. Укажите файл .epf (обработка) или .erf (отчёт), подтвердите предупреждение безопасности, заполните параметры на форме и нажмите кнопку запуска. Если обработкой будут пользоваться регулярно, её лучше один раз зарегистрировать в списке дополнительных обработок.
Частое заблуждение: обработку «просто запускают», а потом разбираются. На деле правильно делать обработки в 1С Предприятии — это подготовка, тестовый прогон на копии, контроль хода выполнения и проверка протокола. Изменения, которые обработка внесла в сотни документов, откатить кнопкой «Отмена» нельзя.
Инструкция общая для платформы 8.3 с интерфейсом «Такси»: Бухгалтерия 3.0, ЗУП 3.1, Управление торговлей 11 и другие конфигурации на БСП. Отличаются только названия разделов, где лежат встроенные обработки.
Что сделать до первого запуска обработки
Обработка — это программа, которая выполняется с правами вашего пользователя. Она может читать и менять данные базы, создавать файлы на диске, обращаться в интернет. Поэтому прежде чем запускать её, ответьте себе на три вопроса.
- 📦 Откуда файл. От своего программиста, от фирмы-разработчика конфигурации, от франчайзи или скачан с форума. В последнем случае откройте модуль в Конфигураторе или попросите специалиста посмотреть код.
- 🎯 Для какой конфигурации. Обработка, написанная под Бухгалтерию 3.0, в ЗУП или УТ обычно не откроется: она обращается к справочникам и документам, которых там нет.
- ✏️ Читает или пишет. Отчёт, выгрузка в Excel, проверка данных ничего не меняют. Групповое перепроведение, заполнение реквизитов, загрузка из файла — меняют.
Для обработок, которые пишут в базу, порядок такой:
- Сделайте копию базы
: выгрузка
.dtчерез Конфигуратор (Администрирование → Выгрузить информационную базу) или резервная копия СУБД для клиент-серверного варианта. - Разверните копию как отдельную базу и прогоните обработку там.
- Сравните результат с ожиданием на 2-3 конкретных документах.
- Только после этого запускайте в рабочей базе — в тот момент, когда в ней работает меньше всего людей.
Обработка, которая массово меняет документы, без копии базы — главный источник необратимых ошибок. Журнал регистрации покажет, что изменилось, но вернуть старые значения сам не сможет.
Как открыть внешнюю обработку или отчёт в 1С
Есть два способа. Первый годится для разового запуска, второй — для постоянной работы.
| Способ | Когда подходит | Что нужно |
|---|---|---|
Файл → Открыть | Разовая задача, проверка, исправление данных | Право на интерактивное открытие внешних обработок |
| Дополнительные отчёты и обработки | Обработка нужна регулярно, нескольким пользователям | Права администратора для регистрации; в файле — описание для БСП |
Разовое открытие через меню «Файл»
- Нажмите кнопку главного меню (три полоски в левом верхнем углу окна).
- Выберите
Файл → Открытьили нажмитеCtrl+O. - В окне выбора файла укажите
.epfили.erf. - Появится окно «Предупреждение безопасности»: программа сообщает, что файл может быть опасен. Если источник надёжный, разрешите открытие.
- Откроется форма обработки.
Если пункта Открыть в меню нет или 1С пишет о нарушении прав доступа, у пользователя нет нужного права. Его выдаёт администратор: в профиле групп доступа или в роли пользователя должно быть разрешено интерактивное открытие внешних обработок и отчётов.
Предупреждение безопасности появляется, когда у пользователя включена защита от опасных действий. Отключать её ради удобства не стоит: она срабатывает и на макросы в файлах, и на чужие обработки, присланные по почте.
Регистрация в дополнительных обработках
В конфигурациях на БСП обработку можно встроить в интерфейс, и она появится в нужном разделе без поиска файла.
- Включите функцию:
Администрирование → Печатные формы, отчеты и обработки→ флажок «Дополнительные отчеты и обработки». - Перейдите по ссылке «Дополнительные отчеты и обработки» в том же разделе.
- Нажмите «Добавить из файла» и укажите
.epfили.erf. - В карточке проверьте вид обработки, разделы размещения и пользователей, которым она доступна.
- Запишите карточку.
После этого обработку запускают из раздела, указанного в карточке, — командой «Дополнительные обработки» или «Дополнительные отчеты».
Подключить так можно не любой файл. Обработка должна содержать служебную экспортную функцию СведенияОВнешнейОбработке() в модуле объекта — по ней программа узнаёт вид, команды и разделы. Если её нет, регистрация не пройдёт, и остаётся разовое открытие через Файл → Открыть.
Встроенные обработки конфигурации
Не все обработки внешние. В типовых конфигурациях есть десятки встроенных: групповое изменение реквизитов, поиск и удаление дублей, удаление помеченных объектов. В Бухгалтерии 3.0 основные из них собраны в Администрирование → Обслуживание.
Если нужную обработку в разделах не видно, включите команду «Все функции»: главное меню → Сервис → Параметры → флажок «Отображать команду “Все функции”». Затем главное меню → Все функции → ветка «Обработки». Там полный список, включая служебные.
Параметры и выбор файлов на форме обработки
Форма у каждой обработки своя, но элементы повторяются. Разберите их до нажатия главной кнопки.
- 📅 Период. Начало и конец. Частая ошибка — оставить пустую дату начала: тогда обработка возьмёт все данные с начала учёта.
- 🏢 Организация. При нескольких фирмах в базе пустое поле обычно означает «все организации».
- 🔍 Отбор. Список условий: вид документа, контрагент, склад, ответственный. Чем уже отбор, тем быстрее работа и меньше риск задеть лишнее.
- ☑️ Флажки режимов. «Только проверка», «Перезаписывать заполненные», «Проводить после изменения». Прочитайте каждый — именно они решают, будет ли обработка писать в базу.
- 📁 Путь к файлу. Для загрузки и выгрузки.
Как выбрать файл для загрузки или выгрузки
Поле пути обычно имеет кнопку выбора «…». Она открывает стандартный диалог Windows. Несколько практических моментов:
- Файл для загрузки закройте в Excel перед запуском. Открытый файл может быть заблокирован на чтение.
- Проверьте кодировку текстовых файлов. CSV из сторонних программ нередко приходит в
UTF-8, а обработка ждётWindows-1251, или наоборот. Признак — «кракозябры» вместо кириллицы в предварительном просмотре. - В клиент-серверной базе путь вида
C:\Загрузка\файл.xlsxможет читаться на сервере 1С, а не на вашем компьютере — это зависит от того, как написана обработка. Если на своём диске файл есть, а обработка пишет, что его нет, положите файл в сетевую папку, доступную серверу, и укажите UNC-путь\\server\share\файл.xlsx. - В веб-клиенте работа с файлами требует установленного расширения для работы с файлами. Браузер предложит его поставить при первом выборе файла.
Сохраните удачную настройку. Во многих формах есть команда сохранения и восстановления настроек в меню «Ещё». Отбор и флажки при следующем запуске не придётся набирать заново.
Выполнение обработки и контроль хода работы
Нажмите кнопку запуска. Она называется по-разному: «Выполнить», «Загрузить», «Заполнить», «Сформировать». Дальше обработка работает одним из двух способов.
В текущем сеансе. Форма «замирает», курсор становится часами, иногда в строке состояния бежит индикатор. Пока процесс не закончился, в этом окне 1С работать нельзя. Можно открыть второй сеанс — если хватает лицензий.
Фоновым заданием. Обработки на БСП часто запускают долгие операции в фоне. Вы видите окно ожидания с индикатором, а сама работа идёт на сервере. Окно можно закрыть — задание продолжится.
Где посмотреть фоновые задания
в Бухгалтерии 3.0: Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания, вкладка фоновых заданий. Там видно состояние: выполняется, завершено, завершено аварийно.
Сколько ждать и когда прерывать
Ориентируйтесь на тестовый прогон: если на копии 500 документов обработались за 3 минуты, то 5 000 в рабочей базе займут около 30 минут, а при работе пользователей — дольше из-за блокировок.
Прерывать выполнение стоит только в крайнем случае:
- обработка в текущем сеансе прерывается, если разработчик предусмотрел это в коде, — тогда реагирует сочетание
Ctrl+Break; - если прерывания нет, остаётся завершить сеанс через консоль кластера или диспетчер задач.
Принудительное завершение рвёт только ваш сеанс, но данные, записанные до этого момента, останутся. Обработка, которая меняет документы по одному, будет выполнена частично: часть документов изменена, часть нет. Поэтому после аварийной остановки обязательно проверьте результат по списку.
Завершать рабочий процесс rphost на сервере ради одной зависшей обработки нельзя: оборвутся сеансы всех пользователей, работающих через этот процесс. Завершайте конкретный сеанс в консоли администрирования кластера.
Проверка протокола и результата
Обработка закончила работу — это ещё не значит, что она сделала то, что нужно. Проверка идёт в три этапа.
Сообщения на форме
Большинство обработок пишет итог в окно сообщений внизу формы: сколько объектов обработано, какие пропущены и почему. Прочитайте его целиком, а не только последнюю строку. Сообщения вида «Документ … не проведён» или «Не найден элемент справочника …» означают, что часть данных не обработана.
Сообщения можно скопировать: выделите текст в окне, Ctrl+A, Ctrl+C. Сохраните их в файл — пригодится, если завтра спросят, что именно менялось.
Журнал регистрации
Полный след изменений хранит журнал регистрации: Администрирование → Обслуживание → Журнал регистрации.
- Установите отбор по пользователю — тому, под кем запускали обработку.
- Задайте интервал: от времени запуска до окончания.
- Отберите события изменения данных и ошибки.
В журнале видно, какие объекты записаны, в какое время и с какой ошибкой упала операция. Если записей нет совсем, проверьте уровень логирования: его задают в Конфигураторе (Администрирование → Настройка журнала регистрации), и он может быть отключён.
Выборочная проверка данных
Возьмите 3-5 объектов, которые точно должны были измениться, и откройте их. Затем 1-2 объекта, которые меняться не должны. Для бухгалтерских обработок сравните оборотно-сальдовую ведомость по нужному счёту до и после запуска: если сформировать её заранее, расхождение будет видно сразу.
Ошибки при запуске обработок и что с ними делать
Ниже — сообщения, которые встречаются чаще других, и порядок действий.
Ещё одна неприятная ситуация — обработка «отработала», но ничего не изменилось. Почти всегда виноват отбор или флажок режима: включено «Только проверка», не задан период, выбрана не та организация. Перечитайте настройки формы перед повторным запуском.
Если после обновления конфигурации старая обработка перестала работать, это нормально: разработчики переименовывают реквизиты и меняют структуру документов. Спросите у автора обработки версию под текущий релиз программы.
Если нужно сделать свою обработку
Иногда «сделать обработку» значит не запустить, а создать. Минимальный путь такой:
- Откройте базу в Конфигураторе.
Файл → Новый→ «Внешняя обработка».- Добавьте реквизиты (параметры формы), создайте форму и команду.
- В модуле опишите действия на встроенном языке.
- Сохраните файл с расширением
.epfи откройте его в пользовательском режиме черезФайл → Открыть.
Простейший пример — обработка, которая выводит число непроведённых документов реализации за период. Код в модуле формы:
&НаКлиенте
Процедура Посчитать(Команда)
Количество = ПосчитатьНаСервере(Объект.НачалоПериода, Объект.КонецПериода);
Сообщить(СтрШаблон("Непроведённых документов: %1", Формат(Количество, "ЧН=0; ЧГ=0")));
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПосчитатьНаСервере(НачалоПериода, КонецПериода)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КОЛИЧЕСТВО(Р.Ссылка) КАК Количество
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Р
|ГДЕ
| НЕ Р.Проведен
| И НЕ Р.ПометкаУдаления
| И Р.Дата МЕЖДУ &Начало И &Конец";
Запрос.УстановитьПараметр("Начало", НачалоПериода);
Запрос.УстановитьПараметр("Конец", КонецДня(КонецПериода));
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка.Количество;
КонецЕсли;
Возврат 0;
КонецФункции
Здесь НачалоПериода и КонецПериода — реквизиты обработки типа «Дата», размещённые на форме, а Посчитать — команда формы с кнопкой. Обработка только читает данные, поэтому её можно запускать в рабочей базе без копии.