Архитектура 1С для новичков: Строим первую внешнюю обработку и клиент-серверный мост. Часть первая.

10.09.26

Разработка - Инструментарий разработчика

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

Каждый начинающий программист 1С рано или поздно приходит к моменту, когда типовых возможностей конфигурации не хватает, а вносить изменения в саму конфигурацию (снимать с поддержки) нельзя или не хочется. Именно для таких задач и существуют внешние обработки (файлы с расширением .epf),они не мешают последующим типовым обновлениям от фирмы 1С.

Шаг 1. Создаем файл обработки в Конфигураторе

Открываем Конфигуратор и идем по классическому пути: Файл — Новый — Внешняя обработка.

Перед нами пустая карточка. Здесь нас интересуют два поля: Имя и Синоним.

Имя — это то, как к вашей обработке будет обращаться сама система в коде (пишем строго без пробелов, например: ЗагрузкаДанныхИзФайлов).

Синоним — это название, которое 1С выведет на экран пользователю (тут пробелы и знаки препинания разрешены, например: Умный импорт первички).

Шаг 2. Проектируем интерфейс (Управляемую форму)

Находим в дереве пункт Формы, жмем на лупу и создаем новую управляемую форму обработки.

Добавляем данные: В правом верхнем углу (вкладка Реквизиты) нажимаем «Добавить». Нам нужна строка, назовем её ПутьКФайлу, перетаскиваем в левое верхнее окно Элементы. 

Лайфхак для интерфейса: Выделяем это поле, открываем его свойства (Alt + Enter) и в поле Заголовок пишем то, что должен увидеть пользователь, а чуть ниже находим свойство КнопкаВыбора и ставим галочку Да (чтобы в поле появились заветные три точки ...).

Какое событие выбрать для кнопки с тремя точками?

Чтобы при нажатии на три точки открывалось окно выбора файла, прокрутите свойства поля ввода в самый вниз до раздела События. Из всего списка нам нужна строка НачалоВыбора. Нажмите на лупу рядом с ней 👉 «Создать на клиенте».

Почему именно на клиенте? Почему ПутьКФайлу и выбор файла — это ТОЛЬКО Клиент?

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

Клиент — это ваш личный компьютер (ноутбук, монитор, мышка).Когда вы нажимаете кнопку выбора файла ..., 1С должна открыть стандартное окно Windows, чтобы вы прошлись по своим папкам и выбрали документ.

Почему не сервер?

Сервер 1С — это огромный мощный компьютер, который физически стоит в другой комнате, в другом городе или вообще в «облаке». У него нет монитора и мышки. Если вы попытаетесь запустить выбор файла на сервере, сервер откроет это окно внутри своей памяти, а вы на своем экране ничего не увидите. Программа просто зависнет. Поэтому всё, что касается ваших личных файлов и экрана — пишется строго на Клиенте.Сервер — это место, где крутится сама база данных SQL и хранятся все ваши справочники, товары и документы.

Почему нельзя выбирать «На клиенте и процедуру на сервере»?

 Если вы выберете этот пункт, 1С по ошибке создаст лишнюю пустую серверную процедуру. Но серверу 1С в облаке не интересно, какой файл лежит у вас на диске C:, у него даже нет прав залезть в ваш компьютер. Серверная процедура здесь будет просто бессмысленным мусором, который только запутает код.

Почему создаем событие именно «НачалоВыбора»?

НачалоВыбора — срабатывает в ту самую миллисекунду, когда пользователь только кликнул по кнопке... Платформа 1С понимает: «Пользователь нажал кнопку, он ХОЧЕТ выбрать файл».

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

&НаКлиенте
Процедура ПутьКФайлуНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
    
   
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.Фильтр = "Файлы Excel (*.xlsx)|*.xlsx|Таблицы 1С (*.mxl)|*.mxl";
    Диалог.Заголовок = "Выберите файл для загрузки";
    Диалог.МножественныйВыбор = Ложь;
    
    ОписаниеОповещения = Новый ОписаниеОповещения("ПутьКФайлуНачалоВыбораЗавершение", ЭтотОбъект);
    
   
    Диалог.Показать(ОписаниеОповещения);
КонецПроцедуры

А прямо под ней (в самом низу модуля) вставьте принимающую процедуру, которая запишет выбранный путь в поле на форме:

