Выгрузка данных из 1С и экспорт в Excel справочников и регистров сведений
Не так давно возникла казалось бы тривиальная задача. Есть «боевая» база Управление торговлей (версия конфигурации 10.1, платформы — 8.1). Создается новая компания, в которой нужно развернуть новую базу (версия конфигурации 11.2, платформы — 8.3). Чтобы облегчить нелёгкий труд сотрудницам новой компании, было принято решение скопировать часть номенклатуры (каталог товаров и их реквизитов) в новую базу.
Однако не тут-то было. Попытки использовать стандартные средства в 1С привели к неудаче. Синхронизация данных для веб-узла выдавала очень урезанные данные. И даже замечательный обработчик Выгрузка и загрузка данных в XML выдавал ошибку.
Поэтому было найдено такое решение:
- Выгрузка данных из «старой» базы посредством обработчика Выгрузка и загрузка данных в XML
- Экспорт данных в Excel
- Импорт в «новую» базу из Excel собственным обработчиком
Для того чтобы реализовать пункт 1, использовался обработчик отсюда (тот самый Выгрузка и загрузка данных в XML, для платформы 8.1). Для других платформ — Google в помощь.
В связи с тем, что для загрузки нужен была только справочник номенклатуры, то для обработки необходимы только такие сущности, как справочники и регистры сведений. Анализ выгруженного xml-файла (сумасшедших 280Мб для 35000 товаров) показал, что необходимые данные для обеих сущностей хранятся в «плоском» виде:
Затем на Python был написан парсер, который раскладывал все сущности по отдельным Excel файлам. В результате его работы появился примерно такой набор файлов:
- CatalogObject.Банки.xlsx
- CatalogObject.БанковскиеСчета.xlsx
- .
- InformationRegisterRecordSet.НоменклатураКонтрагентов.xlsx
- InformationRegisterRecordSet.ЦеныНоменклатуры.xlsx
С приблизительно такими графами (столбцами)*:
- ШтрихКодНоменклатурыКонтрагента
- КодНоменклатурыКонтрагента
- АртикулНоменклатурыКонтрагента
- НаименованиеНоменклатурыКонтрагента
- ХарактеристикаНоменклатуры
- ЕдиницаНоменклатурыКонтрагента
- Номенклатура
- Контрагент
* пример приведен для файла InformationRegisterRecordSet.ЦеныНоменклатуры.xlsx
А дальше программисты 1С сказали «Отлично, вот теперь мы сами». И все стали немножко более счастливы.
Исходный код лежит на github вот здесь. Поскольку я понимаю, что большинство программистов 1С не знают Python, то там же (в релизах) лежит скомпилированный код (для x64). Если будут просьбы, то код переведу в C# и скомпилирую (уж он-то везде должен работать).
Надеюсь кому-то моя заметка сэкономит время.
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.
Импорт файла обмена данными
В «Бизнес Пак 7» есть возможность импортировать данные из программы «Товар-Деньги-Товар» версии, не ниже 3.0.0.535. Демонстрационную версию программы «Товар-Деньги-Товар» Вы можете загрузить с нашего сайта по адресу: http://www.pvision.ru/tdt.htm.
Для импорта данных нажмите кнопку (рис. 1) и в открывшемся меню выберите пункт Импорт файла обмена данными. В открывшемся окне выберите файл формата PVX и нажмите кнопку . После этого в программе появятся информация о документах (счет, накладная, акт, счет-фактура) и фирмах.
Импорт товаров в документы из файла MS Excel
Импорт справочника товаров
Существует возможность импорта справочника товаров в «Бизнес Пак». Для этого нажмите на кнопку (рис. 1) и в открывшемся меню выберите пункт Импорт справочника товаров. Откроется окно Импорт. Для вставки товаров откройте файл со списком товаров и скопируйте в буфер обмена необходимые товары, нажмите на кнопку , таблица заполнится данными. Нажмите на кнопку . Товарные позиции появятся в справочнике товаров.
Добалять позиции через буфер обмена можно при создании документа: в сетке товарного наполнения вызовите с помощью правой кнопки мыши контекстное меню и выберите пункт Вставить строки. Если в справочниках уже есть заведенные позиции, то достаточно скопировать данные из колонки «Код». По ним программа сможет найти позиции заведенные в справочник.
Обратите внимание:Если при вставке не выбрана колонка с ценой, то подставится цена из справочника Бизнес пака;
Обратите внимание: если при импорте данных НДС нужно выделить из цены товара, то в исходном файле ставка НДС должна быть указана со знаком «минус», в противном случае НДС будет начислен.
Импорт справочника фирм
Существует возможность импорта справочника фирм в «Бизнес Пак». Для этого зайдите в справочник фирм, в контекстном меню выберите пункт Вставить строки. Откроется окно Импорт. Для вставки фирм откройте файл с фирмами и скопируйте в буфер обмена реквизиты, нажмите на кнопку , таблица заполнится данными. Нажмите на кнопку . Фирмы появятся в справочнике.
Импорт оплат
Существует возможность импорта оплат из клиент банка в «Бизнес Пак». Подробное описание в разделе «Оплата документов».
Экспорт отчетов в форматы: PDF, MS Excel, Open Office, BMP, JPEG, TIFF, GIF
Экспортировать отчеты в вышеперечисленные форматы можно из режима предварительного просмотра, нажав на кнопку (рис. 2) и выбрав нужный формат. После выбора формата Вам будет предложено настроить параметры экспорта и указать имя файла и папку для сохранения.
Можно экспортировать из окна формирования документа. Для этого нажмите кнопку . В открывшмся окне можно выбрать вид отчета, формат. По кнопке можно выбрать папку для сохранения экспортированных файлов и сформировать произвольное название документа. Можно составлять имя, используя следующие параметры: [тип_документа], [номер_документа], [дата_документа], [название_контрагента], [псевдоним_контрагента], [дата_начала], [дата_окончания]. Параметры должны быть прописаны в квадартных скобках.
В программе есть возможность экспорта отчетов в формат PDF, MS Excel, а также в Open Document Текст, из которого полученный в результате экспорта документ можно сохранить в формате MS Word. Также есть возможность экспортировать документы в графические форматы BMP, JPEG, TIFF, GIF.
Экспорт в формат DOCX
Документ в формате DOCX получайте через печатную форму, подробнее в разделе: «Редактор Word».
Экспорт документов из Пакетной печати
Существует возможность экспорта пакета документов из «Пакетной печати». Подробное описание в разделе «Редактор Word» «Пакетная печать».
Экспорт в файл ЭПД
Данные можно экспортировать в файл электронных образов платежных документов (ЭПД). Для этого зайдите в архив платежных поручений и задайте в условиях фильтра фирму-плательщика. Нажмите на кнопку , выберите пункт меню Экспорт. Откроется окно Экспорт. Выберите пункт Файл ЭПД и нажмите на кнопку . В открывшемся окне укажите, куда Вы хотите поместить файл с данными, и нажмите на кнопку .
Для экспорта в федеральный формат на закладке Платежное поручение имеется кнопка, с помощью которой формируются строки платежного поручения по бюджетной классификации.
Вы можете задать определенные условия фильтра в архиве и экспортировать в файл только соответствующие этому условию данные (см. главу «Архив документов»).
Экспорт в файл формата 1С
Платежные поручения можно выгружать в файл 1C_to_KL.txt, формат которого совпадает с форматом файла, получаемого из программы 1С.
Для экспорта платежных поручений в файл 1C_to_KL.txt в архиве платежных поручений нажмите на кнопку , выберите пункт меню Экспорт. В открывшемся окне Экспорт выберите Файл формата 1С и нажмите на кнопку . В следующем окне укажите, куда Вы хотите поместить файл с данными, и нажмите на кнопку .
Экспорт в файл для системы iBank 2
Для экспорта платежных поручений в файл для системы электронного банкинга iBank версии 2 зайдите в архив платежных поручений и задайте в условиях фильтра фирму-плательщика. Нажмите на кнопку , выберите пункт меню Экспорт. Откроется окно Экспорт. Выберите пункт Файл системы «iBank 2» и нажмите на кнопку . В открывшемся окне укажите, куда Вы хотите поместить файл с данными, и нажмите на кнопку .
Экспорт заявок на кассовый расход в файл для органа Федерального казначейства
Для экспорта заявок на кассовый расход в файл для органа Федерального казначейства зайдите в архив заявок на кассовый расход и задайте необходимые условия фильтра. Нажмите на кнопку , выберите пункт меню Экспорт. В открывшемся окне Экспорт выберите версию файла и нажмите на кнопку . В открывшемся окне укажите, куда Вы хотите поместить файл с данными, и нажмите на кнопку .