Интеграция с 1С

Введение
Что находится на компакт-диске
Глава 1. Интеграция с другими информационными системами
Форматы файлов обмена
Работа с текстом
Работа с форматированным документом
Работа с DBF
Работа с XML-документами
XDTO-сериализация
Пример реализации обмена при разной структуре объектов конфигурации
Работа с ZIP-архивами
Использование интернет-технологий
Работа с HTML
Использование FTP
Работа с электронной почтой
Automation
Automation Server
Automation Client
Внешнее соединение
Использование внешнего соединения для интеграции с интернет-приложением
ActiveDocument
Внешние компоненты
Подключение внешнего компонента в толстом клиенте или на сервере (на примере Native API компонента)
Подключение внешнего компонента в тонком клиенте или в веб-клиенте (на примере Native API компонента)
Web-сервисы
Предоставление функциональности через Web-сервисы
Работа с Web-сервисами сторонних поставщиков
Пример реализации механизма Web-сервиса
Глава 2. Обмен данными
Планы обмена
Служба регистрации изменений
Инфраструктура сообщений
Универсальный механизм обмена данными
Использование возможностей работы с XML-документами
Пример реализации универсального обмена
Регистрация в произвольные узлы
Пример работы универсального обмена данными
Распределенные информационные базы
Общие принципы
Главный и подчиненный узлы
Сообщение обмена данными в распределенной информационной базе
Создание узла распределенной информационной базы
Запись и чтение сообщений обмена
Подготовка конфигурации к работе в распределенной информационной базе
Пример работы обмена данными в распределенной информационной базе
Сценарии обмена данными в распределенной информационной базе
Разрешение коллизий
Восстановление узла распределенной информационной базы из резервной копии
Особенности использования последовательности документов в распределенной информационной базе
Использование транзакций при организации обмена
Методика включения в сообщение обмена дополнительной информации
Организация одностороннего обмена
Примеры реализации автоматического обмена данными
Использование регламентных заданий
Использование объекта СОМСоединение
Глава 3. Web-расширение
Основные положения
ADO.NET
ASP.NET
Конструкторы Web-расширения для веб-приложений
V8ListForm
V8 Item Form
V8 Report Form
V8ChartForm
Доступ к данным через ADO.NET
Получение данных
Добавление данных
Изменение данных
Удаление данных
Web-сервисы
Обращение к Web-сервису из веб-формы
Вызов процедур, функций. Преобразование типов
Настройка прав доступа
Идентификация пользователя
Файл Web.config
Файл global.asax
Форма, используемая для авторизации на основе форм
Работа с метаданными
Пул соединений
Полезные средства .NET Framework
Объект Response
Объект Request
Объект Session
Подготовка веб-приложения к работе
Состав файлов
Параметры автоформ
Форма списка (DefaultListForm)
Форма элемента объектной таблицы (DefaultObjectForm)
Форма записи регистра (DefaultRecordForm)
Форма строки табличной части (DefaultLineForm)

Возможности интеграции

Интеграция сайта и 1С подразумевает под собой один или несколько пунктов:

  1. Выгрузка каталога из 1С на сайт. В данном случае каталог полностью ведется на стороне 1С. При первом обмене в автоматическом режиме происходит наполнение каталога на сайте, при последующих обменах данные сайта и 1С синхронизируются (т.е. все изменения, сделанные в 1С, попадают на сайт). Выгружаются:
    • Группы номенклатуры
    • Номенклатура с изображениями, свойствами, характеристиками
    • Цены
    • Остатки
  2. Обмен заказами. Подразумевает под собой то, что обмен ведется по заказам, сделанным на сайте. Заказы, сделанные в 1С, на сайт не попадают. Механизм:
    • Пользователь оформляет заказ на сайте
    • При очередном обмене в 1С создается контрагент и заказ.
    • Менеджер обрабатывает заказ в 1С
    • Информация о заказе (например, о его оплате) поступает на сайт
  3. Выгрузка каталога с сайта в 1С. Возможна с версии 12.5. Инициатором обмена является 1С (т.е. механизм обмена запускается на её стороне). Подробнее по .

Рекомендуется использовать классическую схему, когда каталог ведется в 1С (как в специализированной программе), а на сайте товары создаются при обмене. В противном случае при сложной структуре каталога на сайте (множество связей) невозможно будет провести полноценную интеграцию. 3 вариант подходит для использования на чистой 1С, когда товары на сайте уже забиты, а 1С полностью чистая.

Требования

  1. Минимальная версия 1С:Управление торговлей — 10.3.7.9
    Подробные требования к 1С приведены .
    Рекомендуется на стороне 1С устанавливать последние дополнения интеграции, которые доступны .
    Данные дополнения содержат множество улучшений, исправлений и нового функционала.
  2. Редакции 1С-Битрикс, которые подходят для интеграции: Малый бизнес, Бизнес, Бизнес Веб-кластер.

Малый бизнес накладывает некоторые ограничения на возможности интеграции и на каталог на сайте:

  • Возможен только один тип цен. Т.е. если, например, нужно сделать чтобы оптовые покупатели покупали по оптовым ценам, а розничные – по розничным, в редакции «Малый бизнес» это не получится.
  • В редакции не поддерживаются склады (склад есть, но он один)

Подробнее с различиями в функционале, касающимися интернет-магазина и каталога, можно ознакомиться

Что такое штатная интеграция?

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

Данный вид интеграции включает в себя:

  • Настройку со стороны 1С (УТ 10.3 и УТ 11)
  • Настройку со стороны сайта
  • Непосредственное программирование для вывода структуры на сайте

Нестандартная интеграция

Случаи, когда требуется нестандартная интеграция, возникают достаточно часто. Причин тому много:

  • Доработанный функционал в 1С (Товары ведутся нестандартным образом)
  • Хаотичная организация структуры в 1С, желание иметь структуру на сайте, отличную от структуры в 1С
  • Множество различных связей между товарами
  • Требуется нестандартные механизмы, например, выгрузка заказов, сделанных в 1С, на сайт или полная синхронизация контрагентов

Степень доработок (как со стороны 1С, так и со стороны сайта) в случае нестандартной интеграции может быть очень значительной и трудозатратной.

Необходимые данные

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

  • Ваша версия и редакция 1С
  • Структура в 1С соответствует желаемой структуре на сайте
  • Что необходимо синхронизировать (товары, цены, наличие, заказы, пользователи) и как часто. При этом нужно понимать, что каждый следующий уровень сложности будет влиять как на сроки, так и на стоимость.
  • Производились ли доработки на стороне 1С

Идеальным дополнением к ответам на данные вопросы было бы получение выгрузки из вашей 1С, которую можно получить следующим образом:

  • Создать настройку обмена с сайтом
  • Для создания настройки обмена данными запустите мастер, выбрав пункт меню: Сервисы > Обмен данными с WEB-сайтом > Настроить обмен данными с WEB-сайтом.

  • Выбрать «выгрузку в каталог»
  • Сохранить настройку и произвести выгрузку.

Внешний вид форм, а так же пошаговая настройка доступна по ссылкам:

  • Создание узла обмена с сайтом
  • Настройка обмена данными с WEB-сайтом

← Назад в раздел

О чем эта статья

Статья продолжает цикл «Первые шаги в разработке на 1С», в ней детально рассмотрены следующие вопросы:

  • Что такое программный модуль и из каких разделов он состоит?
  • Для чего нужен модуль приложения? Почему их два? Когда какой запускается? Какие есть тонкости работы?
  • Какие события связаны с началом работы системы, как и где их обрабатывать?
  • Для чего нужен модуль внешнего соединения? Когда и как его использовать?
  • Когда используется модуль сеанса?
  • Что такое общие модули? Какие у него свойства и правила работы? Для чего нужно использовать свойство «Повторное использование возвращаемых значений”?
  • Когда используется модуль формы и какие события в нем могут быть обработаны?
  • Для чего предназначен модуль объекта? Из каких разделов он состоит? Как посмотреть доступные события модуля?
  • Какие тонкости работы существуют с модулями менеджера значения (для констант) и модулями набора записей (для регистров)?
  • В чем отличия между модулем объекта и модулем менеджера? Когда нужно использовать последний?

Применимость

В статье рассматривается платформа «1C:Предприятие» 8.3.4.496. Материал актуален и для текущих релизов платформы.

Модули в «1С:Предприятие 8.3»

  • Модуль приложения
  • Модуль внешнего соединения
  • Модуль сеанса
  • Общие модули
  • Модуль формы
  • Модуль объекта
  • Модуль менеджера

Модули – это те объекты, где содержится программный код.

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

Любая строка кода должна находиться в каком-либо модуле. Различают модули общего предназначения и модули объекта. Некоторые модули могут быть скомпилированы как на Клиенте, так и на Сервере, а некоторые только на Сервере.

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

Внутри каждой процедуры можно обращаться к переменной модуля. Кроме того, внутри самой процедуры может быть еще одно объявление переменной с таким же именем. Это будет локальная переменная данной процедуры.

Несмотря на одинаковое название, это две разные переменные: одна используется внутри конкретной процедуры, а другая – вне ее.

В некоторых модулях для переменных может указываться место компиляции (доступность) на Сервере или на Клиенте. Например:

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

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

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

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

Следует отметить, что раздел объявления переменных и раздел основной программы существуют не для всех модулей (т.е. в некоторых модулях данные разделы недопустимы). Раздел описания процедур и функций может существовать абсолютно в любом модуле.

Модуль приложения

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

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

Это могут быть события от ридера магнитных карт, фискального регистратора. И эти события можно каким-то образом тоже обработать.

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

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

Следует отметить, что в Платформе 8.3 существует два разных модуля приложения: модуль Управляемого приложения и модуль Обычного приложения. События модуля управляемого приложения отрабатываются при запуске Тонкого и Толстого клиента Управляемого приложения и Веб-клиента.

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

Если приложение работает и в режиме Управляемого, и в режиме Обычного приложения, то необходимо описывать процедуры-обработчики как для модуля Управляемого приложения, так и для модуля Обычного приложения.

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

Также этот модуль можно открыть из палитры свойств корневого элемента конфигурации.

Чтобы открыть модуль Обычного приложения, следует обратиться к настройкам конфигурации (команда Параметры в меню Сервис).

Откроется форма Параметры. На закладке Общие должен быть указан режим редактирования конфигурации Управляемое приложение и Обычное приложение.

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

Список событий, которые можно обрабатывать, для Управляемого и Обычного приложения одинаков.

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

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

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

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

Когда выполняется обработчик события «перед”, считается, что действие еще не совершено. Когда выполняется обработчик события «при” – действие уже совершено.

Событие ПередНачаломРаботыСистемы возникает в тот момент, когда производится запуск Предприятия 8.3, но само приложение еще не появилось на экране. У данного события есть такой параметр, как Отказ.

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

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

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

Если из модуля Управляемого приложения необходимо сделать Серверный вызов, то для этого нужно будет создавать специальные Общие модули с выставленным флагом Вызов Сервера.

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

Процедуры, функции и переменные модуля приложения могут быть описаны как экспортные.

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

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

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

В отличии от модуля приложения, который инициируется в момент интерактивного запуска приложения, модуль внешнего соединения работает в режиме com-соединения, т.е. когда создается объект 1С:Предприятие 8 и осуществляется подключение к определенной базе.

В этом модуле есть события: ПриНачалеРаботыСистемы и ПриЗавершенииРаботыСистемы.

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

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

В Модуле внешнего соединения возможно описывать экспортные переменные и экспортные методы, которые будут доступны на той стороне, где происходит внешний вызов 1С:Предприятие 8.3.

Поскольку во внешнем соединении нет пользовательского интерфейса, Модуль внешнего соединения компилируется целиком на Сервере.

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

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

В Модуле сеанса предусмотрено событие УстановкаПараметровСеанса.

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

В Модуле сеанса описываются различные действия по инициализации параметров сеанса в зависимости от разных условий.

