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

12.11.25

Интеграция - Загрузка и выгрузка в Excel

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Универсальная выгрузка-загрузка документа
.epf 18,94Kb ver:1
4 3 050 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Бесплатные

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Узнавайте о новых бесплатных решениях в нашей телеграм-группе Инфостарт БЕСПЛАТНО

Наименование Скачано Бесплатно
Выгруженный документ
.xlsx 13,63Kb
6 Скачать бесплатно
Краткая информация о ходе выполнения задачи
.doc 33,50Kb
5 Скачать бесплатно

Постановка задачи вот такая:

Необходимо с помощью программных средств платформы и языка 1С разработать внешнюю обработку. Обработка должна запускаться в режиме управляемого приложения.

1. На форме обработки должны быть обеспечены следующие возможности:

  • Выбор ссылки документа произвольного типа
  • Выбор каталога, для сохранения и открытия файла
  • Команда выгрузки документа
  • Команда загрузки документа

2. При нажатии кнопки «Выгрузить», информация, содержащаяся в выбранном пользователем документе, должна выгрузиться в указанный каталог. Информация должна быть исчерпывающей, то есть выгружаться должны данные, чтобы при нажатии кнопки «Загрузить», в базе создавалась бы копия исходного документа (за исключением номера, т.к. номера документа уникальны).

3. Выгрузка должна осуществляться в формате Excel. Для этого необходимо разработать собственный формат файла выгрузки.

4. При написании обработки необходимо использовать Метаданные. Это делается для универсализации программного кода.

5. При написании обработки нельзя использовать функции ЗначениеВСтрокуВнутр(), УникальныйИдентификатор() и прочие подобные функции, выгружающие уникальные идентификаторы объектов, а также нельзя делать выгрузку и загрузку в формате XML или JSON.

6. Для проверки работоспособности рекомендуется использовать максимально заполненный данными документ.

 

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

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

Вам кажется, что задача большая и вы не понимаете, как выглядит готовое решение? Цель публикации - дать понять, что важно понимать лишь 1, 2 следующих шага, и это уже позволит Вам дойти до конца. Ведь если не начать, то финишировать невозможно! Разбиваем задачу на мелкие кусочки, каждый из которых решается элементарно.

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

 

Чем Вам поможет изучение данной обработки:

 

1. Читать. Как бы это странно не звучало.

Также в помощь серия статей "Как читать чужой код".

Доработка типовой конфигурации. Обновление доработанной типовой конфигурации

Доработка чужого кода. Code review

Разбор и доработка запросов

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

2. Перестанете думать, что программирование и конфигуратор - это страшные слова.

3. Разбивать большие задачи на маленькие и понятные шаги.

4. Пользоваться простыми конструкциями языка 1С и универсальными коллекциями значений.

5. Решать задачи универсально, т.е. когда на входе много неизвестных параметров.

6. Писать запросы, не используя конструктор запроса.

7. Записывать данные в Excel с использованием обычных макетов.

8. Разбираться в типах данных и их настройках. Даже в страшных регистрах расчета.

9. Читать файл Excel через COM объект. 

Как правильно читать файл Excel можно посмотреть в этой публикации:

Универсальный шаблон для загрузки данных из Excel

10. Знать особенности поиска ссылок в разных объектах метаданных.

11. Вести разработку в режиме отладчика.

 

В качестве примера, вставлю кусок кода, который формируется описание структуры документа:

 

 

Обработка имеет одно ограничение: т.к. мой профиль - ЗУП, объект ПланСчетов не обработан в коде. 

Это не сложно сделать по образцу. Конфигурация и номер релиза указан только для соблюдения формальностей.

Обработка работает на всех конфигурациях.

 

Коллеги, предлагаю поучаствовать в вебинаре по представлениям в ЗУП. Все подробности по ссылке:

Вебинар по представлениям в ЗУП.

 

Примеры моих обработок:

Пример работы с файлами odt в клиент-серверной модели работы

Просмотр регистров по НДФЛ

График вахты в ЗУП: Помощник заполнения и расчет переработок

 

Есть проблемы, потребность в обучении или вопросы по ЗУП - пишите в телегу @PabloFilatelly.

Проверено на следующих конфигурациях и релизах:

  • 1С:ERP Управление предприятием 2, релизы 2.5.24.68

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

См. также

SALE! 15%

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

Универсальная обработка для загрузки документов из Excel в 1С. Забудьте о ручном вводе: загружайте документы из Excel в 1С за секунды! Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл эксель, документ 1С и нажимаете кнопку "Загрузить"

8000 руб.

09.11.2016    262783    1160    940    

1088

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

Реальный помощник, с помощью которого Вы преобразуете необходимые документы для Wildberries, OZON, ЯндексМаркет, Мегамаркет, Aliexpress, Детский мир, Магнит Маркет (быв.МагнитЭкспресс), Лемана про, ЭНФАНТА (Акушерство), ЛаМода, Летуаль, Твой дом, Золотое Яблоко в документы "Отчет комиссионера (агента) о продажах" и другие. Работает в 1С:БП 3.0, 1С:БП 3.0 КОРП, 1С:УТ 11, 1С:УНФ, 1С:ERP Управление предприятием.

5400 руб.

12.08.2021    43000    504    71    

202

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка номенклатуры из файлов Excel (xls, xlsx, ods, csv, mxl) в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

12240 руб.

29.10.2014    226854    712    528    

481

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 17.11.2025, версия 9.13 - 10.5)

19200 руб.

20.11.2015    169176    420    389    

539
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. gybson 05.11.25 10:31 Сейчас в теме
А про загрузку то где? В какие базы можно загружать, как организацию ищет и т.п.
4. biimmap 2105 05.11.25 11:21 Сейчас в теме
(1) внизу публикации есть ответ на Ваш вопрос. Базы любые, но план счетов не обработан.

Поиск ссылок зависит от объекта метаданных. В коде обработки содержатся комментарии очень подробные.
10. gybson 05.11.25 12:11 Сейчас в теме
(4) т.е. загрузки фактически нет, так как это для обучения
14. biimmap 2105 05.11.25 12:58 Сейчас в теме
(10) Зачем этот вопрос? Почему нет? На форме есть кнопка "Загрузить", в постановке задачи написано, что файл должен назад загружаться, в описании есть вот такой текст:

9. Читать файл Excel через COM объект.

Как правильно читать файл Excel можно посмотреть в этой публикации:

Универсальный шаблон для загрузки данных из Excel

10. Знать особенности поиска ссылок в разных объектах метаданных.


Не вводите себя и окружающих в заблуждение. Прочитайте внимательно описание. Задача решена полностью, а не частично. Для того, чтоб понять как подбираются ссылки нужно смотреть код обработки. Там зеленым цветом всё описано и на этапе выгрузки, и на этапе загрузки.
15. gybson 05.11.25 13:02 Сейчас в теме
(14) это слишком расплывчатое описание чтобы потратить 3к

Задача выгрузки и была всегда тривиальной
16. biimmap 2105 05.11.25 13:11 Сейчас в теме
(15) Постановка задачи описана четко! Навыки, которые можно получить также сформулированы понятно!
Главное внимательно изучать описание.

По сути я уже ответил на Ваш вопрос. Каждая ссылка ищется по своим правилам и выгружаемая информация также зависит от объекта метаданных. Детали Вы увидите в коде. Там много комментариев.

3К в нашей сфере не такая и большая сумма. Вы знаний получите сильно больше чем на 3К. Ни на одних курсах такой код писать не учат! А все эти курсы стоят сильно больше чем 3К.

А дальше каждый сам решает, скачивать или нет. Я не первый день на сайте. Мои публикации обычно и отличаются качеством материала.

можно посмотреть например вот такую статью: https://infostart.ru/1c/articles/1875017/
2. Asmody 05.11.25 11:02 Сейчас в теме
Информация должна быть исчерпывающей
- эдак по ссылкам можно половину ИБ выгрузить...
3. biimmap 2105 05.11.25 11:17 Сейчас в теме
(2) если в цикле по документам и по видам документов, то да😄. Можно и всю выгрузить.
5. aximo 2519 05.11.25 11:44 Сейчас в теме
Много всяких интересных выгрузок загрузок написано - https://infostart.ru/1c/tools/2498969/

Так же одна из них, выгрузка одинаковая - загрузчики разные, все через json
6. biimmap 2105 05.11.25 11:50 Сейчас в теме
(5)
Много всяких интересных выгрузок загрузок написано


на сколько я понимаю, это коммерческие продукты для решения конкретной задачи.
Данная публикация про обучение. здесь нет коммерческой задачи, которая была решена
7. aximo 2519 05.11.25 11:54 Сейчас в теме
(6) есть и коммерческие, есть и не коммерческие.... на текущий день существует куча всяких обменов, которые по своей скорости и корректности превосходят конвертацию
8. biimmap 2105 05.11.25 11:58 Сейчас в теме
(7)
которые по своей скорости и корректности превосходят конвертацию


Я её вообще на дух не переношу! Из-за того какая она кривая написал свой перенос данных с нуля через COM и Excel.
https://infostart.ru/1c/tools/2435200. Это описание идей