&НаКлиенте Процедура ПутьКФайлуНачалоВыбораЗавершение(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт

&НаКлиенте
Процедура ПутьКФайлуНачалоВыбораЗавершение(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт

Если ВыбранныеФайлы <> Неопределено И ВыбранныеФайлы.Количество() > 0 Тогда
ПутьКФайлу = ВыбранныеФайлы[0];
КонецЕсли;

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

Почему её нужно добавлять, если на клиенте уже есть первая процедура?

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

Но перед завершением она оставляет системе «записку» (это строчка Новый ОписаниеОповещения("ПутьКФайлуНачалоВыбораЗавершение", ЭтотОбъект)). В этой записке написано: «Когда вы выберете файл и нажмете кнопку "Открыть", не забудьте вернуть этот файл в процедуру ПутьКФайлуНачалоВыбораЗавершение». Платформа читает нашу «записку», видит имя второй процедуры и передает выбранный файл в нее.

Если вторую процедуру не написать, то окно откроется, пользователь выберет файл, нажмет «Открыть», но путь к файлу никуда не запишется — его просто некому будет принять. Первая процедура открывает дверь, а вторая — забирает файл.

Шаг 3. Тестируем готовую форму в режиме «1С:Предприятие»

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

Сохраните ваш файл (Файл — Сохранить как...) на рабочий стол. Он запишется в формате .epf.

Запустите вашу базу 1С в обычном пользовательском режиме (1С:Предприятие).

Нажмите Главное меню — Файл — Открыть и выберите ваш сохраненный файл с рабочего стола.

Нажмите на три точки ... в поле ввода. Перед вами откроется аккуратное окно проводника Windows, которое показывает только файлы Excel и таблицы 1С. Выберите документ, нажмите «Открыть» — и полный путь мгновенно запишется в ваше поле на форме.

У вас может возникнуть логичный вопрос: «Если внешняя обработка нужна для того, чтобы создавать документы и менять справочники внутри базы 1С, почему весь наш код написан строго на Клиенте?»

В этом и кроется главный секрет архитектуры 1С: Чтобы загрузить данные в базу, нам нужно построить мост из двух половин.

Первая половина (на Клиенте): Нам нужно взять файл с вашего личного компьютера. Сервер 1С сделать этого не может — он слеп к вашему диску C:. Поэтому на клиенте мы пишем код, который открывает проводник Windows и запоминает путь к файлу.

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

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

 

 

Вступайте в нашу телеграмм-группу Инфостарт

Стандарты разработки Управляемые формы Клиент-сервер Асинхронные вызовы ДиалогВыбораФайла

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы, интерфейс 8.5. Может выполнять свертку одновременно в несколько потоков, а также без непосредственного участия пользователя. Решение в Реестре отечественного ПО.

24900 руб.

20.08.2024    78482    398    171    

337

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3 и 8.5: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    276264    1546    423    

1194

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С:Предприятие 8 Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм. Обновление версии от 21.04.26

22570 руб.

06.10.2023    41854    115    54    

131

Инструментарий разработчика Нейросети Платные (руб)

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

15250 руб.

25.08.2025    69501    139    41    

147

Инструментарий разработчика Разработка Администрирование веб-серверов Системный администратор Программист Бизнес-аналитик Руководитель проекта 1С 8.3 Платные (руб)

Analyzer 1C сводит выгрузку 1С — основную конфигурацию и все расширения — в единый граф знаний. Любой запрос по связям за доли секунды, с пометками «Доб.» / «Заимств.» / «Переопределено». Новое в 2.0 — обновление поставки: сравнение и объединение версий деревом «как в Конфигураторе» с выгрузкой плана решений; поиск конфликтов из-за перехватов расширений и висячих ссылок; загрузка из бинарных .cf/.cfe; циклические зависимости. Плюс анализ влияния, запросы BSL, роли и RLS, граф вызовов. Минута на развёртывание через Docker без необходимости подключения к Интернет. Любая 1С:Предприятие 8.3+.

14000 руб.

17.04.2026    11333    44    62    

58

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

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

17000 руб.

10.11.2023    27494    101    46    

107

Мастера заполнения Поиск данных Инструментарий разработчика Подбор и обработка объектов 1С 8.3 1С 8.5 Платные (руб)

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5. Работает на возможностях платформы, внешние компоненты не используются.

6000 руб.

25.02.2026    5730    19    1    

21
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 10.09.26 10:36
Сообщение было скрыто модератором.
...
2. kako1toxren 10.09.26 10:45 Сейчас в теме
ммм Фото с телефона. Сильно.
Для отправки сообщения требуется регистрация/авторизация