1с сохранение печатной формы в xml

Как с 1С сохранить данные в XML файл?

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

Как данные из 1С сохранить в XML?

Для быстрого осуществления этой операции предусмотрена процедура выгрузки. Зайдя в 1С, пользователь выбирает раздел «Файл», затем «Выгрузка». На жёстком диске компьютера либо на съёмном устройстве выбирается конкретная локация, куда будет отправлен файл, и его формат. Если нужен файл Эксель, выбираем формат XML. Выгрузка больших документов занимает много времени. Перед её началом желательно разобраться, какой конкретно объём информации вас интересует, и выгрузить именно его. Это достигается путём выделения нужных блоков при работе в 1С. Если нужно добавить новые позиции к уже имеющимся данным в XML, это осуществляется путём выгрузки в существующий документ, во время которой происходит слияние. Когда нужно добавить несколько строк, это проще сделать через буфер обмена.

Как перенести данные из XML файла в 1С?

Чаще при работе предприятия нужно провести обратную процедуру: получить файл Эксель в 1С. Рассмотрим, как это сделать. Современные версии 1С предлагают осуществлять подобную процедуру через вкладку «Импорт» либо «Загрузка». Они расположены в той же категории «Файл». Пользователь выбирает нужный документ на компьютере или съёмном диске, после чего он загружается в базу 1С. Разработчики 1С предусмотрели «карантинную» зону, куда сначала отправляются файлы после загрузки из других программ. Такая зона нужна, чтобы предварительно проверить достоверность данных и особенно форматирование. Если форматирование сбито, его сначала нужно восстановить с помощью специальных сервисов или вручную. Загрузка данных с нарушенным форматированием в 1С приводит к сбоям и искажениям в базе данных.

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

Настройка сериализации при переносе в 1С

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

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

Использование веб-сервисов для переноса данных в 1С

Для загрузки данных в 1С можно использовать специализированные веб-сервисы. Они помогают сформировать файл Эксель в 1С и не требуют финансовых затрат. Подгрузить информацию с их помощью можно однократно либо использовать такие сервисы постоянно. Желательно выбрать сервисы, которые совместимы с вашими версиями программ, тогда вероятность сбоев станет низкой.

Работа по отправке данных с 1С 7.7 не подразумевает специального образования, но требует навыков и опыта. Если к делу приступает необученный сотрудник, его желательно контролировать, чтобы база данных организации не наполнилась недостоверной либо повреждённой информацией.

Как сохранить формат файла при переносе из XML в 1С?

При любых процедурах переноса данных большое внимание следует уделять сохранности структуры данных. В рамках этого желательно выполнять следующие рекомендации.

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

Загружать данные в «карантинную» зону 1С, чтобы непроверенные данные не попадали сразу в единую базу данных и не искажали её.

Проверять формат данных, которые были получены из Эксель. Если в процессе переноса формат был сбит, потребуется потратить время, чтобы его восстановить. Если этого не сделать, то отдельные ячейки могут суммироваться непредсказуемым образом: количество товара с массой, цена с общей стоимостью. Это собьёт систему статистики и анализа данных.

Желательно, чтобы загруженные данные перед отправкой в базу проверял опытный сотрудник: владелец предприятия, главный бухгалтер или иное ответственное лицо.

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

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

Источник

Как сохранить документ из 1с в формате XML?

Как из 1с скачать документ в формате XML?

Загрузите данные XML в 1С 8.3

В окне обработки зайдите во вкладку «Загрузка» (1) и нажмите кнопку «Загрузить данные» (2). Откроется окно для выбора файла. В открывшемся окне выберете файл с данными xml (3) и нажмите кнопку «Открыть» (4). Данные будут загружены в новую базу.

Как сохранить файл в формате XML?

Сохранение данных XML в сопоставленных ячейках в файле данных XML

Как скачать документ из 1с?

Зайдем в пункт меню Файл — Сохранить (или Сохранить как). Вызвать команду Сохранить можно используя горячие клавиши — Ctrl+S. Указываем папку — куда сохранить документ, задаем имя файла и выбираем Тип файла — Лист Excel (*.

Что такое XML выгрузка?

Данная функция позволяет выгрузить ассортимент товаров из интернет-магазина в указанный формат или загрузить на сайт позиции из файла в формате XML. …

Что такое выгрузка данных?

Выгрузка данных 1С – это перевод определённых данных, хранящихся в системе 1С, в формат, предназначенный для обработки внешним приложением (например, Excel или XML).

Как перевести файл из xls в xml?

Как конвертировать файл XLS в XML?

Как создать XML файл из Excel?

Как сохранить файл Excel в формате XML

Как сделать документ в формате XML?

Нажмите по пункту «Файл» в верхней панели и из выпадающего меню выберите «Создать…». Откроется список, где указывается пункт «Файл». Вас перебросит в окно с выбором расширения файла, соответственно выбирайте пункт «XML-файл». В только что созданном файле уже будет первая строка с кодировкой и версией.

Как из 1с выгрузить документ на рабочий стол?

Для этого понадобится зайти в режим конфигуратора, затем в главном меню выбрать пункт «Администрирование» — «Выгрузить информационную базу»:

Как распечатать документ с 1 с?

Выделите в списке или откройте необходимый документ реализации. По кнопке «Печать» выберите команду «Комплект документов». В открывшемся окне установите флажки напротив тех печатных форм, которые необходимо распечатать. В колонке «Копий» укажите необходимое количество экземпляров.

Как скачать клиентскую базу с 1с?

Для этого понадобится зайти в режим конфигуратора, затем в главном меню выбрать пункт «Администрирование» — «Выгрузить информационную базу»:

Как преобразовать таблицу из 1с в Эксель?

Как перевести таблицу?

Как загрузить номенклатуру из 1с в Excel?

Для того чтобы выгрузить список Номенклатуры для начала нужно открыть 1С и зайти в нужный справочник. Если у вас конфигурация на управляемых формах, как например, Управление торговлей 11 – вам нужно нажать кнопку «Еще» в верхней части окна и в выпадающем меню выбрать пункт «Вывести список».

Как вставить таблицу из 1с в Эксель?

выделить требуемую строчку;

Источник

Табличный документ «1С:Предприятия» (*.mxl): как сохранить в другом формате?

997c1d50f6f9cf6ace76f938533caeec

После того как табличный документ сформирован в «1С:Предприятии» и выведен на экран, его можно распечатать и сохранить во внешний файл. Например, для последующей отправки контрагенту-покупателю по электронной почте.

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

Для того, чтобы сохранить документ из «1С:Предприятия» в любой из перечисленных выше форматов, достаточно выбрать в меню «Файл» опцию «Сохранить копию…», после чего в появившемся диалоге сохранения файла, в разделе «Тип файла» выбрать нужный нам тип.

Программу «1С:Предприятие-Работа с файлами» можно бесплатно скачать по адресу http://v8.1c.ru/metod/fileworkshopdownload.htm, описание программы и примеры работы можно увидеть по адресу http://v8.1c.ru/metod/fileworkshop.htm. Данный редактор позволяет открывать и редактировать различные форматы файлов, которые могут быть созданы средствами платформы «1С:Предприятия». Поддерживаются следующие форматы:

По сути, используя эту программу, вы получаете все возможности по работе с этими файлами, доступные в любой другой версии платформы «1С:Предприятие» версии 8. Кроме, собственно, редактирования и просмотра файлов, «1С:Предприятие-Работа с файлами» позволяет проводить сравнение файлов встроенными в платформу 8 возможностями. Поддерживается сравнение двух текстовых файлов(«*.txt»), двух табличных документов в формате 1С («*.mxl») или двоичное сравнение. Для использования этой возможности, достаточно в меню «Файл» выбрать пункт «Сравнить файлы», а в появившемся диалоге выбрать тип сравнения и указать два файла, которые будем сравнивать (см. рис. 1). Если файлы не идентичны, то будет открыто окно, наглядно отображающее, чем файлы друг от друга отличаются (см. рис. 2). Причем, как видно из рисунка, можно быстро перемещаться по всем обнаруженным различиям, по позиции в одном документе попадать в ту же позицию другого. Все различия наглядно помечены цветом. В результате вы всегда имеете под рукой мощный механизм сравнения, который позволит быстро выявить различия, например в однотипных документах или отчетах, что может существенно ускорить работу с ними.

a5631618a913ea2d77c313bb72b7fddb

117affeb16f7176ea61ce4ad9dc2cbed

В заключение стоит упомянуть, что в программу «1С:Предприятие-Работа с файлами» встроены также календарь и калькулятор, уже знакомые многим по платформе 1С версии 8.

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

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

Примечание:
* Группа компаний «Блик», г. Королев, Октябрьский б-р, д. 14, оф. 9, тел (495) 585-06-80.

Источник

Формирование XML документа (УПД, счет, накладная, СФ и прочее)

По следам публикации Игоря Васильева

Обработка позволяет формировать XML файл в форматах УПД, УКД, СФ, КСФ, торг-12/Акты, CML (все что поддерживает БЭД 1.9)

При смене библиотеки БЭД на версию 1.9 поменялся механизм формирования документов, из-за чего предыдущая публикация стала не актуальной.

Данный код применим к продуктам 1С с БиблиотекойЭлектронныхДокументов версии 1.9 (БП 3.0.91 и выше)

Обработка показывает пример формирования XML файла, который можно сохранить или скопировать куда Вам надо.

Не забывайте править строки, где задаете:

— ТипДокумента (типы можно посмотреть в функции ЭлектронныеДокументыЭДО.СтандартныеТипыДокументов())

— Формат документа (так же поддерживаемые форматы можно посмотреть в ЭлектронныеДокументыЭДО.ПоддерживаемыеФорматы())

Ну и стоит разобрать ошибки формирования ХМД документа, если реквизит структуры РезультатФормирования.ЕстьОшибки равен Истина.

Дисклеймер! Возможно и показанный мной метод будет через какое-то время неработоспособен, т.к. использует функции из раздела #СлужебныйПрограммныйИнтерфейс

Скачать файлы

Специальные предложения

f71a8c4e70c0ff03708038e2b0210df8

9c2808762ec294cd4c55532520b9c521

895fb1e0f7afc3c0ed0d73bf5ee9d9d0

egais promo

b34b292ed32e9501f98cc31df406353e

789363929b9f37ddc5641a069a5fe52e

5b19cd6c4494a88b2abefce64a1b7565

199e2be4fd21dd8f4209d8ec34616c76

Обнаружилось, что не заполнил оператора отправки для УПД/СФ
Нужно добавить после строки

следующий фрагмент кода

Обновление 24.08.21 16:29

2ae933805666da0bdb367683acf2bd02

См. также

Мастер XML-обмена Промо

02.09.2015 35071 5 Lancelot-2M 17

Декларации по формам 7 и 8 алкогольной продукции, перенос данных из Декларант-Алко, импорт данных из файлов XML форм 11,12,7,8

Конфигурация на управляемых формах, платформа 1С 8.3.10.2667 и выше, с помощью которой можно сформировать Декларации по формам 7 и 8 алкогольной продукции, выполнить перенос данных из ПО Декларант-Алко версии 4.31.05 и выше, импорт и загрузку из файлов XML форм 11,12,7,8. Есть возможность автоматического подписания и шифрации файла выгрузки.

15.04.2021 7828 43 independ 39

RabbitMQ + Конвертация данных 2.0

Подсистема для обмена данными между любыми конфигурациями через Rabbit MQ. Позволяет использовать все преимущества Rabbit для обмена 1С. Для обмена требуются Правила обмена (КД 2).

18.03.2021 4931 14 IT_GG 4

Настройка обмена с любой устаревшей конфигурацией на базе 8.2 через обработку «Универсальный обмен данными в формате XML» и «Конвертацию данных 2.0»

Разберем кейс, как настроить простенький обмен с любой устаревшей конфигурацией на базе 8.2 через обработку «Универсальный обмен данными в формате XML» и Конвертацию данных 2.0 с возможностью настройки гибких отборов по периоду, организации и списку документов.

23.11.2020 11220 10 orfos 14

Выгрузка данных из УТ 11.3/11.4 в БП 3.0 (перенос документов и справочной информации из «Управление торговлей» ред. 11.3/11.4 в «Бухгалтерия предприятием» ред. 3.0). Обновлен до УТ 11.3.4.х/11.4.7х и БП 3.0.7х.х Промо

Данная обработка предназначена для выгрузки в формате XML данных из программы «Управление торговлей» ред. 11.3/11.4 по основным группам документов (документы покупки/продажи товаров и услуг, складские документы, счета-фактуры, ценообразование), а также набор основных справочников. Загрузка данных в БП ред. 3.0 через обработку «Универсальный обмен данными XML». Основная цель обработки – оптимизация работы бухгалтеров во время обмена данными между программами, а также выборочная корректировка загруженных ранее документов.

04.03.2016 65639 18 SEOAngels 66

Вставка штампа в файлы PDF

Как неправильно регистрировать входящие документы? Надо распечатать сопроводительное письмо, зарегистрировать документ в программе, на бумажном носителе поставить штамп, вписать номер и дату и заново отсканировать документ в карточку входящего письма. А как правильно?

11.11.2020 8727 44 soulner 12

Выгрузка XML-файла УПД для отправки через ЭДО СБИС, Диадок и т.п.

С помощью этой обработки для документа «Реализация товаров и услуг» формируется XML-файл УПД, который можно отправить через ЭДО СБИС, Диадок и пр.

17.08.2020 17388 109 vasilievil 16

Улучшенная обработка универсального обмена данными в формате XML (УФ)

Улучшенная обработка «Универсальный обмен данными» с полноценными возможностями СКД для выборки данных (не только для отборов).

23.06.2020 12422 131 Lem0n 1

Конструктор печатных форм для ЗУП 3.1 по шаблонам MSOffice и OpenOffice Промо

Данная обработка позволяет быстро создавать печатные формы документов на основании документов из программы 1С ЗУП8 версии 3.1. Печатные формы можно заполнять на основании следующих документов: «Прием на работу», «Прием на работу списком», «Кадровый перевод», «Кадровый перевод списком», «Перемещение в другое подразделение», «Договор ГПХ» Обработка протестирована на платформе 1С:Предприятие 8.3 (8.3.12.1714) релиз ЗУП 3.1.9.187 Тонкий клиент (файловый или клиент-сервер) Установленный Microsoft office (2003 и выше) или OpenOffice/LibreOffice 09/04/2019 Исправил ошибку, возникающую, если наименование вида расчета содержит скобки.

02.11.2017 30079 290 zabaluev 60

Загрузка из XML файла ЭДО в документ поступления для конфигураций 1С: Розница 2.2/2.3, Управление торговлей 10.3/11.4

Внешние обработки загрузки данных из XML файлов формата ON_NSCHFDOPPRMARK ЭДО в документы поступления 1С Розница версия 2.2.10.19 и выше, Управление торговлей 10.3.52.2 и выше, Управление торговлей 11.4.5.63 и выше

04.06.2020 27554 293 independ 130

Настройка политики повторного согласования в 1С: Документооборот

Большинству компаний хочется организовать процессы согласования максимально удобно и сократить количество лишних итераций, логично, что возникает требование исключать на втором и последующих циклах согласования тех, кто уже установил свою визу. Стандартный функционал программы 1С: Документооборот, при маршрутизации процесса на повторное согласование, предлагает пользователю вручную скорректировать список согласующих. Но если запрещено изменение процесса по шаблону, корректировка состава согласующих пользователю будет недоступна. Расширение добавляет опциональную настройку в шаблоны процессов согласования, определяющую логику формирования списка согласующих при повторе согласования одним из трёх вариантов: При повторе согласовывается всеми / При повторе согласовывают только отклонившие / При повторе согласовывают отклонившие и согласовавшие с замечанием.

26.02.2020 12634 58 st_Etlau 13

Источник

Новичок новичку: как выгрузить/загрузить XML данные

Перед Вами возникла задача загрузки, выгрузки метаданных (документы, справочники, регистры. ).

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

Прежде всего, сразу хочу Вас остановить бежать открывать конфигуратор. Есть прекрасный инструмент, созданный самой фирмой 1С, который называется ВыгрузкаЗагрузкаДанныхXML83.epf (есть и ВыгрузкаЗагрузкаДанныхXML82.epf). Этим инструментом можно воспользоваться, если требуется перенести вообще все записи в метаданных, например, все документы товаров и услуг или все строки в справочнике номенклатура. Однако тонкой настройки выгрузки и загрузки Вы не при этом не получите. Выгрузятся все документы, а не конкретный или за период, а при загрузке, если документ уже такой есть, вы можете получить или задвоение, или сообщение об ошибке (которую, впрочем можно игнорировать). В принципе, все решаемо, но потребует более осмысленных действий, чем просто нажатие на кнопку.

Для более тонкой настройки выгрузки/загрузки можно использовать конфигурацию «Конвертация». Выгружать /загружать тут можно что угодно и как угодно, но изучение данного продукта потребует не одной недели практики.

А у Вас ситуация: нужно срочно что-то выгрузить / загрузить и некогда разбираться c существующими инструментами, а конфигуратор открывать Вы умеете, или нужно доработать уже существующий механизм, или разработать свой для пользователя, который не хочет разбираться в Конвертации, а хочет иметь «волшебную» кнопку, которая сделает все за него.

Для начала выполнения кода по загрузке или выгрузке нам нужно 2 кнопки: по нажатии на одну будет происходить выгрузка, а по нажатии на другую будет происходить загрузка. Где они будут расположены не важно, для примера, создадим обработку, в которую добавим форму, а на форму закинем эти 2 кнопки.

Формат выгрузки выберем xml, это стандарт и будем ему следовать, да и обрабатывать такой файл легче, чем, допустим, текстовой.

Для примера, добавим возможность выгрузки за период. Так как в выгрузке у нас выгружается только то что нам нужно, то загружать будем все подряд (хотя дело Ваше, можете добавить условия и в загрузку).

В результате у Вас должна получиться форма похожая на:

e1055330023936aa7589270ecf31b286

Переходим в модуль формы и вставляем следующий текст:

Возвращаемся в форму. Переходим во вкладку команд формы. И указываем для команды выгрузить действие выгрузить, для команды загрузить действие загрузить:

a0d9287d2db382ac17bae05f7878256c

В принципе, для моей конфигурации обработка уже рабочая. Но под Ваши задачи ее нужно переделать. А для этого разберем код.

Процедура ПриОткрытии устанавливает по умолчанию даты периода. Чтобы процедура срабатывала при открытии формы, ее следует указать в соответствующем событии формы.

77fcf19bd47f584c18ecc73cc1d71fd7

Делать это не обязательно. Просто для удобства пользования.

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

Так вот 1С решила, что добавлять/читать документы или записи в справочнике можно только на сервере.

Соответственно, код по добавлению, изменению, чтению, будет выполняться на ДРУГОМ ПК. Не на Вашем!

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

Разбираем код выгрузки.

Команду выгрузки я подглядел в обработке ВыгрузкаЗагрузкаДанныхXML83.epf, о которой я говорил выше. Так что выгрузка у нас будет вполне себе типовая (правда я выкинул кучу строк ненужного кода, чем облегчил Вам труд)

Первым делом на клиенте создаем общее хранилище:

АдресФайлаВоВременномХранилище, так как мы не знаем ничего про него, то присваиваем ему пустой адрес.

Затем строчкой ВыгрузитьНаСервере(АдресФайлаВоВременномХранилище); мы заполняем наше временное хранилище данными которые хотим сохранить в виде файла.

Строкой ПолучитьФайл(АдресФайлаВоВременномХранилище, «Выгрузка.xml»); мы забираем из временного хранилища на свой компьютер данные, которые можно или посмотреть или сохранить в виде файла с названием Выгрузка.xml. Это стандартная процедура. Работает везде одинаково и разбору не подлежит.

А вот процедуру ВыгрузитьНаСервере(АдресФайлаВоВременномХранилище) разберем подробнее. Именно в ней происходит создание и заполнение временного файла обмена.

На сервере еще нет нужного нам файла, а потому первыми двумя строками мы определяем временный файл на сервере. Код выполняется на сервере, а потому временный файл тоже будет на сервере. Его мы заполним и поместим во временное хранилище из которого уже заберем себе на клиента.

Далее запросом получаем данные, которые необходимо выгружать в файл. Для примера, взят абстрактый документ, который называется ФП_Месячный, у него есть реквизиты: Дата, Номер, Период и табличная часть: Статьи.

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

Первым делом мы объявляем новую ЗаписьXML. С помощью нее будет производиться запись во временный файл: ЗаписьXML.ОткрытьФайл(ИмяВременногоФайла,»UTF-8″);

UTF-8 — это кодировка текста. Ее можно принять как стандарт для большинства случаев.

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

Открываем элемент: ЗаписьXML.ЗаписатьНачалоЭлемента(«НазваниеЭлемента»);

//что-то делаем, конкретно в нашем случае, мы делаем запись о реквизите документа либо о самом документе

Закрываем элемент: ЗаписьXML.ЗаписатьКонецЭлемента()

Во время записи активно пользуемся функцией XMLСтрока(), которая преобразует метаданные в строковой тип, понятный для записи/чтения XML.

Так как сохранять данные мы можем только простые (число, дата, строка, булево…). То ссылочный тип данных Вид (это справочник с видами статей) мы сохранить не можем. Но мы можем сохранить Код Вида из справочника видов — это строка. Когда мы будем наоборот загружать данные из ХML, то мы будем получать Код. По коду искать ссылку в справочнике. И уже эту ссылку записывать в документ.

После того как документ xml сформирован (а именно это мы и делали). Мы ЗаписьXML помещаем в файл, хотя по сути, он и так временный файл, проверяем всели у нас получилось, и если да, то помещаем данные во временное хранилище. Почему это так сделано, я не знаю, механизм типовой.

Ну и последним делом, мы удаляем на сервере временный файл. Если это не сделать, то сервер быстро переполниться временными файлами.

Вообще ситуация с временными файлами мне не нравится. Если загрузка/выгрузка будет идти постоянно, то накопитель сервера быстро выйдет из строя. Но так сделано разработчиками 1С. Этот код я подсмотрел у них в стандартной обработке.

Если можете подсказать как сделать все в оперативной памяти буду благодарен.

Разбираем код загрузки.

Тут уж я не поленился не стал брать типовой механизм, обшарил все форумы и нашел как провести загрузку без использования временных файлов.

1. Простой. Считать xml файл в переменную (массив) на клиенте. А после передав эту переменную на сервер, читая данные из массива записывать новые документы.

2. Интересный. Передать xml файл на сервер и читать строки из него в оперативной памяти, не используя файлы вообще.

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

Рассмотрим вариант 2.

Помещать файл выгрузки на сервер во временное хранилище мы будем стандартной процедурой НачатьПомещениеФайла(). Так как механизм типовой, я просто скопировал код из примера 1С.

Для всех он будет одинаков. Единственно что я поменял, это фильтр (сделал xml). Стоит еще обратить внимание на размер. В моем случае он равен 4Гб. В Вашем, можете сделать меньше (больше нельзя).

Процедуру ПоместитьФайлКомандаЗавершение() переписал полностью. В ней я смотрю был ли выбран файл. Если файл был выбран, если он удовлетворяет размеру и расширению, тогда будет происходить чтение из данных указного файла в процедуре ОбработатьНаСервере(Адрес), где Адрес — это адрес временного хранилища. Ну а после того, как мы добавим данные, следует попросить систему перечитать базу, так как данные изменились. Это мы делаем процедурой ОповеститьОбИзменении(Тип(«ДокументСсылка.ФП_Месячный»)). Делать это не обязательно, но тогда чтобы увидеть результат нам придется закрыть и снова открыть список документов ФП_Месячный.

Рассмотрим процедуру ОбработатьНаСервере(Адрес)

Первым делом на сервере из временного хранилища нужно получить то, что мы помещали на клиенте: Данные = ПолучитьИзВременногоХранилища(Адрес);

Объявляем новую переменную с типом ЧтениеXML. В ней будет храниться весь документ XML.

Хитрая строка Парсер.УстановитьСтроку(ПолучитьСтрокуИзДвоичныхДанных(Данные,КодировкаТекста.UTF8)) преобразует двоичные данные в строку xml, которую затем записывает в объявленную ранее переменную с типом ЧтениеXML.

А далее читаем каждую строчку из XML и, в зависимости от данных, заполняем документ.

Ссылочные данные документа заполняются через их поиск по коду из xml.

Да возможность передачи ссылки имеется. Но я не рекомендую ее использовать, дабы данные не задвоились. То есть Документы с одинаковыми Кодами по сути будут разные так как у них разные ссылки (GUID). А если вести запись по коду документа, то документов с одинаковыми кодами Вы не получите. Будет сформировано исключительное событие и перенос данных в базу будет приостановлен. Поэтому я использую оператор попытка при записи документа. Если документ с таким кодом и датой уже есть, то запись произведена не будет, а будет переход к следующей записи.

PS. Благодаря подсказке Сергея, код преобразования данных в XML можно серьезно сократить. Просто замените функцию и процедуру. Будет менее понятно, что такое XML, как он должен заполняться и читаться, но ведь и не всем это надо:

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с сохранение печатной формы в pdf
  • 1с сохранение настроек формы внешней обработки