Если вы работаете с 1С:Предприятие, то рано или поздно столкнётесь с термином «обработка». Это один из ключевых объектов платформы, который позволяет автоматизировать рутинные операции, расширять функционал типовых конфигураций и решать узкоспециализированные задачи без глубокого программирования. Но что именно скрывается за этим понятием? Почему одни обработки встраиваются в конфигурацию, а другие подключаются «снаружи»? И как самому создать обработку, если вы не профессиональный разработчик?
В этой статье мы разберём обработки в 1С с разных сторон: от базовых принципов до практических примеров. Вы узнаете, чем внешние обработки отличаются от встроенных, где их применяют бухгалтеры, кадровики и логисты, а также получите пошаговую инструкцию по созданию простой обработки в Конфигураторе. Особое внимание уделим типичным ошибкам новичков и способам их избежать — это сэкономит вам часы отладки.
Материал будет полезен как пользователям, которые хотят оптимизировать свою работу, так и начинающим программистам 1С, делающим первые шаги в разработке. Не требуется глубоких знаний 1С:Предприятие 8 — мы объясним всё на доступных примерах.
Что такое обработка в 1С и зачем она нужна
Обработка в 1С:Предприятие — это самостоятельный объект конфигурации, предназначенный для выполнения определённых действий над данными без изменения основной структуры программы. Проще говоря, это «мини-программа» внутри 1С, которая может:
- 📊 Обрабатывать данные — например, массово исправлять реквизиты документов или переносить остатки между периодами.
- 🔄 Автоматизировать рутинные операции — как загрузка прайс-листов из Excel или выгрузка отчётов в PDF.
- 🔧 Расширять функционал — добавлять новые кнопки, формы или логику, которой нет в типовой конфигурации.
- 🔗 Интегрироваться с внешними системами — обмениваться данными с сайтами, банками или другими программами.
Главное преимущество обработок — они не требуют изменения конфигурации. Это значит, что вы можете подключить внешнюю обработку к любой базе 1С (даже если у вас нет прав на редактирование конфигурации), и она будет работать поверх стандартных механизмов. Например, бухгалтер может использовать обработку для сверки расчётов с контрагентами, не дожидаясь обновления от разработчиков.
Обработки делятся на два основных типа:
- Внутренние (встроенные) — создаются непосредственно в конфигурации и хранятся внутри неё. Используются для расширения функционала конкретной базы.
- Внешние — сохраняются в отдельных файлах с расширением
.epf(для обычных обработок) или.erf(для отчётов). Их можно передавать между базами, редактировать без доступа к конфигуратору и подключать по мере необходимости.
Виды обработок в 1С и их применение
Обработки в 1С:Предприятие 8 можно классифицировать не только по способу хранения (внутренние/внешние), но и по их назначению. Рассмотрим основные категории с примерами, где они применяются на практике.
| Тип обработки | Примеры использования | Кто чаще всего применяет |
|---|---|---|
| Обработки документов | Массовое проведение, печать пакетов документов, исправление ошибок в реквизитах | Бухгалтеры, логисты, менеджеры по продажам |
| Обработки справочников | Загрузка номенклатуры из Excel, групповой перенос элементов между справочниками, очистка дублей | Администраторы базы, кладовщики |
| Отчёты и аналитика | Создание нестандартных отчётов, сводные таблицы по произвольным критериям, экспорт данных в Power BI | Аналитики, финансовые директора |
| Интеграционные обработки | Обмен данными с сайтами (например, 1С-Битрикс), банк-клиентами, ЕГАИС, маркетплейсами | IT-специалисты, разработчики |
| Сервисные обработки | Очистка базы от «мусора», архивация данных, резервное копирование | Администраторы 1С |
Рассмотрим подробнее интеграционные обработки, так как они часто вызывают вопросы. Например, для обмена данными с маркетплейсами (Озон, Wildberries, Яндекс Маркет) используются обработки, которые:
- 📥 Выгружают остатки товаров и цены из 1С на площадку.
- 📤 Загружают заказы с маркетплейса обратно в 1С для дальнейшей обработки.
- 🔄 Синхронизируют статусы заказов (оплачено, отгружено, возвращено).
Такие обработки обычно разрабатываются под конкретного партнёра (например, Озон API или Wildberries Seller) и требуют настройки прав доступа, токенов и формата обмена (JSON, XML).
Перед использованием внешней обработки для интеграции проверьте её совместимость с вашей версией 1С. Некоторые обработки пишутся под конкретные релизы платформы (например, 8.3.20) и могут не работать в более новых или старых версиях.
Внешние vs внутренние обработки: что выбрать
Выбор между внешней и внутренней обработкой зависит от целей, прав доступа и частоты использования. Рассмотрим ключевые различия в формате сравнительной таблицы.
| Критерий | Внутренняя обработка | Внешняя обработка |
|---|---|---|
| Хранение | Внутри конфигурации (в дереве объектов) | Отдельный файл (.epf или .erf) |
| Права доступа | Требует прав на изменение конфигурации | Можно подключить без прав на конфигуратор |
| Переносимость | Привязана к конкретной базе | Можно использовать в разных базах |
| Обновления | Обновляется вместе с конфигурацией | Можно обновлять отдельно, заменяя файл |
| Безопасность | Контролируется на уровне конфигурации | Риск подключения недоверенных файлов |
Когда использовать внутреннюю обработку:
- 🔧 Если обработка нужна только для одной базы и тесно связана с её логикой (например, доработка отчёта под специфические требования компании).
- 🛡️ Если важна безопасность — внутренние обработки сложнее случайно удалить или подменить.
- 🔄 Если обработка должна обновляться вместе с конфигурацией (например, при переходе на новый релиз 1С).
Когда выбрать внешнюю обработку:
- 📤 Если нужно переносить обработку между базами (например, универсальный загрузчик прайсов для нескольких филиалов).
- 👥 Если у пользователей нет прав на изменение конфигурации, но требуется дополнительный функционал.
- 🔧 Если обработка разрабатывается сторонними специалистами и поставляется как готовое решение.
Можно ли преобразовать внутреннюю обработку во внешнюю?
Да, это возможно. Для этого в Конфигураторе нужно:
- Найти обработку в дереве объектов.
- Выбрать
Файл → Сохранить как...и указать расширение.epf. - Внешнюю обработку можно будет подключить через меню
Файл → Открытьв режиме 1С:Предприятие.
Обратите внимание: при этом связь с исходной внутренней обработкой теряется, и дальнейшие изменения придётся вносить в оба экземпляра отдельно.
Как создать обработку в 1С: пошаговая инструкция
Создать простую обработку в 1С:Предприятие 8.3 можно даже без глубоких знаний программирования. Рассмотрим процесс на примере внешней обработки, которая будет выгружать список номенклатуры в Excel.
Скачать и установить 1С:Предприятие в режиме Конфигуратор|Подготовить шаблон Excel-файла (если нужен специфический формат)|Получить права на создание объектов (для внутренних обработок)|Определить цель обработки (что именно она должна делать)-->
Шаг 1. Запуск Конфигуратора
Откройте вашу базу 1С в режиме Конфигуратор. Для этого:
- Запустите 1С:Предприятие.
- В списке баз выберите нужную и нажмите
Конфигуратор(обычно кнопка расположена справа от названия базы). - Введите логин и пароль администратора (если требуется).
Шаг 2. Создание новой обработки
В дереве объектов конфигурации:
- Кликните правой кнопкой по папке
Обработки. - Выберите
Добавить → Обработка. - Задайте имя (например,
ВыгрузкаНоменклатурыВExcel) и нажмитеГотово.
Шаг 3. Настройка формы обработки
Откроется конструктор обработки. Здесь нужно:
- Перейти на вкладку
Формыи создать новую форму (кнопкаДобавить). - В форму добавьте элементы управления:
- Кнопку
Выгрузить(типКнопка). - Поле для выбора файла
ПутьКФайлу(типПоле ввода). - Таблицу для отображения данных
ТаблицаНоменклатуры(типТабличное поле).
- Кнопку
Шаг 4. Написание кода
Перейдите на вкладку Модуль объекта и добавьте следующий код для обработки нажатия на кнопку Выгрузить:
Процедура Выгрузить(Команда)
// Получаем данные из справочника Номенклатура
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.Наименование КАК Наименование,
| Номенклатура.Артикул КАК Артикул
|ИЗ
| Справочник.Номенклатура КАК Номенклатура";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
// Создаём объект Excel
Excel = Новый COMОбъект("Excel.Application");
Книга = Excel.Workbooks.Add();
Лист = Книга.Worksheets(1);
// Заполняем заголовки
Лист.Cells(1, 1).Value = "Наименование";
Лист.Cells(1, 2).Value = "Артикул";
Лист.Cells(1, 3).Value = "Ссылка";
// Заполняем данные
НомерСтроки = 2;
Пока Выборка.Следующий() Цикл
Лист.Cells(НомерСтроки, 1).Value = Выборка.Наименование;
Лист.Cells(НомерСтроки, 2).Value = Выборка.Артикул;
Лист.Cells(НомерСтроки, 3).Value = Выборка.Ссылка;
НомерСтроки = НомерСтроки + 1;
КонецЦикла;
// Сохраняем файл
ПутьКФайлу = Объект.ПутьКФайлу;
Если ПутьКФайлу = "" Тогда
ПутьКФайлу = КаталогВременныхФайлов() + "Номенклатура.xlsx";
КонецЕсли;
Книга.SaveAs(ПутьКФайлу);
Excel.Quit();
Сообщить("Выгрузка завершена! Файл сохранён по пути: " + ПутьКФайлу);
КонецПроцедуры
Шаг 5. Сохранение и тестирование
Сохраните обработку (Файл → Сохранить) и запустите 1С в режиме Предприятие. Откройте обработку через меню Файл → Открыть и проверьте её работу.
Для внешних обработок обязательно указывайте версию платформы, с которой они совместимы. Например, обработка, написанная для 1С 8.3.18, может не работать в 8.3.22 из-за изменений в синтаксисе.
Типичные ошибки при работе с обработками и как их избежать
Даже опытные пользователи 1С сталкиваются с ошибками при создании или подключении обработок. Рассмотрим самые распространённые проблемы и способы их решения.
⚠️ Внимание: Если обработка содержит код для работы с COM-объектами (например, Excel или Word), на компьютере должны быть установлены соответствующие приложения (Microsoft Office). В противном случае при выполнении возникнет ошибка Не удалось создать COM-объект.
Ошибка 1: «Обработка не является обработкой 1С»
Эта ошибка возникает, когда вы пытаетесь открыть файл, который:
- 🔴 Повреждён (например, некорректно сохранён или скачан с ошибками).
- 🔴 Не является обработкой (перепутали с отчётом или другим объектом).
- 🔴 Создан в другой версии платформы (например, обработка для 8.2 не откроется в 8.3).
Решение: Проверьте расширение файла (должно быть .epf), попробуйте открыть его на другом компьютере или пересохраните обработку в актуальной версии.
Ошибка 2: «Недостаточно прав для выполнения операции»
Эта проблема характерна для внутренних обработок, если:
- 🔐 У пользователя нет прав на
Изменение конфигурации. - 🔐 Обработка требует доступа к
административным функциям(например, изменение ролей).
Решение: Обратитесь к администратору базы или используйте внешнюю обработку, если она решает вашу задачу.
Ошибка 3: «Неверный формат данных» при обмене с Excel
Часто возникает при выгрузке/загрузке данных, если:
- 📊 Типы данных не совпадают (например, в 1С число, а в Excel — текст).
- 📊 Используются запрещённые символы (кавычки, апострофы в наименованиях).
- 📊 Формат ячеек неверный (даты в Excel хранятся как числа, а в 1С — как даты).
Решение: Перед выгрузкой преобразуйте данные к универсальному формату (например, через Формат(Значение, "ЧДЦ=dd.MM.yyyy") для дат).
Как отладить обработку, если она не работает?
В Конфигураторе можно использовать пошаговую отладку:
- Откройте модуль обработки.
- Установите точки останова (клик левой кнопкой рядом с номером строки).
- Запустите обработку в режиме отладки (
Отладка → Начать отладку). - Следите за значениями переменных в окне
Отладчик.
Это поможет найти строку, на которой происходит ошибка.
Где скачать готовые обработки для 1С
Не всегда нужно писать обработку с нуля — многие задачи уже решены другими пользователями или разработчиками. Вот проверенные источники для поиска готовых решений:
- 🌐 Официальный каталог 1С (solutions.1c.ru) — здесь публикуются обработки, прошедшие moderation от 1С. Минус: многие решения платные.
- 💻 Инфостарт (infostart.ru) — крупнейшая площадка для разработчиков 1С. Есть как бесплатные, так и платные обработки. Перед скачиванием читайте отзывы!
- 📂 GitHub — если ищете открытый код, попробуйте поиск по запросам вроде
1C processingили1С обработка Excel. Пример: репозитории с обработками. - 📌 Форумы и сообщества — на форуме 1С или в Телеграм-чатах часто делятся бесплатными обработками для типовых задач.
⚠️ Внимание: Скачивая обработки с сторонних ресурсов, проверяйте их на вирусы и потенциально опасный код. Например, в модуле обработки может быть строка, отправляющая ваши данные на сторонний сервер. Всегда открывайте код перед использованием!
Как проверить обработку на безопасность:
- Откройте файл
.epfв Конфигураторе. - Перейдите в модуль объекта и просмотрите код на наличие подозрительных функций:
HTTPЗапрос,HTTPСоединение— могут использоваться для отправки данных.ЗаписатьФайл,КопироватьФайл— если запись идёт в системные папки.Выполнитьс динамически формируемым кодом — признак потенциальной уязвимости.
Примеры полезных обработок для разных задач
Чтобы показать возможности обработок на практике, рассмотрим 5 готовых решений, которые экономят время пользователям 1С.
| Название обработки | Назначение | Для кого полезна | Сложность настройки |
|---|---|---|---|
| Загрузка из Excel в 1С | Импорт данных из таблиц Excel в справочники (номенклатура, контрагенты, цены) | Логисты, менеджеры по закупкам | ⭐⭐ (требуется настроить соответствие колонок) |
| Печать этикеток и штрихкодов | Генерация и печать этикеток для товаров с штрихкодами (поддерживает термопринтеры) | Кладовщики, работники склада | ⭐⭐⭐ (настройка шаблонов этикеток) |
| Сверка с контрагентами | Формирование актов сверки по взаимным расчётам с поставщиками/покупателями | Бухгалтеры, финансовые директора | ⭐ (обычно достаточно указать период и контрагента) |
| Обмен с маркетплейсами | Автоматическая выгрузка остатков и загрузка заказов с Озон, Wildberries, Яндекс Маркет | Менеджеры интернет-магазинов | ⭐⭐⭐⭐ (требует настройки API и токенов) |
| Очистка базы от дублей | Поиск и объединение дублирующихся элементов в справочниках (номенклатура, контрагенты) | Администраторы 1С | ⭐⭐ (нужно настроить критерии поиска дублей) |
Пример 1: Обработка для загрузки цен из Excel
Допустим, у вас есть прайс-лист от поставщика в формате Excel, и вам нужно обновить цены в 1С. Обработка может:
- Считать данные из указанного файла
price.xlsx. - Сопоставить артикулы из Excel с артикулами в справочнике
Номенклатура. - Обновить цены в регистре
Цены номенклатуры. - 🏷️ Генерируют штрихкоды в формате
Code128илиEAN-13. - 🖨️ Отправляют данные на принтер в формате
ZPL(язык разметки для термопринтеров). - 📦 Поддерживают печать серий этикеток (например, 100 штук для одной позиции).
- 🔄 Внешние обработки (
.epf) можно переносить между базами, если они написаны для той же версии платформы. - 🔧 Внутренние обработки привязаны к конфигурации. Чтобы перенести их, нужно выгрузить в
.epf, а затем загрузить в другую базу (если структура справочников и документов совпадает).
Типичный код для такой обработки:
Процедура ЗагрузитьЦены(Команда)
// Открываем Excel-файл
ПутьКФайлу = Объект.ПутьКФайлу;
Если НЕ ЗначениеЗаполнено(ПутьКФайлу) Тогда
Сообщить("Укажите путь к файлу!");
Возврат;
КонецЕсли;
Excel = Новый COMОбъект("Excel.Application");
Книга = Excel.Workbooks.Open(ПутьКФайлу);
Лист = Книга.Worksheets(1);
// Читаем данные
НомерСтроки = 2;
Пока Лист.Cells(НомерСтроки, 1).Value <> Неопределено Цикл
Артикул = Лист.Cells(НомерСтроки, 1).Value;
Цена = Лист.Cells(НомерСтроки, 2).Value;
// Ищем номенклатуру по артикулу
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Артикул = &Артикул";
Запрос.УстановитьПараметр("Артикул", Артикул);
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Сообщить("Не найдена номенклатура с артикулом: " + Артикул);
Иначе
Ссылка = Результат.Выбрать().Ссылка;
// Обновляем цену в регистре
Регистр = РегистрыСведений.ЦеныНоменклатуры;
НаборЗаписей = Регистр.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Номенклатура.Установить(Ссылка);
НаборЗаписей.Прочитать();
Если НаборЗаписей.Количество() > 0 Тогда
Запись = НаборЗаписей[0];
Запись.Цена = Цена;
НаборЗаписей.Записать();
Иначе
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Номенклатура = Ссылка;
НоваяЗапись.Цена = Цена;
НоваяЗапись.Период = ТекущаяДата();
НаборЗаписей.Записать();
КонецЕсли;
КонецЕсли;
НомерСтроки = НомерСтроки + 1;
КонецЦикла;
Excel.Quit();
Сообщить("Загрузка цен завершена!");
КонецПроцедуры
Пример 2: Обработка для печати этикеток
Для печати этикеток на термопринтере (например, Zebra или Godex) часто используют обработки, которые:
FAQ: Частые вопросы об обработках в 1С
Можно ли использовать обработку из одной конфигурации в другой?
Да, но с оговорками:
Перед использованием проверьте