Обмен 1с битрикс зуп

Обновлено: 02.07.2024

Добрый день
Столкнулся с тем, что при выгрузке оргструктуры из ЗУП на портал не переносится фотография сотрудника.
Поглядел в выгрузку и там даже нет намека на привязываение картинки к сотруднику.
Это сделано умышленно или как-то можно настроить эту выгрузку?

1С:Предприятие 8.3 (8.3.8.1784)
Зарплата и управление персоналом, редакция 3.0 (3.0.25.125)

(1) nosferat, делал такое в 2011 году для ЗУП 2.5. Но как именно уже не помню( Да и версия битрикса другая была.
Что-то на стороне 1С подкручивал и на стороне битрикса в настройках.

(2)
(3)
Люди! Помогите разобраться!

1. Добавляем функцию ВыгрузитьФотографиюСотрудникаXDTO при выгрузке сотрудника
2. в процедуре ПолучитьСписокФайловДляОтправки добавляем поиск файлов по подкаталогам

// Потехин А.С. Процедура ВыгрузитьФотографиюСотрудникаXDTO(ПараметрыОбмена, МенеджерВременныхТаблиц, ФизическоеЛицо, Владелец, Итератор) СтруктураДанныхКартинки = ВыгрузитьКартинку(Владелец.Ид, ФизическоеЛицо, ПараметрыОбмена); Если СтруктураДанныхКартинки.Размер <> "0" Тогда Владелец.Картинка.Добавить(СтруктураДанныхКартинки.Адрес); Итератор = Итератор + 1; КонецЕсли; КонецПроцедуры // Потехин А.С. Функция ВыгрузитьКартинку(Ид, Объект, ПараметрыОбмена) СтруктураРезультата = Новый Структура; СтруктураРезультата.Вставить("Адрес" , ""); СтруктураРезультата.Вставить("Формат", Строка(ФорматКартинки.НеизвестныйФормат)); СтруктураРезультата.Вставить("Размер", "0"); АдресФотографииФизическогоЛица = КадровыйУчетРасширенный.АдресФотографииФизическогоЛица(Объект); Если Не ЗначениеЗаполнено(АдресФотографииФизическогоЛица) Тогда Возврат СтруктураРезультата; КонецЕсли; Картинка = Новый Картинка(ПолучитьИзВременногоХранилища(АдресФотографииФизическогоЛица)); Если ТипЗнч(Картинка) <> Тип("Картинка") Тогда Возврат СтруктураРезультата; КонецЕсли; Попытка ФорматКартинкиОбъекта = Картинка.Формат(); Если ФорматКартинкиОбъекта = ФорматКартинки.НеизвестныйФормат Тогда СообщитьПодробно("У объекта обнаружено основное изображение неизвестного формата: " + Объект, ПараметрыОбмена); Возврат СтруктураРезультата; КонецЕсли; ФорматКартинкиРазрешен = Истина; Если НЕ (ФорматКартинкиОбъекта = ФорматКартинки.GIF ИЛИ ФорматКартинкиОбъекта = ФорматКартинки.JPEG ИЛИ ФорматКартинкиОбъекта = ФорматКартинки.PNG) Тогда Попытка ФорматКартинкиОбъекта = Картинка.Преобразовать(ФорматКартинки.JPEG); Исключение СообщитьПодробно("Не удалось преобразовать картинку для " + Объект + " из " + Строка(ФорматКартинкиОбъекта) + " в JPEG", ПараметрыОбмена); ФорматКартинкиРазрешен = Ложь; КонецПопытки; КонецЕсли; Если НЕ ФорматКартинкиРазрешен Тогда Возврат СтруктураРезультата; КонецЕсли; Исключение СообщитьПодробно("Не удалось выгрузить картинку для объекта: " + Объект + " " + ОписаниеОшибки(), ПараметрыОбмена); ФорматКартинкиРазрешен = Ложь; КонецПопытки; КаталогНаДиске = ПараметрыОбмена.КаталогВыгрузкиЗащищенный; ПодкаталогКартинок = ПараметрыОбмена.ПодкаталогФайлов; РасширениеФайлаКартинки = "." + НРег(Строка(ФорматКартинкиОбъекта)); ИмяФайлаКартинки = Строка(Ид) + РасширениеФайлаКартинки; КаталогПоИмени = Лев(ИмяФайлаКартинки, 2); КаталогКартинки = КаталогНаДиске + "\" + ПодкаталогКартинок + "\" + КаталогПоИмени; СоздатьКаталог(КаталогКартинки); ПолноеИмяФайлаКартинки = КаталогКартинки + "\" + ИмяФайлаКартинки; ФайлКартинкиНаДиске = Новый Файл(ПолноеИмяФайлаКартинки); Картинка.Записать(ПолноеИмяФайлаКартинки); СтруктураРезультата.Адрес = ПодкаталогКартинок + "/" + КаталогПоИмени + "/" + ИмяФайлаКартинки; СтруктураРезультата.Формат = Строка(ФорматКартинкиОбъекта); СтруктураРезультата.Размер = Формат(ФайлКартинкиНаДиске.Размер(), "ЧГ timeline-seperator text-center text-primary no-margin no-border"> Показать

Установка модуля

Запустите 1С: Зарплата и управление персоналом (1С-ЗУП) в режиме Конфигуратор . Обратите внимание, что установка модуля возможна только для версии конфигурации не ниже 2.5.9.2. Следуйте детальным пошаговым инструкциям, входящим в установочный комплект.

В результате в меню Сервис (в полном интерфейсе) должны появиться соответствующие пункты.

Новые пункты меню

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

Настройка обмена с корпоративным порталом

Откройте 1С: Зарплата и управление персоналом. В меню Сервис - Обмен данными с корпоративным порталом выберите пункт Настроить обмен данными с корпоративным порталом .

Настройка обмена. Шаг 1.

Выберите Создать новую настройку обмена . Откроется интерфейс первичной настройки обмена с корпоративным порталом.

Настройка обмена. Шаг 2.

Настройка обмена. Шаг 3.

На следующем шаге вы можете детализировать данные, которые будут переданы в корпортал. Если вы хотите, чтобы были выгружены все стандартные данные в полном объеме, оставьте настройки по умолчанию.

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

Опция Выгружать картинки означает что на корпортал будут выгружены фотографии сотрудников, если они были указаны в 1С.

Будьте внимательны! Именно на этом шаге совершается максимальное количество ошибок неопытными пользователями, в результате чего обмен не работает или работает некорректно.

Настройка обмена. Шаг 4.

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

Все изменения в объектах регистрируются в соответствующем Узле обмена данными , который и требуется указать в одноименном поле.

Настройка обмена. Шаг 5.

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

Настройка расписания обмена

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

Настройка обмена. Завершение

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

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

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

В жизни так бывает, причём бывает чаще чем хотелось бы, хоть в целом и довольно редко – надо интегрировать Битрикс24 с ЗУП. Сими дружественными компаниями заявлена штатная интеграция (но только для коробки Б24), которая осуществляется по следующей принципиальной схеме:

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

На стороне Б24 имеем в качестве точки обмена скрипт, если быть точнее скрипты (но об этом будет ниже), в одном из которых вызов метода IncludeComponent, который подключает контроллер. Он и таит в себе логику обмена.

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

Пролог

Нам же это скучно, поэтому ввязываемся в авантюру по интеграции ЗУП с Б24 Enterprise, а чтобы было интереснее – берем закрытый объект, почти совсем не бизнес даже, а учреждение с многоуровневой и чудно ветвленой системой безопасности.

В общем, на руках бэкап Б24 с обезличенными данными и обезличенный же XML-файл обмена из ЗУП.

Итак, сама задача… Хотя, нет. До самой задачи ещё далеко – не помешало бы сначала наладить тестовый механизм для того, чтобы по заверениям работающий штатный алгоритм проверить.

Виртуальная машина VMBitrix – 1 шт.

1С-Битрикс24 (копия для разработки) – 1 шт.

Файл обмена, выгруженный предположительно штатным модулем обмена 1С – 1 шт.

VS Code + SSH FS плагин на будущее – 1 комплект.

Виртуальная машина VMBitrix

По правде говоря, это никакая не виртуальная и даже не машина, а CentOS 7 (ну, или 6) со всеми вытекающими. Можно из чистой центоси сделать своеобразный и уже сконфигурированный LAMP+ для Битрикс несколькими командами.

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

Следует ещё отметить, что VMBitrix не единственное, но самое быстро-разворачиваемое универсальное окружение для Б24.

1С-Битрикс24 Enterprise

Не буду много распространяться про то, что отличает Энтерпрайз от других коробок. Наверное, в данном повествовании хватит акцента на цене и уровне ответственности. Тем более, модули связанные с масштабированием не используются. Впрочем, как и многосайтовость.

Файл обмена из 1С ЗУП

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

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

VS Code + SSH FS плагин

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

Не зря в самом начале статьи была реплика про то, что «Обмен инициирует всегда 1С». Для понимания архитектуры это был первый шаг, в модуле обмена на стороне 1С прописан адрес скрипта, выступающего узлом обмена в Б24 – по умолчанию это /bitrix/admin/1c_intranet.php.

В нем, согласно правилам системы ничего не хранится. Подключается один из служебных скриптов системного модуля Интранет(intranet) /bitrix/modules/intranet/tools/1c_intranet.php.

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

Postman

При упоминании должности почтальона в наших широтах перед глазами встает образ скорее Печкина из Простоквашино, нежели герой Кевина Костнера из одноименного заокеанского фильма.

Эпилог

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

Что важно знать про обмен:

Протокол обмена – GET

Нужно несколько последовательных запросов с разными параметрами

Если файл выгрузки 1С ЗУП в архиве, то нужно использовать галочку «Использовать сжатие zip, если доступно» в настройках модуля Интранет в админке. И наоборот – если XML без архивной оболочки – галочку нужно снять.

Первый запрос, авторизация по логину и паролю:

Возвращает PHPSESSID. Его необходимо в последующем передавать с каждым запросом.

Подготавливает/вычищает папку для загрузки файла. Возвращает что-то вроде zip=no

file_limit=204800 , если всё отработало.

В случае успешной передачи и записи файла на сервер возвращает success. Будьте бдительны – нужно передать в Body сам файл бинарно, и указать его название в GET-параметре filename.

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

Временные таблицы удалены.

Временные таблицы созданы.

Файл импорта прочитан.

Временные таблицы проиндексированы.

Проверка структуры успешно пройдена.

Метаданные импортированы успешно.

Обработано 2 из 2 пользователей.

Загрузка пользователей завершена.

Обработано 11 из 11 записей графика отсутствий.

Загрузка графика отсутствий завершена.

Импорт успешно завершен.

Постскриптум

Наверняка, кто-то из комментаторов укажет на другие инструменты, или сможет поделиться похожим опытом. Возможно, кто-то проведет параллели с импортом каталога из УТ в БУС.

По правде говоря, сам тоже, хоть в статье и опустил, но руководствовался аналогичным опытом. Продолжение следует – в следующей статье расскажу как решалась сама задача породившая такую хитроумную организацию труда.

Курс предназначен для базовой подготовки пользователей, осуществляющих администрирование порталов, созданных на коробочной версии сервиса Битрикс24. Изучение курса позволяет освоить основные методы администрирования системы. Если вы хотите ознакомиться с тем как внедрить наш сервис в работу вашей компании, то для вас создан курс Внедрение корпоративного портала.

Курс предусматривает обучение по двум ролям администраторов: Администратор корпоративного портала и Администратор системы.

Администратор корпоративного портала - пользователь, осуществляющий текущее администрирование уже настроенного и сданного в эксплуатацию портала. Администратор системы - пользователь имеющий полный доступ к настройке системы.

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

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

  • настраивать модули системы;
  • использовать возможности интерфейса по управлению системой;
  • управлять доступом к системе, сайтами, пользователями, группами пользователей;
  • управлять содержимым портала;
  • работать с инструментами системы;

Начальные требования

Для прохождения курса необходимо:

  • наличие базовых навыков компьютерной грамотности и навыков работы с ОС Windows;
  • наличие представлений о WWW и организации доступа к веб-серверу;
  • базовые навыки установки и администрирования *nix-систем.

Если вам предстоит самостоятельная установка системы, то рекомендуется к изучению курс Установка и настройка.

Администратору системы будет полезно ознакомиться с курсом Разработчик Bitrix Framework, рассказывающем о принципах работы Bitrix Framework.

Примечание. Битрикс24 создан на основе платформы Bitrix Framework, на которой ранее был создан другой продукт "1С-Битрикс: Управление сайтом". В административной части системы сохранена терминология, относящаяся к этому продукту. Поэтому в текущем курсе понятие "сайт" нужно рассматривать как синоним слова "портал".

У нас часто спрашивают, сколько нужно заплатить

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

Ещё у нас есть Академия 1С-Битрикс, где можно обучиться на платной основе на курсах нашей компании либо наших партнёров.

Баллы опыта

В конце каждого урока есть кнопка Прочитано! . При клике на неё в Вашу итоговую таблицу опыта добавляется то количество баллов, которое указано в прочитанном После нажатия кнопки Прочитано! появится
окно подтверждения:


уроке.

Периодически мы заново оцениваем сложность уроков, увеличивая/уменьшая число баллов, поэтому итоговое количество набранных Вами баллов может отличаться от максимально возможного. Не переживайте! Отличный результат - это если общее число набранных Вами баллов отличается от максимального на 1-2%.

Тесты и сертификат

После изучения курса вам будет предложено пройти тесты на сертификацию. При успешной сдаче линейки тестов на странице Моё обучение можно просмотреть результат обучения и загрузить сертификат в формате PDF.

Для преподавания оффлайн

Если данный курс берётся в качестве основы для оффлайного преподавания, то рекомендуемая продолжительность: 10 дней (70 академических часов).

Если нет интернета

iPhone:
FBReader
CoolReader
iBook
Bookmate

Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome

iOS
Marvin for iOS
ShortBook
обновляются периодически, поэтому возможно некоторое отставание их от онлайновой версии курса. Версия файла - от 06.09.2021.

Читайте также: