Как мне кажется, очень актуальная тема, на сегодняшний день. В последнее время часто приходится сталкиваться с задачами, в которых нужно использовать базу 1С для отображения различных данных на веб-сервере.
Итак, инструменты:
Apache 2.4, php 7, Платформа 1С 8.3.10.2252, База 1С режим совместимости 8.2.13
Как установить Apache 2.4 и php 7, я описывать не буду (много примеров в инете).
А вот, после публикации веб сервиса 1С, я отредактировал .vrd файл, добавил в него данные о имени пользователя и пароля, для того, чтобы при подключении к веб сервису не требовалось авторизации.
Описание модуля ExchangeData:
- Метод TestWS() – возвращает информацию о версии модуля.
- Метод GetGoods() – возвращает список товаров с ценами, как вариант для примера
- Метод GetConstantList() – возвращает список констант и их значения
- Метод GetCatalogItems(Param1) - возвращает список элементов справочника, с поддержкой пагинации
Параметры(Param1[].Key):
Обязательные:
CatalogName - Название справочника
Предопределенные:
IsDelete - помеченные на удаление (устанавливает отбор)
IsGroup - это группа (устанавливает отбор)
Parent - родитель (устанавливает отбор)
Owner - владелец, если справочник подчинённый (устанавливает отбор)
SizePart - кол-во возвращаемых записей <> 0
PartNumb - номер возвращаемой порции <> 0
- Метод GetItem(Param1) - Возвращает все поля объекта с их значениями, в.ч. и табличные части. Используется для получения информации об элементе справочника или документе.
Параметры(Param1):
Обязательные:
GUID - универсальный идентификатор
TypeValue - описание типа ссылки
- Метод GetDocumentItems(Param1) - Возвращает список документов, с поддержкой пагинации
Параметры(Param1[].Key):
Обязательные:
DocumentName - Название документа
DateStart - начало периода (дд.мм.гггг чч.мм.сс)
DateEnd - конец периода (дд.мм.гггг чч.мм.сс)
Предопределенные:
IsDelete - помеченные на удаление (устанавливает отбор)
Posted - проведен (устанавливает отбор)
SizePart - кол-во возвращаемых записей <> 0
PartNumb - номер возвращаемой порции <> 0
- Метод GetInformationRegisterItems(Param1) - Возвращает данные из регистра сведений
Параметры(Param1[].Key):
Обязательные:
RegisterName - Название регистра сведений
Date - только для периодических (дд.мм.гггг чч.мм.сс)
Предопределенные:
Slice - (0 - выборка данных, 1 - срез первых, 2 - срез последних)
значение по умолчанию = 0
<ИмяИзмерения> - (устанавливает отбор)
- Метод PrintDocument(Param1) - Возвращает печатную форму документа
Параметры(Param1[].Key):
Обязательные:
DocumentRef - ссылка на документ
BlankName - название печатного бланка
Для реализации метода PrintDocument(Param1), пришлось немного корректировать модуль документа. Реализовано только для расходных накладных.
Кроме тестовой конфигурации, к статье прилагаются php файлы, с примерами использования данных методов. В этих файлах, я не ставил задачу красиво отобразить данные из базы 1С.