Описание основных возможностей модуля

Обмен данными между 1С:Предприятие 7.7 и 1С-Битрикс реализован посредством файлов в формате CSV и XML. Формат файлов XML не стандартизирован.

Обмен данными по расписанию 

Выгрузка данных из 1С:Предприятие 7.7


Выгрузка из 1С:Предприятие 7.7 осуществляется в несколько этапов:
  • формирование CSV-файлов
  • архивирование сформированных файлов с помощью утилиты 7za.exe
  • авторизация на сайте и получение Cookie для последующих запросов со стороны 1С
  • передача файла с каталогом на сайт
  • распаковка переданных файлов на сайте
  • последовательная загрузка переданных файлов

При формировании файлов, содержащих каталог и предложения на сайт в качестве идентификатора передается код элемента (группы) справочника "Номенклатура".

добавление реквизита ИдентификаторРекомендуем добавить в справочник "Номенклатура" поле "Идентификатор", тип "Строка", длина 40, использовать "Для обоих" и включить "Сортировка". В случае использования этого поля надежность идентификации товаров повысится. Время первой выгрузки товаров, в этом случае, существенно возрастет, т.к. будет осуществляться генерация идентификаторов.

В результате загрузки на сайте будет создан инфоблок (при необходимости) для загрузки каталога и инфоблоки для всех реквизитов типа справочник и свойств, которые будут отмечены на соответствующих закладках. Для инфоблока с каталогом автоматически будут созданы свойства, идентификаторы свойств можно задать в 1С:Предприятие. Реквизиты справочника "Номенклатура" типа "Перечисление" будут выгружены в свойства типа "список". Список значений будет автоматически заполнен всеми значениями перечисления. Реквизиты справочника "Номенклатура" типа "Справочник" будут выгружены в свойства типа "Привязка к элементам", будут созданы соответствующие инфоблоки, которые будут заполнены актуальными данными. Реквизиты справочника "Номенклатура" типа "Строка" и "Число" будутвыгружены в свойства соответствующих типов.

Важно: в случае использования реквизита "Идентификатор" в форме элемента следует отредактировать процедуру ВводНового(), добавив строку Идентификатор = "";

наверх

Обмен данными по расписанию

Обмен данными по расписанию выполняется средствами стандартного планировщика Windows. Для реализации процедуры обмена по расписанию необходимо сделать ряд настроек на стороне 1С:Предприятие 7.7. Приведем примеры настроек для полного цикла обмена (выгрузка/загрузка) и раздельного режима (отдельно выгрузка остатков, отдельно загрузка заказов)

Одновременная выгрузка остатков и загрузка заказов

В конфигураторе 1С:Предприятие создается пользователь с необходимыми правами, например, АгентСайта. Создается ярлык запуска 1С:Предприятие с следующими свойствами: 
"C:\Program Files (x86)\1Cv77\BIN\1cv7l.exe" enterprise /DD:\1CBases\77\DB\ /NАгентСайта /Ppass

  • путь к исполняемому файлу 1С
  • enterprise
  • /Dпуть_к_базе
  • /Nимя_пользователя
  • /Pпароль_если_есть

настройка ярлыка 1С настройка ярлыка 1С

В глобальном модуле 1С:Предприятие необходимо найти процедуру

Процедура ПриНачалеРаботыСистемы()

в конце этой процедуры необходимо добавить код

    Если ИмяПользователя() = "АгентСайта" Тогда
        СписокДействий = СоздатьОбъект("СписокЗначений");
        СписокДействий.ДобавитьЗначение(1, "ВыгрузитьОстатки");
        СписокДействий.ДобавитьЗначение(1, "ЗагрузитьЗаказы");
        ОткрытьФорму("Отчет", СписокДействий, КаталогИБ() + "ExtForms\1CExchangeV2.3.ert");
        ЗавершитьРаботуСистемы(0);
    КонецЕсли;   

настройка глобального модуля 1С

наверх

Раздельная выгрузка остатков и загрузка заказов

Последовательность действий в этом случае аналогична, описанной выше. Создается два пользователя, например, АгентСайта1 (для выгрузки остатков) и АгентСайта2 (для загрузка заказов). Создается два ярлыка для запуска 1С, которые отличаются только параметрами /NАгентСайта и /Ppass. В планировщике эти ярлыки запускаются с разной периодичностью.  В глобальном модуле в этом случае необходимо сделать следующие изменения

    Если ИмяПользователя() = "АгентСайта1" Тогда
        СписокДействий = СоздатьОбъект("СписокЗначений");
        СписокДействий.ДобавитьЗначение(1, "ВыгрузитьОстатки");
        СписокДействий.ДобавитьЗначение(0, "ЗагрузитьЗаказы");
        ОткрытьФорму("Отчет", СписокДействий, КаталогИБ() + "ExtForms\1CExchangeV2.3.ert");
        ЗавершитьРаботуСистемы(0);
    КонецЕсли;   

    Если ИмяПользователя() = "АгентСайта2" Тогда
        СписокДействий = СоздатьОбъект("СписокЗначений");
        СписокДействий.ДобавитьЗначение(0, "ВыгрузитьОстатки");
        СписокДействий.ДобавитьЗначение(1, "ЗагрузитьЗаказы");
        ОткрытьФорму("Отчет", СписокДействий, КаталогИБ() + "ExtForms\1CExchangeV2.3.ert");
        ЗавершитьРаботуСистемы(0);
    КонецЕсли;    

наверх 

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