1с большой файл обмена
Большая часть автоматизированных систем управления имеет в своем составе отдельные базы данных и, нередко, структуру с территориальным распределением. Для качественного использования этих автоматизированных систем необходимо грамотно наладить обмен данными.
При первичной настройке обмена данными в программе 1С обычно нужно выполнить немало специфических мероприятий, как в области программирования, так и в сфере консалтинга. Причем даже в том случае, если речь идет об однотипных источниках информации, например, продуктами на базе 1С: Предприятие.
Узнаем о том, как синхронизировать или, проще говоря, настроить обмен данными в утилите 1С 8.3.
Цели обмена баз данных в 1С
Наладив обмен данными в программе 1С, можно добиться следующих целей:
- Разграничить различные варианты учета;
- Быстро актуализировать информацию, требующуюся сотрудникам различных подразделений компании;
- Наладить связь между распределенными офисами фирмы;
- Провести автоматизацию смежных бизнес-процедур;
- Не допустить ошибочного повторного ввода документации.
Поясним, что необходимость в разграничении разных видов учета возникает, когда информация одного варианта учета имеет значительные отличия от данных иного учета. Разграничение позволит добиться конфиденциальности сведений и «разбить» информационные потоки. Для примера: обмен данными между программами 1С – Бухгалтерия и Управление Торговлей не должен сопровождаться передачей управленческих данных в базу регламентного учета. Иными словами, синхронизация должна быть лишь частичной.
Особенности обмена данных в 1С
Типичная процедура первичного обмена данными в 1С (при условии, что 1С является хотя бы одним из объектов), состоит из таких этапов:
- Выделение состава обмена.
- Поиск протоколов обмена.
- Непосредственный обмен-синхронизация.
- Определение правил.
- Формирование графика.
Рассмотрим каждый этап подробнее.
Как выявить состав обмена?
Объекты обмена – это приемник и источник. Вместе с тем источник может быть одновременно приемником, и наоборот – в таком случае речь будет идти о двухстороннем обмене. Определить приемника и источника можно, учитывая функционал системы или необходимость. Предположи, при синхронизации созданной на платформе 1С: Предприятие системы управления казначейством и ведения финансового учета «WA: Финансист» специалисты советуют применять ее же как мастер-систему. Это связано с тем, что в программе есть функционал для контроля над соблюдением правил заявочной политики. А значит, работа программы окажется наиболее эффективной.
Определившись и зафиксировав требования пользователей, можно приступать к формированию перечня данных для обмена:
- Прописать процессы обработки коллизий (исключительных ситуаций) и работы с ошибками;
- Определиться с требованиями к частоте обмена данными;
- Выделить объем данных для синхронизации.
Здесь же, учитывая структуру и уже имеющиеся системы организации, нужно выбрать оптимальный формат обмена:
Новый проект компании-разработчика 1С, позволяющий проводить синхронизацию данных в формате xml между решениями, выполненными на базе 1С: Предприятие, со всеми вариантами систем автоматизации. Выбрав данный формат, можно облегчить доработки, необходимые для проведения обмена данными. Прежде для интегрирования в систему новой конфигурации нужно было экспортировать и импортировать сведения – как в нее, так и в имеющиеся системы. Сейчас же системы, работающие с EnterpriseData, имеют лишь одну область «входа/выхода», и не требуют доработок.
Механизм, дающий возможность настройки обмена данными между базами 1С, сторонними сервисами и решениями на основе 1С: Предприятие. Синхронизация выполняется путем перевода сведений в универсальный формат xml согласно «Плану Обмена».
Обмен осуществляется между схожими конфигурациями информационных баз 1С с ясной структурой управления «главный и подчиненный» для каждой пары обмена. Распределенная информационная база выступает в качестве составляющей технологической платформы, а также отправляет от главного к подчиненному административные сведения баз данных и изменения в конфигурации.
Определение протоколов обмена (транспорт)
Для решения на базе 1С: Предприятие имеется множество инструментов для синхронизации с любыми информационными сервисами с помощью единых универсальных стандартов - ADO-соединений, Excel, текстовых файлов, xml и других. Решая вопрос с выбором протокола обмена, нужно ориентироваться на возможности базы данных второго участника обмена – сторонней системы.
Синхронизируем справочники
Наличие общей точки ввода – ключевой принцип для качественной синхронизации справочников. Однако если мы говорим об использовании справочников, которые всегда оформлялись по различным правилам, следует четко выделить поля синхронизации для того, чтобы обмен мог проводиться по «общему знаменателю».
На этой стадии может возникнуть необходимость в нормализации НСИ со стороны источника данных. Зачастую требуются усилия большого количества специалистов – со стороны заказчика и со стороны собственника методики нормализации НСИ (интегратора) для оформления не хватающих полей и назначения полей синхронизации, обнаружения дублей и ошибок, распознавания, сопоставления элементов. Все зависит от состояния и величины справочников.
Определение правил
От того, насколько грамотно определены правила обмена зависит качество отображения информации от источников в системах-приемниках. Правила, оформленные в xml формате, контролируют соответствие главных реквизитов объектов приемника.
Программа 1С: Конвертация данных позволяет автоматизировать разработку правил для постоянного и разового обмена данными. Кроме того, при обмене «План Обмена» она гарантирует отсутствие утраты сведений. Это составляющая всех конфигураций, выполненных на основе 1С: Предприятие, целиком определяющая схему обмена 1С:
- Информационные базы приемники-передатчики – узлы;
- Документация с «опознавательными» реквизитами – состав данных;
- РИБ для определенных направлений обмена.
Все изменения сведений, имеющихся в «Плане Обмена», будут отражаться и получать признак «измененности». Признак «измененности» не будет сброшен до того момента, пока скорректированные сведения не станут в узлах приемника-передатчика соответствовать друг другу, и пока система не станет направлять в оба узла контрольные уведомления. Признак «измененности» сбросится, когда данные будут выгружены и обе системы подтвердят их полное соответствие друг другу.
График обмена в 1С
Частота выгрузки информации устанавливается при необходимости наладить регулярный автоматизированный обмен. Периодичность выгрузки определяется с учетом технических возможностей и необходимости. Кроме того, решения на основе 1С: Предприятие дают возможность настройки обмена сведения при наступлении определенных событий.
Есть несколько факторов, которые на различных этапах реализации процесса обмена данными потребуют доработок:
- Существенно разный состав и комплекс реквизитов в справочниках;
- Необходимость в нетиповых правилах синхронизации;
- Наличие объектов обмена, которые прежде были доработаны;
- Использование неактуальных, не обновлявшихся длительный срок версий конфигураций;
- Различные версии 1С: Предприятие;
- Использование значительно измененных, нестандартных баз данных.
Мы советуем обратиться за помощью к специалистам по 1С: так как даже стандартные мероприятия по выполнению первичного обмена сведениями требуют профессионального подхода. Непосредственную настройку обмена в конфигурации можно осуществлять, пройдя все указанные выше этапы.
Узнаем, как интегрировать базы данных, взяв для примера утилиты 1С: Розница и Управление Производственным Предприятием (аналогичным образом можно будет выполнить настройку обмена с 1С: Управление Торговлей). Кроме того, к стандартному обмену данными относится синхронизация между УПП и УПП, которая выполняется на крупных промышленных предприятиях в случае с масштабными систем автоматизации.
Особенности настройки со стороны 1С: Управление Производственным Предприятием
Кликаем на строку «Обмен данными c продуктами…», расположенную в разделе «СЕРВИС» (выбор прямого обмена с РОЗНИЦЕЙ может обернуться ошибками COM-объектов). Появится шаблонное уведомление о том, что «Данная возможность недоступна».
Поставьте флажок. Теперь на уведомление можно не обращать внимания.
Кликаем на «Создать обмен с «Розница» в настройках синхронизации информации
Откроется вкладка с предложением синхронизации.
Прежде, чем определять параметры подключения через сетевой или локальный каталог, нужно удостовериться, что под каталог достаточно пространства на диске. К слову, чаще всего каталог весит до 50 Мб. Крайне редко ему необходимо до 600 Мб. Оформить нужный каталог можно непосредственно из конфигуратора.
Если подключение осуществляется через сетевой каталог, на предложения программы выполнить настройку подключения по э-мейл и с помощью адреса FTP можно не обращать внимание. Кликаем на кнопку «ДАЛЕЕ».
Вручную в настройках указываем условные обозначения баз – префиксы (чаще всего РО, УПП, БП), определяем изначальную дату выгрузки сведений и правила. Префикс станет значиться в наименовании документации – для обозначения баз данных, в которых созданы правила. Если вы откажитесь от редактирования правил выгрузки данных, то данные автоматически начнут выгружаться по текущим параметрам программы.
Сводные данные по результатам выполненных мероприятий.
Формируем файл для настройки синхронизации для «РОЗНИЦА» (в дальнейшем это позволит отказаться от повтора действий). Если выполнить отправку данных необходимо сразу после настройки обмена, в соответствующей строке ставим флажок.
Чтобы автоматизировать процедуру синхронизации, нужно провести настройку графика.
Особенности настройки со стороны «РОЗНИЦЫ»
Ставим флажок и кликаем на «Синхронизация».
Выбираем «Управление производственным предприятием» для выполнения «обратной» настройки.
Выгружаем оформленный в УПП файл с настройками.
Ставим флажок. Система автоматически подхватит адрес.
Выполняем те же действия, что ранее осуществили в УПП.
Определяем правила для выгрузки данных.
Появляется сводная информация по результатам осуществленных мероприятий.
Двойным кликом мышкой открываем окно сопоставления данных. Выполняем проверочное сопоставление сведений. Вручную сопоставлять информацию советуем на этапе подготовки к обмену данными. Так как эти действия чаще всего являются наиболее сложными и масштабными при выполнении первичной синхронизации.
Если при синхронизации данных возникнет ошибка, фраза «Никогда…» заменит строку «Подробно…»
Строка «Подробно..» открывает журнал регистрации с детализированными данными по синхронизации.
Процедура синхронизации данных в 1С успешно подошла к концу.
Напоследок отметим, что даже стандартная процедура настройки обмена данными требует определенных теоретических знаний и практических умений. Если вы не уверены в том, что можете провести синхронизацию собственными силами, обращайтесь за помощью к профессионалам Первого Бита.
Хотите получать подобные статьи по четвергам?
Быть в курсе изменений в законодательстве?
Подпишитесь на рассылку
Использование веб-сервисов платформы 1С:Предприятие набирает обороты для решения задач интеграции: обмены данными между базами, взаимодействие с мобильными или веб-приложениями и многое другое. Огромные возможности могут покрыть любые потребности при решении задач интеграции. Если Вы разрабатываете веб-сервисы для интеграции больших / высоконагруженных баз, то возможно описанная здесь проблема будет уже не новой.
Быстрое решение
1. Настройка через диспетчер служб IIS:
2. Изменение файла "web.config" в корне директории веб-приложения:
3. В командной строке выполнить:
appcmd set config "Default Web Site" -section:requestFiltering -requestLimits.maxAllowedContentLength:1048576000 -commitpath:apphost
Правильное решение
В случаях, когда размер передаваемого пакета значительно больше установленных по умолчанию ограничений, изменять конфигурацию веб-сервера не рекомендую. Если заставить принимать веб-сервер пакеты в несколько гигабайт, то это может значительно повлиять на его производительность / работоспособность. Лучше всего сделать передачу большого пакета частями. Далее рассмотрим простейшую реализацию такого механизма на платформе 1С:Предприятие с использованием веб-сервисов.
Реализация
В тестовой конфигурации сделан пример веб-сервиса для передачи пакетов частями. Общий принцип следующий: через веб-сервис передаются части файла и записываются в регистр сведений. Для всех частей файла присваивается некоторый GUID, по которому файл можно будет "склеить" обратно, а также порядковый номер части. Наглядно передачу файла размером в 170 МБ по частям с размером 5 МБ можно представить так:
Для промежуточного сохранения частей файла используется регистр сведений. Передача файла через веб-сервис выполняется с использованием XDTO-пакетов следующей структуры:
Фактически пакет дублирует структуру регистра сведений:
Далее представлен обработчик метода веб-сервиса:
В качестве параметра метод веб-сервиса принимает объект с типом "MessagePartRequest" и передает из него данные в функцию "ЗафиксироватьПриемПакета". Эта функция сохраняет полученные через веб-сервис данные в базу:
Также в конфигурацию добавлен общий модуль ОбменДаннымиWS с функциями отправки и получения файла. Функция отправки файла разбивает его на части и передает каждую часть отдельно, обращаясь к веб-сервису:
Для получения исходного файла из сохраненных в регистре сведении его частей используется следующая функция:
Вот и все, такая простая реализация! Посмотрим на результат.
Проверка
Передача файла была продемонстрирована выше, теперь же давайте посмотрим на работоспособность функции получения ранее переданного файла.
Как видим, исходный файл получен с тем же размером. Задача выполнена!
Выводы
В статье рассматривается вопрос передачи больших объемов данных, превышающих теоретический лимит сеансовых данных (4Гб за вызов) (они же временное хранилище) как с клиента на сервер, так и в обратном направлении.
Проблематика.
Стандартный метод обмена данными между клиентом и сервером - временное хранилище. На одной стороне мы выполняем вызов "ПоместитьВоВременноеХранилище", получаем адрес, передаем его на другую сторону, там выполняем "ПолучитьИзВременногоХранилища". Есть пара неприятных нюансов.
- За один вызов невозможно поместить во временное хранилище больше 4 Гб данных.
- В процессе помещения данных в ВХ (здесь и далее временное хранилище) активно используются временные файлы. Точных данных нет, но в процессе помещения в темпах занимается временными файлами четырёхкратный объём помещаемого файла. Помещаете 4 Гб - потребуется ещё 16 Гб на разделе, где размещен temp. С нескромными аппетитами можно бы смириться (всё таки дисковое пространство - не самый дорогой ресурс в наши дни), если говорить об исключительности ситуаций, когда требуется обмен большими объемами данных. Если же эта операция выполняется регулярно, большим количеством пользователей, то велик шанс, что одновременно потребуется место для 10-100-Х (подставьте любое большое число загрузок, которое вам нравится) одновременных закачек, которые могут израсходовать всё свободное место на диске.
- Из второй проблемы вытекает ещё и третья. Скорость записи на жесткий диск (в том числе во временные файлы) не бесконечна, хоть и ожидается выше скорости обмена по сети. А значит, запись пятикратного объема данных (сами данные и четырёхкратный темп для них) займёт пропорционально в 5 раз больше времени, чем если бы данные записывались ровно 1 раз.
Пути решения проблемы.
- Не передавать столько данных. Всерьёз такой способ рассматривать не будем.
- Использовать сторонние ресурсы. Тут уже вы ограничены только собственной фантазией (ftp, webdav, облачные хранилища от различных поставщиков). Все эти способы имеют один общий недостаток. Количество операций ввода-вывода увеличивается вдвое. Один раз данные помещаются в условное облако, и только второй раз по назначению (в зависимости от направления передачи данных). Этот способ в статье рассматриваться не будет
- Разделять файл на более мелкие части, передавать каждую часть последовательно. Вариант предполагает использование временного хранилища, а значит решает только одну из двух проблем - ограничение в 4 Гб.
- Использовать альтернативный транспорт, соединяющий напрямую сервер с клиентом (с некоторыми оговорками). Если не уходить в дебри с использованием внешних библиотек, позволяющих открывать TCP сокеты, платформа позволяет нам использовать как довольно гибкий транспорт http соединение с помощью объекта конфигурации http-сервис. А разработчики библиотек компании 1С даже реализовали на основе механизма http-сервисов служебную библиотеку "ПередачаДанных", которая позволяет обмениваться данными серверу 1С Предприятие с различными клиентами (не только родными). На этом способе хотелось бы остановиться более подробно. На тестах по передаче данных объемом до 20Гб средняя скорость получалась примерно в 3 раза выше, чем при передаче через временное хранилище, поддерживалась докачка прерванных загрузок, была теоретическая возможность организовать загрузку в несколько потоков. Описание библиотеки можно найти на сайте ИТС по ссылке. Отдельным пакетом передачу данных не публикуют. Библиотека входит в состав как БСП, так и БТС (из чего следует, что она присутствует во всех типовых, адаптированных для публикации во фреше), которые доступны всем желающим (с подпиской ИТС) на релизах. Библиотека выделена в отдельную подсистему "Передача данных".
Как это устроено. Общее описание ландшафта.
Адреса методов "ПередачаДанных"
1. Формируем запрос. Он может быть сформирован как через вызовы методов http-сервиса ХранилищеИИдентификатор и ТомИПутьКФайлу (в этом случае необходимо указать свои учетные данные для аутентификации), так и с помощью серверного вызова: "РегистрСведений.ВременныеИдентификаторыЗапросов.ЗарегистрироватьЗапрос". В этом случае дополнительная аутентификация не нужна, использутся учетные данные текущего сеанса.
2. Ответ на запрос содержит токен. В дальнейшем этот токен используется для анонимного доступа к сервисам "передачи данных". Токен может быть использован только для той операции, которая была запрошена в запросе. Нельзя запросить скачивание файла А, а вместо этого загрузить на сервер файл Б. Токен действителен в течение 10 минут после регистрации запроса. После каждого обращения по токену время его жизни продляется на 10 минут.
Пример реализации загрузки данных на сервер в тонком клиенте
далее следует неудобная для листинга цепочка якобы асинхронных вызовов, получение размера файла итд. Этот этап пропустим, переходим сразу к загрузке.
Вызов "ЗаполнениеПараметровПубликацииНаСервере" регистрирует запрос на сервере от имени текущего пользователя, что в дальнейшем позволит анонимно отправлять http запросы без аутентификации. Образец работы с библиотечными вызовами будет приложен в файлах. Далее инициализируются http соединение, запрос уже на анонимный http сервис upload. Открывается файловый поток на чтение и последовательно вычитывается в буфер указанное в настройках количество байт. Запрос дополняется заголовком "Content-Range", используемым на сервере для "склейки" фрагментов передаваемого файла, и отправляется на сервер. Эта процедура циклически повторяется, пока все данные из файла не будут переданы. Последний ответ сервера содержит идентификатор файла в логическом хранилище (для его дальнейшего использования).
Пример реализации скачивания данных с сервера в тонком клиенте
- как то находим наш идентификатор
- формируем запрос на скачивание, как в предыдущем пункте
- формируем полный URL загружаемого файла
- делаем гиперссылку с этим URL на форме
На самом деле немного сложнее, но об этом в последнем разделе
Пример реализации загрузки данных на сервер в веб-клиенте
А вот java script позволяет. Поэтому было принято решение для веб клиента экспроприировать диалог выбора файла прямо из браузера со всеми стилями и использовать его в своих корыстных целях. HTML форма диалога выбора файла позволяет перетаскивать файл(ы) drag'drop-ом, сразу несколько (хотя это и запрещено в примере), показывает полосу прогресса (чего в 8.3.15 так и не сделали), ну и конечно же работает с библиотекой "Передача данных". Более подробно смотрите внешнюю обработку в приложениях к статье.
Концепт скачивания данных с сервера в веб-клиенте
Проанализировав активность на сервере (дисковую в первую очередь) было выяснено, что файл после запроса начинает бродить по темпам. Сначала его копирует сервер предприятия, потом веб-сервер, потом (в моём случае на внешний мир смотрел ещё 1 слой из nginx в роли reverse proxy) ещё раз это делает nginx. И вот, пока идёт копирование файла во временные, колёсико крутится и мы ждём. Если файл не успевает скопироваться за настроенное время ожидания - привет 504 (Gateway timeout).
На просторах интернета было найдено решение по рекомендации "лучших собаководов". Оно достаточно зависит от используемого веб-сервера.
Методика называется "контролируемая загрузка", состоит в следующем. Клиент запрашивает какой то ресурс. В нашем случае: https://host/ib/hs/dt/download/queryid. Вебсервер передает этот запрос на backend (на сервер предприятия), который добавляет в ответ специальные заголовки, которые говорят вебсерверу, какой файл отдавать. Примеры (правда для php) можно посмотреть в этой 1. В конфиге нашего сервера объявляем дополнительный "internal" location. Это важно. Доступ к файловой системе, указанной в этом location будет только у сервера, клиенты даже случайно не смогут получить доступа к содержимому каталога или даже самим файлам по прямой ссылке. Возможно использование как локальных файловых систем, так и смонтированных cifs и nfs шар.
2. В коде http-сервиса на стороне сервера предприятия добавляем специальные заголовки к ответу. В отличие от стандартной передачи файла в ответе сервера, в тело ответа не добавляются двоичные данные файла, а используется заголовок "X-Accel-Redirect". В переменной ИмяФайла формируется путь до файла в location, например, если файл фактически находится в /some/path/protected/file1.txt, то в переменной ИмяФайла должно находиться значение /protected/file1.txt. Ознакомиться с документацией по этому механизму можно здесь
Аналогичный инструмент существует для Apache (если вам не нужен reverse proxy) -
PS: Не судите строго за не совсем ИС тематику публикации. Очень огорчает распространенное мнение, что 1С - это медленно, местячковый продукт для своих целей и своего рынка.
PPS: файл внешней обработки "выдирался" из конфигурации, возможно содержит ошибки. Тестирование проводилось на конфигурации Менеджер сервиса 1.0.83.10. Если будут проблемы, с удовольствием помогу разобраться в комментариях и/или обновлениях статьи.
Во время создания очередной B2B-системы на этапе интеграции 1С: Предприятие 8.2 с web — интерфейсом возникла необходимость безопасной передачи файлов больших размеров из 1С в web.
Для решения этой задачи был выбран протокол SFTP, как надежный и не имеющий ограничений по размеру передаваемого файла.
Во встроенном языке 1С: Предприятие 8.2 отсутствуют функции для передачи данных через SFTP, поэтому пришлось искать прикладные средства. На интернет-ресурсах, посвященных программированию 1С, есть примеры удачного использования freeware утилит типа WinSCP. Для использования данного способа необходимо из встроенного языка 1С выполнить запуск утилиты с параметрами командной строки.
Пример запуска утилиты WinCSP из 1С:
Минусом такого решения является отсутствие возможности контроля ошибок запуска и выполнения из встроенного языка 1С. В связи с этим было принято решение написать внешнюю DLL компоненту для 1С: Предприятие 8.2.
Создание компоненты DLL
- IcomponentBase — реализует основные методы компоненты.
- IlanguageInterface — служит для локализации методов и свойств 1С и С++ через определения массивов соответствий и методов акцессоров GetMethodName, GetPropName.
3. Для вызова необходимой функции из компоненты используется метод CallAsFunc из интерфейса IcomponentBase. При вызове методов из компоненты 1С, вызывается этот С++ метод.
- lMethodNum – номер метода в массиве соответствий.
- pvarRetValue – указатель на выходные параметры.
- paParams — параметры из метода в 1С.
- lSizeArray – размер массива, если входной параметр массив.
4. В нашем примере из 1С можно выполнять 4 метода, которым соответствуют С++ методы в DLL компоненте.
1С (методы) | С++ методы |
---|---|
НачатьСессию() Предварительно нужно определить параметры авторизации(хост, связку логин, пароль – либо rsa ключи, путь на удалённом сервере). Поэтому функция НачатьСессию обрастает свойствами: Хост, Логин, Пароль, УдаленныйПуть | StartSSHSession(status,this->ssh_host,this->ssh_login,this->ssh_pass); StartSftpSession(status,this->sftp_path) |
ПослатьФайл(“Путь и имя файла на клиентской машине”) | WriteToServer(const char * &status, const char *loclfile) |
ЕслиСессияНачата() | isSessionStart() |
ЗакончитьСессию() | endSession() – завершает SFTP сеанс и SSH сеанс |
5. В С++ нужно определить параметры доступа(чтение/запись) к созданным свойствам за это отвечают два метода IsPropReadable и IsPropWritable.
Таблица соотношений свойств 1С и С++
1С(свойства) | С++ свойства |
---|---|
Хост | ssh_host |
Логин | ssh_login |
Пароль | ssh_pass |
УдаленныйПуть | Sftp_path |
Готовую библиотеку можно скачать тут.
Работа с компонентой во встроенном языке 1С
1. Выполняем подключение и создаем объект внешней компоненты, с помощью стандартных команд встроенного языка 1С.
2. Заполняем 4 свойства объекта компоненты Хост, Логин, Пароль, УдаленныйПуть.
3. Открываем сессию соединения
4. Отправляем файл
5. Отправляем следующий файл, с проверкой открыта ли сессия соединения.
6. После отправки файлов закрываем сессию
В результате выполнения успешно был передан файл с C:\data2.xml в /var/www/company/data/www/import/data.xml.
Вывод: данная реализация позволяет передавать файлы из 1С: Предприятие 8.2. большого размера по защищенному протоколу SFTP. Плюс появляется возможность переносить часть функционала из 1С во внешнюю компоненту, что защищает написанный код и позволяет реализовывать дополнительный, не доступный 1С функционал.
Задача: требуется настроить обмен данными через файл из 1С: Управление торговлей 11 (далее УТ) в 1С: Бухгалтерия 3.0 (далее Бухгалтерия).
- платформа 1С: Предприятие 8.3 (8.3.13.1690),
- конфигурация Управление торговлей, редакция 11 (11.4.7.150),
- конфигурация Бухгалтерия предприятия (базовая), редакция 3.0 (3.0.72.72)
- режим Файловый (без сжатия).
- настроить параметры подключения,
- настроить правила отправки и получения данных,
- выполнить начальную выгрузку данных.
- настроить правила отправки и получения данных,
- выполнить сопоставление и загрузку данных,
- выполнить начальную выгрузку данных.
ШАГ 1. Настройка в УТ
Переходим в раздел «НСИ и администрирование» и выбираем пункт «Синхронизация данных». Обязательно должен быть указан префикс информационной базы. В нашем случае это «ЦБ».
Устанавливаем флаг «Синхронизация данных» и переходим по ссылке «Настройки синхронизации данных». Нажимаем кнопку «Новая синхронизация данных». В открывшемся окне выбираем конфигурацию, с которой будем настраивать обмен. В нашем случае это «Бухгалтерия предприятия, редакция 3.0».
Откроется окно настройки синхронизации. Выберем пункт «Настроить параметры подключения».
Так как обмен будет настраивать через файл, то выбираем пункт «синхронизация данных через файл, без подключения к другой программе».
Далее укажем каталог и настроим архивацию файлов.
Далее укажем префикс базы бухгалтерии и название файла с настройками синхронизации.
Обратите внимание: если указать префикс, по которому уже есть обмен, то будет ошибка, программа предложит указать уникальный код. Нажимаем «Далее» и на этом заканчивается первый шаг настройки.
В результате у нас появится два файла в указанной папке: файл с данными (Message_ЦБ_БП.zip) и файл с настройками обмена (Синхронизация данных через универсальный формат.xml). Обратите внимание: если в УТ попробовать перейти к этапу «Настроить правила отправки и получения данных», то будет ошибка.
ШАГ 2. Настройка в Бухгалтерии
Перед настройкой синхронизации в Бухгалтерии нам понадобятся два файла, созданных на предыдущем шаге. Разместим файлы Message_ЦБ_БП.zip и Синхронизация данных через универсальный формат.xml в любую папку на компьютере с базой Бухгалтерии. Внимание: если Бухгалтерия находится на одном компьютере с УТ, то ничего переносить не нужно. Будем использовать ту же папку, что и для УТ.
Сначала перейдем в раздел «Администрирование» и выберем пункт «Синхронизация данных». В открывшемся окне проверим, чтобы префикс указанной базы совпадал с префиксом, который мы указали на первом шаге.
Устанавливаем флаг «Синхронизация данных» и переходим по ссылке «Настройки синхронизации данных». Нажимаем кнопку «Новая синхронизация данных». В открывшемся окне выбираем конфигурацию, с которой будет настроен обмен. В нашем случае это «1С: Управление торговлей, редакция 11».
Откроется окно настройки синхронизации. Выберем пункт «Настроить параметры подключения».
Так как обмен настраиваем через файл, то выбираем пункт «синхронизация данных через файл, без подключения к другой программе». На Шаге 1 мы уже создали файл с настройками обмена Синхронизация данных через универсальный формат.xml, поэтому выберем его. Если был создан другой каталог и туда скопировали файл с настройками обмена, то выбираем его.
Далее укажем каталог и настроим архивацию файлов. В данном случае каталог может быть тот же самый или тот, в который перенесли два файла.
Далее проверяем настройки префиксов и на этом настройка параметров подключения в Бухгалтерии завершена.
Далее переходим к следующему этапу «Настройка правил отправки и получения данных».
Так как задачи выгрузки из Бухгалтерии у нас нет, то в настройках отправки данных укажем «не отправлять».
В настройках получения данных укажем типовые настройки. При необходимости можно указать свои настройки.
Нажимаем «Записать и закрыть». Далее переходим к следующему этапу «Выполнить начальную выгрузку данных».
После выполнения операции будет создан в каталоге обмена файл с данными Message_БП_ЦБ.zip. На этом этап настройка обмена в Бухгалтерии закончена.
ШАГ 3. Окончание настройки в УТ
Вернемся в УТ. Если использовался другой каталог, то в папку обмена УТ перенесем файл, созданный на прошлом шаге Message_БП_ЦБ.zip.
Продолжим настройку синхронизации в УТ с этапа «Настроить правила отправки и получения данных».
В настройках обратим внимание на два поля.
1.Отправлять только используемую в документах нормативно-справочную информацию.
2.Отправлять все, начиная с даты. Это поле полезно, так как бывает, что нужно начать синхронизацию с определенного времени. Например, учет в УТ уже был настроен ранее, а в
Бухгалтерии только начинаем вести учет. Тогда нет необходимости переносить все документы из УТ в Бухгалтерию. Или второй случай: нужно поменять настройки обмена, но чтобы они действовали только для документов с определенной даты.
Все остальные поля заполняем в зависимости от учета.
В нашем случае настройка получения данных не требуется. Оставляем ее без изменений.
Нажимаем «Записать и закрыть». Переходим к следующему этапу «Выполнить сопоставление и загрузку данных».
В нашем случае программа ничего загружать не будет и перейдет к следующему этапу.
На последнем этапе «Выполнить начальную выгрузку данных» программа выгрузит данные из УТ в файл Message_ЦБ_БП.zip.
Обратите внимание (для случая с двумя каталогами): полученный файл Message_ЦБ_БП.zip копируем в каталог обмена Бухгалтерии. В Бухгалтерии выполняем синхронизацию. При этом Бухгалтерия сначала загрузит данные из присланного файла Message_ЦБ_БП.zip, потом обновит свой файл выгрузки Message_БП_ЦБ.zip Этот файл выгрузки Message_БП_ЦБ.zip нужно скопировать обратно в каталог обмена УТ и в УТ выполнить синхронизацию. При этом УТ сначала загрузит данные (если они там есть) из файла Message _БП_ЦБ.zip, а потом обновит свой файл выгрузки Message _ЦБ_БП.zip и т.д.
ШАГ 4. Итоги
В результате мы получили файл с настройками обмена Синхронизация данных через универсальный формат.xml и два файла с данными: Message_БП_ЦБ.zip (данные из Бухгалтерии) и Message_ЦБ_БП.zip (данные из УТ).
Читайте также: