Загрузка в 1С из эксель по произвольному алгоритму

 

Задание:

Организации в файле xlsx (Excell) присылают реестр по перечислениям.

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

Нужно:

Создать в 1с БП3 документ "Операции" 

Загрузить данные из эксель файла в 1с в виде проводок

Сопоставить услуги из файла с услугами(номенклатурой) в 1С

Сопоставить поставщиков и получателей из файла со справочником "Контрагенты" в 1С

Как происходит сопоставление услуг и контрагентов:

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

Пользователь в 1С сопоставляет вручную, данные о сопоставлении должны сохраниться чтобы при следующем запуске обработки загрузки эксель в 1с все автоматически сопоставилось.

Подставлять в проводки основной договор контрагента с поставщиком.

 Были еще какие-то нюансы с проводками.... Если услуга такая-то то проводки с такого-то счета и т.д. К сожалению уже забыл, т.к. делал эту обработку уже относительно давно.

 

Выполнение:

 

 Исходный эксель файл для импорта в 1С:

эксель в 1С

 

Обработка 1С для загрузки эксель файла:

Обработка 1С для загрузки из xls

Алгоритм такой:

Создаем внешнюю обработку

  1. Создаем com-объект и подключаемся к эксель файлу
  2. Загружаем его в таблицу обработки автоматически сопоставляя услуги и контрагентов
  3. Что не удается сопоставить сообщаем пользователю и просим сопоставить. Сохраняем введенное пользователем сопоставление в хранилище настроек.
  4. При нажатии на "Создать документ с проводками" создаем документ "Операции"

Как создается документ "Операции"

Создается начало транзакции.

Это нам нужно для того чтобы если в док-те будут ошибки мы сообщим пользователю об ошибке и не будем создавать документ.

Создаем документ.

Ищем у контрагентов основные договора с поставщиками, если нет сообщаем пользователю.

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

Если ошибок в ходе создания документа не было, завершаем транзакцию и сохраняем документ.

Если ошибки были, то отменяем создание док-та и сообщаем пользователю об ошибках.

 

Результат:

1с документ из эксель файла