В данном модуле, как правило, описываются несколько процедур, которые вызываются из процедуры УстановкаПараметровСеанса. Поэтому все эти процедуры выделены в отдельный модуль.

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

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

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

  • процедура УстановкаПараметровСеанса выполняется не только при старте системы, а также при обращении к неинициализированным параметрам сеанса. Т.е. обработчик УстановкаПараметровСеанса может вызываться неоднократно в процессе работы приложения;
  • если количество элементов в массиве параметров сеанса равно нулю (у массива требуемых параметров тип данных Неопределено), то это момент запуска приложения;
  • поскольку Модуль сеанса работает в привелигированном режиме и проверки прав доступа не будет, следует очень аккуратно работать с объектами базы данных, так как пользователь может получить доступ к тем данным, которые ему не должны быть предоставлены;
  • при запуске системы достоверно еще не известно: будет ли запущено приложение. При этом в обработчике события УстановкаПараметровСеанса могут быть произведены лишние действия.

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

Логически связанные методы можно группировать в разные Общие модули. Эти модули создаются внутри ветки Общие.

Можно добавить любое количество общих модулей. Чтобы методы Общих модулей были доступны в других местах конфигурации, необходимо их определять с ключевым словом Экспорт. Клиентские процедуры общих модулей будут доступны на Клиенте, а серверные – на Сервере.

В Общих модулях доступен только раздел описания процедур и функций. Т.е. в Общем модуле нельзя описывать переменные и нельзя описывать раздел основной программы.

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

Для Общих модулей можно задавать некоторые параметры, которые будут влиять на поведение данного модуля. Если для Общего модуля выставлено свойство Глобальный, то объявленные в данном модуле экспортные методы будут доступны из вне напрямую, без каких-либо дополнительных указаний.

Т.е. данный Общий модуль будет участвовать в формировании глобального контекста конфигурации.

Свойство Глобальный для общих модулей может быть полезным. Однако не стоит его использовать повсеместно для всех общих модулей.

Те Общие модули, которые отмечены признаком Глобальный, будут компилироваться при старте системы. Чем больше таких модулей, тем медленнее программа будет стартовать.

Если флаг Глобальный для Общего модуля не указан, то компиляция данного модуля будет выполняться в момент первого обращения к нему (т.е. уже после старта системы).

Кроме того, использование глобальных общих модулей влияет на понимание кода. Вызов методов не глобального общего модуля осуществляется через имя Общего модуля и имя метода, например:
МодульРасчетаСебестоимости.РаспределитьКосвенныеЗатраты();

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

Для Общего модуля в Палитре свойств можно установить свойство Привилегированный.

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

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

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

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

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

Если Общий модуль является привилегированным, то процедуры этого модуля могут быть скомпилированы только на Сервере.

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

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

Для этого в привилегированном Общем модуле следует оформить процедуру, которая обращается к нужным данным.

Данная процедура будет вызываться из соответствующего документа. Т.е. пользователю на момент вызова этой процедуры фактически предоставляются расширенные права.

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

Кроме того, если перевести режим редактирования конфигурации в Управляемое приложение и обычное приложение, то будет возможен еще один контекст компиляции – Клиент (обычное приложение).

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

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

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

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

Если директиву компиляции для процедуры (функции) не указывать, то она будет скомпилирована во всех контекстах, определенных для модуля.

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

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

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

При таком подходе в отдельных Общих модулях будут располагаться клиентские процедуры, и в отдельных Общих модулях – процедуры серверные.

В названиях общих модулей рекомендуется это указывать. Например: РегламентныеПроцедурыСервер, РегламентныеПроцедурыКлиент.

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

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

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

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

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

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

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

Тем не менее, существуют определенные временные ограничения. Очистка кэша происходит автоматически через 20 минут после попадания значения в кэш.

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

Кроме событий, связанных с элементами управления формы (кнопки, поля ввода) существуют события, связанные непосредственно с самой формой.

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

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

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

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

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

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

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

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

В принципе, событие записи существует и в Модуле формы. Но событие записи в Модуле формы возникает в процессе интерактивной записи, при работе с конкретной формой.

Событие записи в Модуле объекта будет выполняться при любой записи из любой формы данного объекта. Кроме того, если объект записывается программно, в этом случае будет срабатывать событие модуля объекта.

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

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

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

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

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

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

Это связано с особенностями самих объектов. К таким объектам относятся Константы и Регистры. Для Констант не существует модуля объекта, но существует очень похожий модуль, который называется Модулем менеджера значения.

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

Весь контекст модуля исполняется на Сервере.

Для регистров существует Модуль набора записей.

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

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

Т.е. помимо использования фиксированных методов класса объектов можно создавать для объекта дополнительные методы в Модуле объекта. В данном модуле следует описать соответствующую процедуру с ключевым словом Экспорт.

Тогда будет возможно обращаться к этой процедуре из вне. Причем данный метод будет отображаться в контекстной подсказке. Новые методы в контекстной подсказке выделяются синим шрифтом (синий значок p( ) для процедур и f( ) для функций).

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

Таким образом возможно расширять функциональность объектов (доопределять новые методы и новые свойства). При этом свойства являются динамическими и не сохраняются в базе данных.

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

Модуль менеджера

Данный модуль существует для многих объектов (справочники, документы, регистры и др.). Модуль открывается либо через контекстное меню для объекта, либо через Палитру свойств, либо через окно редактирования.

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

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

Для того, чтобы выполнить данное обращение, необходимо получить тип данных СправочникМенеджер.

Отличие экспортных методов Модуля менеджера и Модуля объекта состоит в том, что для обращения к методу Модуля объекта вначале нужно получить сам объект (т.е каким-то образом получить ссылку и далее эту ссылку преобразовать в объект).

После этого будут доступны экспортные переменные и методы Модуля объекта. Для Модуля менеджера обращение более простое, например:
Справочники.Контрагенты.ИмяМетода

Это два разных обращения. Преобразование из ссылки в объект (метод ПолучитьОбъект) – это достаточно серьезное действие для системы, так как при получении объекта читаются абсолютно все данные этого объекта, что может быть достаточно длительным.

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

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

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

Кроме того, обращение к Модулю объекта – это все-таки более длительное действие. Поэтому решать данную задачу в модуле менеджера более предпочтительно.

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

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

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

Пока весь наш программный код мы рассматривали отрывочно от прикладного решения, и как правило, писали его в какой-то своей небольшой тестовой конфигурации. А вы в курсе, что «нельзя просто так взять» и начать редактировать код типовой конфигурации? Нет? Тогда в следующей статье мы все это объясним!

PDF-версия статьи для участников группы ВКонтакте

Мы ведем группу ВКонтакте – http://vk.com/kursypo1c.

Если Вы еще не вступили в группу – сделайте это сейчас и в блоке ниже (на этой странице) появятся ссылка на скачивание материалов.

Ссылка доступна для зарегистрированных пользователей)
Ссылка доступна для зарегистрированных пользователей)
Ссылка доступна для зарегистрированных пользователей)

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

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

Многие предприятия одновременно используют одновременно несколько конфигураций 1С, поэтому вопрос их простой интеграции является для них принципиальным

В этой статье мы рассмотрим, для чего нужен обмен данными между 1С:Зарплата и управление персоналом КОРП и 1С:Документооборот КОРП и как настраивается бесшовная интеграция между ними.

Для чего нужна интеграция между 1С ЗУП и ДО?

Интеграция необходима предприятиям, где существуют прописанные бизнес-процессы и регламенты в области управления персоналом. В качестве примера рассмотрим ситуацию:

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

  • Отдел кадров: оформление приказа о приеме, трудового договора, направление на предварительный медицинский осмотр;
  • Отдел охраны труда: проведение инструктажей ТБ, приказ на выдачу средств индивидуальной защиты;
  • Склад: предоставление сотруднику средств индивидуальной защиты и униформу;
  • Служба безопасности: оформление пропуска на транспортный объект предприятия;
  • Управление транспортом: проверка прав на перевозку опасных грузов и подготовка дополнительной документации на право управления конкретным автомобилем в контролирующие органы.

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

Если в компании одновременно используется 1С:Зарплата и управление персоналом и 1С:Документооборот для автоматизации взаимоотношений между этими отделами разумнее настроить интеграцию, чем открывать доступ или докупать лицензии на базу ЗУП.

Преимущества бесшовной интеграции

  • Кадровая служба и отдел ОТ могут работать с данными 1С:ДО, не запуская эту программу;
  • На основании документов, созданных в 1С:ЗУП, есть возможность запускать процессы и уведомлять об этом пользователей 1С:Документооборот;
  • Исполнители задач могут работать с ними в 1С:ДО, не имея учетной записи или доступа в 1С:ЗУП;
  • Возможность совместной работы над документом или процессом с возможностью просмотра, изменения или их утверждения;
  • Настройка маршрутов подписания и согласования документов;
  • Также важно не забывать, что в 1С:ЗУП можно просматривать личную информацию сотрудников и сведения об их заработных платах. Ограниченный доступ к базе минимизирует риски нежелательного вмешательства в документы программы.
  • Для совместной работы с КДП, кадровикам не надо запускать 1С:ДО. Все необходимые действия можно произвести в интерфейсе 1С:Зарплата и управление персоналом, а документы, процессы и пользователи подтянутся из программы документооборота.

Настроим бесшовную интеграцию 1С:ЗУП с 1С:ДО. Предоставляем гарантии на услуги!

Настройка бесшовной интеграции 1С:ЗУП и 1С:Документооборот

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

В первую очередь создаем идентичных пользователей в двух базах. Т.е. наименование пользователя должны быть полностью идентичными, в нашем случае это будет пользователь «Администратор».

Рис.1 Создание пользователя в 1С:ЗУПРис.2 Создание пользователя на стороне 1С:Документооборот

Получаем URL опубликованной базы 1С:Документооборот на веб-сервере через IIS от Microsoft или с помощью инструмента от Apache. Когда база ДО будет опубликована, можно переходить к настройке бесшовной интеграции уже на стороне 1С:ЗУП в разделе «Администрирование», где выбираем пункт «Интеграция с 1С:Документооборотом». Настраиваем обмен по тем параметрам, которые нам нужны.

Рис.3 Настройка в ЗУП

Что нам необходимо сделать:

  • Ввести URL опубликованной базы 1С:Документооборот, с которой необходима интеграция;
  • Выбрать функционал, по которому будет проводиться обмен:
    • ✔Возможность создания задач и процессов в 1С:ЗУП, которые можно обработать в базе 1С:ДО. Позволяет произвести гибкую отладку работы бизнес-процессов и связанных с ними задач;
    • ✔Возможность просмотра и добавления связей при работе с документами, находящимися в 1С:ДО;
    • ✔Возможность работы с ежедневными отчетами по рабочему времени сотрудников;
    • ✔Отправка и получение электронных писем при помощи встроенной почты 1С:ДО.
      *Для примера галочки выставлены напротив всех пунктов, но на практике необходимо решить вопрос с функционалом заранее, чтобы оптимизировать обмен.
  • Настройка хранения присоединенных файлов. Указать, где можно не использовать 1С:ДО, или выбрать вариант с прикреплением файлов к документам, или хранить в отдельных папках;
  • Настройка расписания обновления.

Рис.4 Настройка функционала

На этом завершается предварительная настройка на стороне 1С:ЗУП. В статье на нашем сайте «Настройка бесшовной интеграции с 1С:Документооборот» вы также можете ознакомиться с подробной инструкцией по настройке обмена между комплексными системами 1С и 1С:ДО.

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

Рис.5 Проверка интеграционных настроек

При запуске 1С:ЗУП всплывает окно с выбором пользователя и вводом пароля. В нашем случае – «Администратор» и без пароля. Нажимаем «Ок» и проверяем нет ли ошибок, например, проблем, связанных с публикацией базы 1С:ДО на веб-сервере. Если таковые имеются, система выдаст код ошибки, по которому можно диагностировать проблему интеграции.

Далее выбираем объекты, участвующие в обмене между программами. Для этого снова переходим в пункт «Интеграция с 1С:Документооборотом» и выбираем ссылку «Интегрируемые объекты».

Рис.6 Интегрируемые объекты

Список ограничен следующими объектами в 1С ЗУП:

  • Прием на работу;
  • Кадровый перевод;
  • Увольнение и восстановление в должности;
  • Справочная информация о сотрудниках компании.

Поскольку мы строим путь обмена для документа «Прием на работу», настроим соответствующее правило интеграции. Создадим внутренний документ и соответствующий ему шаблон в 1С:Документооборот в папке «Отдел персонала».

Рис.7 Настройка на стороне 1С:ДО

Интеграция 1С:ЗУП с 1С:Документооборот

Ведение безбумажного документооборота прямо из 1С:ЗУП! Настроим бесшовную интеграцию с гарантией

Сопровождение обмена с 1С:ДО

Помощь в настройках бесшовной интеграции 1С:ЗУП с 1С:ДО, регулярные консультации, устранение ошибок

от 700 руб. Узнать большеРис.8 Создание шаблона документа

На стороне 1С:ЗУП выбираем объект «Прием на работу» и переходим к созданию правила для работы с ним.

Рис.9 Настройки правил в 1С:ЗУП

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

Для проверки работы правила, по которому работает интеграция, создаем документ «Прием на работу» в 1С:ЗУП, нажимаем «Создать на основании» и выбираем «Создать процесс».

Рис.10 Создание документа Рис.11 Создание процесса

Выбираем ответственных сотрудников для ознакомления с нашим документом и жмем «Стартовать».

Рис.12 Начало обмена

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

Рис.13 Интеграция настроена

Поможем настроить интеграцию 1С:ДО с любыми решениями 1С. Первая консультация бесплатно!

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

Системный интегратор — это компания-подрядчик, которая разрабатывает комплексные IT-решения по автоматизации технологических и бизнес-процессов на предприятии.

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

В чем заключается работа

Системная интеграция (system integration) — что это такое? В это понятие вкладывают порядок внедрения таких систем как бесшовная беспроводная сеть, корпоративная серверная структура, программы учета (ведение бухгалтерии, инвентаризация — например, продукты 1С), а также узкоспециализированное прикладное ПО.

Услуги предоставляет подрядная организация с собственным штатом специалистов, которые занимаются проектированием и внедрением соответствующих IT-решений — автоматизированных систем и их отдельных элементов. Причем компания-исполнитель не просто внедряет единичные решения, а создает комплексные, работающие в тесной интеграции друг с другом. Для этого требуются профессиональные знания приемов управления базами данных, создания программных комплексов, обеспечения безопасности сети и отдельных приложений, методов виртуализации.

Потребители услуг — представители среднего и крупного бизнеса, которые нуждаются в автоматизации бизнес-процессов и построении новой ИТ-инфраструктуры, отвечающей текущим потребностям предприятия.

Преимущества сотрудничества

  • Ускоренная разработка и внедрение новых продуктов или решений. Здесь интеграторы опережают укомплектованный IT-отдел. Процессы ускоряются благодаря привлечению новых технологий, современных инструментов, налаженным связям с поставщиками оборудования и ПО, специальным условиям работы с ними.
  • Профессиональный подход. Задачи, с которыми сталкиваются в повседневной профессиональной деятельности интеграторы, сложнее тех, которые решают рядовые IT-инженеры. Клиент получает услугу, объем и критерии оценки которой прописаны в договоре между сторонами.
  • Привлечение новых технологий. Благодаря инновационному подходу компания-клиент обходится меньшими затратами на этапе проектирования/развертывания или снижает эксплуатационную стоимость в будущем.

Требования к системному интегратору

ИТ-интегратор должен обладать такими знаниями, умениями и качествами:

  • внедрение комплексных программных и аппаратных IT-систем;
  • владение основами менеджмента в области проектирования;
  • организация технологических процессов в пределах единой инфраструктуры;
  • знание нескольких смежных областей системного администрирования;
  • сотрудничество с другими подрядными организациями (если это необходимо);
  • разработка логически обоснованной информационной структуры;
  • сотрудничество с финансистами и бухгалтерами для подготовки сметы;
  • подготовка отчетов и аналитики клиенту.