https://infostart.ru/1c/tools/2068196. А это как устроен движок
9. aximo 2519 05.11.25 12:03 Сейчас в теме
(8) я много работал с конвертацией, но считаю, что это глубоко-устаревший инструмент. После того как появились веб-сервисы...
11. gybson 05.11.25 12:15 Сейчас в теме
(9) веб-сервисы не решают задачи связанные с конвертацией данных. Если объекты в базах различаются, то можно называть конвертацию данных как угодно, даже веб-сервисом или кроликом, любые слова придумать, но физику не обманешь словами.
12. aximo 2519 05.11.25 12:24 Сейчас в теме
(11) не решают, но хорошо работают со структурированной информацией типа json.

Json + вебсервис
13. gybson 05.11.25 12:54 Сейчас в теме
(12) с json работают библиотеки
17. aximo 2519 05.11.25 20:57 Сейчас в теме
одни из моих последних правил классической конвертации https://infostart.ru/1c/tools/1432013/ - перенос орпов в УПП... да, работает и потратил я на написание около вечера.... но как-то уже не то.... к 2026 году)))
18. ltfriend 10.11.25 17:59 Сейчас в теме
Ещё бы обработка за 5 см была рабочая.
1. У выгружаемого документа тип строка. Ладно, поправили на "ДокументСсылка".
2. См. скриншот.
Прикрепленные файлы:
19. biimmap 2105 10.11.25 18:12 Сейчас в теме
(18) на ЗУП проверялась на самом большом документе "Начисление зарплаты".

Смысл ошибки понятен, 2 реквизита одного типа. Однако на Больничном листе ошибка не воспроизводится.
В нём есть реквизиты "Руководитель" и "Физическое лицо". Они одного типа выгружено без ошибки. Файл сформирован только что, во вложении. Нужно больше информации для исправления ошибки.

Также напоминаю, что для Бухгалтерии эта обработка не тестировалась и в ней не описан План счетов (это указано в описании). Попробуйте на конфигурации ЗУП или ЕРП выгрузить любой зарплатный документ.

первая ошибка именно из-за того что конкретный документ поставил. Исправил.
Прикрепленные файлы:
Выгруженный документ.xlsx
20. biimmap 2105 10.11.25 20:14 Сейчас в теме
(18) Вопрос одинаковых имен в соединениях решается за счет добавления имени реквизита к имени типа. Даже если несколько реквизитов с одинаковым типом - это не приводит к ошибке. Попробуйте просто другой вид документа выгрузить. Во вложении скрин кода, который за имена таблиц в запросе отвечает.
Прикрепленные файлы:
21. ltfriend 10.11.25 20:54 Сейчас в теме
(20) Зачем другой вид документов, если обработка, заявленная как универсальная не может выгрузить реализацию из демо УТ 11.5 (интересно, как бы проверяющий на это тестовое задание отреагировал)? p.s. Я просто скачал код посмотреть, ну и попробовал выгрузить "первый попавшийся" документ. Дальше разбираться мне не интересно.
22. biimmap 2105 10.11.25 21:29 Сейчас в теме
(21) Затем, что когда выполнялась разработка, каждый раз выбирать из длинного списка документов конкретный вид надоедает. Не делай из мухи слона. На ЗУП она работает. Цель обработки - обучение, а не конкретная бизнесовая задача. То что она сделана на конфигурации ЗУП описано в публикации. Почему есть ошибка в УТ - нет понимания. у меня ввиду специализации отсутствует такая конфигурация.
23. biimmap 2105 10.11.25 21:30 Сейчас в теме
(21) Никакому проверяющему эта обработка не показывалась никогда и не планировалось. Она была написана в рамках индивидуального обучения конкретного человека.
24. DmitriyV 3 20.11.25 12:35 Сейчас в теме
Почему у тебя на превью человек без ноги тащит коробку? Исправить!
25. biimmap 2105 20.11.25 13:33 Сейчас в теме
(24) от тех кто не скачал обработку язвительные комментарии не принимаются. 😉
26. DmitriyV 3 20.11.25 16:12 Сейчас в теме
(25) как ее скачивать учитывая такую картинку, может в обработке тоже чего-то не хватает
27. biimmap 2105 20.11.25 16:15 Сейчас в теме
(26) Ответственно заявляю: у обработки тоже нет ног! Поэтому картинка четко соответствует функционалу. Только кнопки. Вопреки заявлениям выше они работают.
28. DmitriyV 3 20.11.25 16:19 Сейчас в теме
(27) Дьявол кроется в деталях! Засим прощаюсь! Arrivederci!
Для отправки сообщения требуется регистрация/авторизация