Задание:
Организации в файле xlsx (Excell) присылают реестр по перечислениям.
В файле содержатся данные (поставщик, получатель, за какую услугу перечислено, номер платежного поручения, дата платежного поручения).
Нужно:
Создать в 1с БП3 документ "Операции"
Загрузить данные из эксель файла в 1с в виде проводок
Сопоставить услуги из файла с услугами(номенклатурой) в 1С
Сопоставить поставщиков и получателей из файла со справочником "Контрагенты" в 1С
Как происходит сопоставление услуг и контрагентов:
Сопоставлять пытаться автоматически по имени, если не найдено пропускать.
Пользователь в 1С сопоставляет вручную, данные о сопоставлении должны сохраниться чтобы при следующем запуске обработки загрузки эксель в 1с все автоматически сопоставилось.
Подставлять в проводки основной договор контрагента с поставщиком.
Были еще какие-то нюансы с проводками.... Если услуга такая-то то проводки с такого-то счета и т.д. К сожалению уже забыл, т.к. делал эту обработку уже относительно давно.
Выполнение:
Исходный эксель файл для импорта в 1С:
Обработка 1С для загрузки эксель файла:
Алгоритм такой:
Создаем внешнюю обработку
- Создаем com-объект и подключаемся к эксель файлу
- Загружаем его в таблицу обработки автоматически сопоставляя услуги и контрагентов
- Что не удается сопоставить сообщаем пользователю и просим сопоставить. Сохраняем введенное пользователем сопоставление в хранилище настроек.
- При нажатии на "Создать документ с проводками" создаем документ "Операции"
Как создается документ "Операции"
Создается начало транзакции.
Это нам нужно для того чтобы если в док-те будут ошибки мы сообщим пользователю об ошибке и не будем создавать документ.
Создаем документ.
Ищем у контрагентов основные договора с поставщиками, если нет сообщаем пользователю.
Учитываем нюансы в проводках и создаем проводки для каждой строки эксель файла.
Если ошибок в ходе создания документа не было, завершаем транзакцию и сохраняем документ.
Если ошибки были, то отменяем создание док-та и сообщаем пользователю об ошибках.
Результат: