Учимся создавать http-сервисы (часть первая)

16.09.20

Интеграция - WEB-интеграция

Пошаговое руководство по созданию http-сервиса.

Цель. Научиться создавать http сервисы на платформе 1С: Предприятие 8.

План обучения:

Подготовка объектов метаданных для сервиса.

  1. Создадим чистую базу данных.
  2. Добавим в базу данных справочник «Номенклатура»
  3. Добавим реквизиты в справочник «Номенклатура»
  4. Добавим регистр сведений «Штрих коды»
  5. Добавим измерения и ресурсы в регистр сведений «Штрих коды»
  6. Добавить общий модуль «Общего назначения»
  7. В общем модуле создадим функцию, которая вернет JSON строку с нашими данными
  8. Запустим платформу 1С: Предприятие 8 в режиме «предприятие» и заполним данными справочник «Номенклатура» и регистр сведений «Штрих коды»

Создание http сервиса:

  1. Открываем дерево метаданных ветка «Общие» - «HTTP-сервисы». Позиционируемся на объекте «HTTP-сервисы»
  2. Добавляем новый сервис.
  3. Закладка «Основные» поле «Имя». Задаем имя. Имя может быть любым. Желательно чтобы имя сервиса отражало его суть.
  4. Закладка «Основные» поле «Корневой URL». Необходимо задать имя корневого url.
  5. Закладка «Шаблоны URL». Добавляем новый шаблон. Задаем ему имя. Имя может быть любым. Желательно, чтобы имя отражало предназначение шаблона.
  6. В шаблоне добавляем метод. В данном методе будем программный код шаблона.

 

Публикация http сервиса:

  1. ВАЖНО, НА ВАШЕМ КОМПЬЮТЕРЕ УЖЕ ДОЛЖЕН БЫТЬ УСТАНОВЛЕН ВЕБ СЕРВЕР (APACHE (2.2 ИЛИ 2.4) ИЛИ ISS)
  2. Запускаем конфигуратор 1С: Предприятия 8 в режиме «Запуск от имени администратора»
  3. Главное меню Администрирование – Публикация на веб-сервере
  4. Закладка «Основные» поле имя. Необходимо задать имя. Имя должно быть сформировано по правилу формирования имен переменных. Имя не должно содержать русских букв.
  5. Закладка «Основные» поле «Каталог». Создаем на жестком диске каталог (например www) и указываем к нему путь. В данный каталог будет размещена публикация.
  6. Закладка «Основные» - закладка «HTTP сервисы». Устанавливаем флаг около нашего сервиса.
  7. Нажимаем кнопку «Опубликовать». Перезапускаем веб сервер.

Проверка работы http сервиса:

  1. Запускаем браузер.
  2. Прописываем в строке браузера ip адрес компьютера на котором работает веб сервис (в нашем случае это наша локальная машина)
  3. После этого если веб сервер запущен, мы должны увидеть в браузере соответствующее сообщение.

Если все нормально, в строке браузера прописываем путь к нашему сервису по определенному правилу и получаем результат работы сервиса.

 

Выполнение пунктов списка

 

Подготовка объектов метаданных

 

Создаем чистую базу данных:

Добавляем в базу данных справочник «Номенклатура»

Добавляем реквизит «Артикул» в справочник «Номенклатура»

Добавим регистр сведений «Штрихкоды»

Добавляем измерение и ресурсы в регистр сведений «Штрихкоды»

Измерение «Штрихкод» тип Строка длина Строки 100, ресурс «Номенклатура» ссылка на справочник «Номенклатура»

Добавляем общий модуль «ОбщегоНазначения»

В общем модуле напишем функцию, которая вернет JSON строку с данными

 


Функция ПолучитьНоменклатуру()Экспорт
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	Штрихкоды.Штрихкод КАК barcode,
	|	Штрихкоды.Номенклатура.Код КАК cod,
	|	Штрихкоды.Номенклатура.Наименование КАК name,
	|	Штрихкоды.Номенклатура.Артикул КАК articul
	|ИЗ
	|	РегистрСведений.Штрихкоды КАК Штрихкоды";
	
	Результат = Запрос.Выполнить();
	Выборка = Результат.Выбрать();
	Массив = Новый Массив;
	Пока Выборка.Следующий()Цикл
		Структура = Новый Структура("barcode, cod, name, articul");
		ЗаполнитьЗначенияСвойств(Структура, Выборка);
		Массив.Добавить(Структура);
	КонецЦикла;
	
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку();
	ЗаписатьJSON(ЗаписьJSON, Массив);
	
	СтрокаJSON = ЗаписьJSON.Закрыть();
	Возврат СтрокаJSON;
	
	
КонецФункции

 

Обновим конфигурацию базы данных. Запустим программу в режиме «Предприятие». Заполним тестовыми данными справочник «Номенклатура» и регистр сведений «Штрихкоды»

Переходим к следующему пункту

Создание http сервиса

Открываем дерево метаданных ветка «Общие» - «HTTP-сервисы». Позиционируемся на объекте «HTTP-сервисы»

Добавляем новый сервис

Закладка «Основные» поле «Имя». Задаем имя. Имя может быть любым. Желательно чтобы имя сервиса отражало его суть. Закладка «Основные» поле «Корневой URL». Необходимо задать имя корневого url.

Закладка «Шаблоны URL». Добавляем новый шаблон. Задаем ему имя. Имя может быть любым. Желательно, чтобы имя отражало предназначение шаблона.

Закладка «Шаблоны URL». Добавляем новый шаблон. Задаем ему имя. Имя может быть любым. Желательно, чтобы имя отражало предназначение шаблона

В шаблоне добавляем метод. В данном методе будем программный код шаблона.

 


Функция ШаблонURL1ПолучитьДанныеПоНоменклатуре(Запрос)
	Ответ = Новый HTTPСервисОтвет(200);
	СтрокаJSON = ОбщегоНазначения.ПолучитьНоменклатуру();
	Ответ.УстановитьТелоИзСтроки(СтрокаJSON);
	Возврат Ответ;
КонецФункции

Публикация http сервиса

ВАЖНО, НА ВАШЕМ КОМПЬЮТЕРЕ УЖЕ ДОЛЖЕН БЫТЬ УСТАНОВЛЕН ВЕБ СЕРВЕР (APACHE (2.2 ИЛИ 2.4) ИЛИ ISS)

Запускаем конфигуратор 1С: Предприятия 8 в режиме «Запуск от имени администратора»

Главное меню Администрирование – Публикация на веб-сервере

Закладка «Основные» поле имя. Необходимо задать имя. Имя должно быть сформировано по правилу формирования имен переменных. Имя не должно содержать русских букв.

Закладка «Основные» поле «Каталог». Создаем на жестком диске каталог (например, www) и указываем к нему путь. В данный каталог будет размещена публикация.

Закладка «Основные» - закладка «HTTP сервисы». Устанавливаем флаг около нашего сервиса. Нажимаем кнопку «Опубликовать». Перезапускаем веб сервер.

Проверка работы http сервиса.

Запускаем браузер.

Прописываем в строке браузера ip адрес компьютера на котором работает веб сервис (в нашем случае это наша локальная машина)

После этого если веб сервер запущен, мы должны увидеть в браузере соответствующее сообщение.

Если все нормально, в строке браузера прописываем путь к нашему сервису по определенному правилу

Рассмотрим более подробно формирования строки запроса в строке адреса браузера

localhost/my_name/hs/products/get_product

localhost – ip адрес веб сервера. Если запускаем браузер с той же машины где установлен веб сервер то ip адрес либо localhost либо 127.0.0.1 либо 192.168.XXX.XXX

Таким образом получаем формулу по которой собираем адрес

Ip адрес / имя публикации / hs / корневой каталог / шаблон/

Видео инструкция по созданию http сервиса

http web сервис

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    15748    10    17    

11

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17551    6    15    

13

Интеграция с сервисом vetmanager

WEB-интеграция Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    16360    42    49    

23

[Расширение] БОР-Навигатор.Культура

Зарплата Бюджетный учет WEB-интеграция Обмен с ГосИС Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    25741    9    0    

7

Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС

Обмен с ГосИС WEB-интеграция Платформа 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    88581    160    215    

318
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. ubnkfl 16.09.20 19:12 Сейчас в теме
У вас на картинке видно, что вместо наименования на русском языке возвращаются крякозябры. Так и должно быть?
2. malikov_pro 1292 16.09.20 20:36 Сейчас в теме
(1) Нет, нужно кодировку уточнить, хотя по умолчанию UTF-8 и тип данных

Ответ.УстановитьТелоИзСтроки(<Тело>, <Кодировка>, <ИспользоватьBOM>)
Ответ.Заголовки.Вставить("Content-Type", "application/json; charset=utf-8")

mikl79; Nikola_N; Lacoste4life; maksa2005; ubnkfl; vitika_m; tony_more; +7 Ответить
7. acvatoris 527 16.09.20 23:35 Сейчас в теме
(2)
Прикрепленные файлы:
9. acvatoris 527 16.09.20 23:36 Сейчас в теме
(2)
Прикрепленные файлы:
crismar24; +1 Ответить
3. malikov_pro 1292 16.09.20 20:41 Сейчас в теме
По оформлению скриншоты можно делать clip2net и только нужной части экрана. Код и скриншоты можно под спойлеры убирать, для более удобного чтения.

работу с JSON
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, Массив);
	
СтрокаJSON = ЗаписьJSON.Закрыть();
Возврат СтрокаJSON;

обычно в функцию оборачивают

Критика для того чтобы качество статьи было нормально и ссылку на статью можно было клиентам давать.
myoker; tony_more; +2 Ответить
5. acvatoris 527 16.09.20 23:02 Сейчас в теме
(3)благодарю за замечания.
4. Steelvan 302 16.09.20 23:01 Сейчас в теме
Без заголовков можно попробовать метатег "charset" в html/head для обозревателя прописать.

html
head
meta charset="utf-8"
vitika_m; +1 Ответить
6. Steelvan 302 16.09.20 23:03 Сейчас в теме
Согласен, снимки можно в свертки оборачивать.
8. acvatoris 527 16.09.20 23:35 Сейчас в теме
Нужно было установить кодировку
vitika_m; +1 Ответить
10. dsdred 3251 17.09.20 09:43 Сейчас в теме
Ожидал чего то другого. Тут про http сервис совсем мало.

А так вот цикл статей HTTP Сервисы: Путь к своему сервису. 1-4 части

https://infostart.ru/1c/articles/842751/
https://infostart.ru/1c/articles/885287/
https://infostart.ru/1c/articles/886103/
https://infostart.ru/1c/articles/893304/
sertak; MiDoS; Ish_2; eeeio; Drivingblind; ong1990; tony_more; +7 Ответить
13. vitika_m 17.09.20 10:27 Сейчас в теме
(10) Интересно, но слишком сложно. Для "чайника" такого как я слишком много информации:)
Но нужно с чего-то начать...
17. dsdred 3251 17.09.20 11:29 Сейчас в теме
(13)Вы конечно извините, но уменя более разжевано для чайников ))

например тут:
Ip адрес / имя публикации / hs / корневой каталог / шаблон/


У меня:
http://host/base/hs/корневойURL/относительныйURL?ПараметрыЗапроса

host – IP адрес или доменное имя веб сервера.

base – Имя базы. Указывается при публикации.

hs - признак того, что выполняется обращение к HTTP-сервису.

корневойURL - имя ресурса, которое определяет группу ресурсов, связанных общим смыслом.

относительныйURL - определяет ресурс, к которому будет выполняться обращение. Относительный URL, указанный в запросе, будет использован для определения конкретного ресурса, к которому выполнялось обращение. Правило сопоставления задается в объекте Шаблон URL.

ПраметрыЗапроса – Не всегда обязательные параметры передаются после знака «?», чаще всего дополнительные параметры или параметры выборки, например формат ответа(format=json или format=atom).

Как Вы можете заметить у меня более разжевано.
shard; Rafaraf; Maden; mihuilka; kondrat230386; vitika_m; Ish_2; Fox-trot; +8 Ответить
18. acvatoris 527 17.09.20 11:37 Сейчас в теме
20. Ish_2 1104 18.09.20 21:53 Сейчас в теме
(17)
Вы конечно извините, но уменя более разжевано для чайников ))


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


А у Вас жанр другой, с названием " Как я осваивал http-сервисы",
Другой жанр - другие читатели.
Чайникам я бы такое не рекомендовал.
palalai; kild; rinik88; karomag; user905340; vitika_m; +6 Ответить
21. dsdred 3251 19.09.20 06:49 Сейчас в теме
(20)
Нет. Для чайников лучше разжевано у автора.
Текст жестко структурированный , без размышлизмов ,
отличная краткая инструкция , быстро вводящая в тему нулевого пользователя.
У автора опыт преподавания - вне всякого сомнения.


Не согласен с Вами.
Лично я не увидел опыта преподавания. Статья в стиле "Изучаю http сервисы [Шпаргалка]" как раз таки жанр (" Как я осваивал http-сервисы")
Для чайников есть статья https://infostart.ru/1c/articles/516810/

Ценность текущей статья близка к нулю и вот почему:
1 Не показано как работать с параметрами, а http сервисы созданы для того чтобы что-то получать на основании чего-то.
2 Автор сделал ошибку которую я уже встречал в другой статье про http сервисы, ошибка редкая и "Чайник" вскипит при поиске веб сервера с названием "ISS". Возможно автор учится по той статье где я видел такую ошибку. Правильно конечно IIS.
3 Автор не делает отдельный модуль для методов (ОбщийМодуль я так понимаю для всего в подряд), следовательно у него либо не было опыта с граблями при отладке сервисов, либо он делает статью из разряда "хэллоу ворлд".
4 Не предполагается версионирование V1, V2 и т.д.
5 Судя по комментариям, автор узнал про кодировку благодаря читателям.
6 70-80% статьи вообще не про http сервисы.
7 Если в запросе вернется null, который запишется в одно из свойств структуры, то преобразование в JSON потерпит фиаско...
8 формула по которой собираем адрес. Формула?

Это на вскидку.
22. Ish_2 1104 19.09.20 11:03 Сейчас в теме
(21) При изучении наук примеры полезнее правил. (с) Ньютон.
Если я что-то изучаю с нуля мне не правила нужны ( я их потом изучу самостоятельно) , мне нужен сквозной практический пример ( в данном случае создания простейшего http сервиса).
Автор его дает сжато и быстро . На первом этапе другого и не нужно.
Передача параметров, кодировка и проч . неточности обучающийся выяснит после того как поймет , что это за зверь http -сервис.
23. acvatoris 527 19.09.20 14:30 Сейчас в теме
Благодарю Вас за найденную опечатку. Действительно IIS, а не ISS. Опечатка возникла из-за моей не внимательности, так как процесс написания проходил поздно ночью. Благодарю еще раз.
24. Ish_2 1104 20.09.20 10:37 Сейчас в теме
(21)
Это на вскидку.


"Вскидка" оказалось очень существенной.
Читать Вашу статью все равно пришлось.
Спасибо.
26. dsdred 3251 21.09.20 08:19 Сейчас в теме
(24)
"Вскидка" оказалось очень существенной.
Читать Вашу статью все равно пришлось.


Параметры все таки понадобились?


П.С. Я же не специально придираюсь, просто не люблю примеры из разряда "Пример мир".
29. Ish_2 1104 21.09.20 21:28 Сейчас в теме
(26)
просто не люблю примеры из разряда "Пример мир".


А я люблю, если понимать под словами "Пример мир" предоставление некоторого общего концепта , базовой идеи.
Например , концепт "Выполнятор" , суть которого - выполнение произвольного кода на внешнем ресурсе - совсем не нов , но хорош сам по себе. По-моему , красиво. Уверен , что где-то этот концепт или уже развернут или будет развернут в концепцию безопасного применения произвольного кода .
Читая Вашу статью , я задался вопросом а почему сразу "Выполнятор" ? может начать с задачи поскромнее и безопаснее : "Выполнение произвольного запроса на внешнем ресурсе 1с".
В параметрах http-запроса передается параметр "ТекстЗапроса", в обработчике метода пишем
СхемаЗапроса = Новый СхемаЗапроса();
СхемаЗапроса.УстановитьТекстЗапроса(ТекстЗапроса);
И если нет ошибок выполняем запрос и результат его выполнения
запишем в ЗаписьJSON.
В принципиальном плане вроде все просто-понятно .
Скорее всего кто -то уже реализовал эту идею , но на инфостарте я ничего такого не нашел. Не дадите ссылку ?
30. dsdred 3251 21.09.20 21:52 Сейчас в теме
(29)Очень странно, что не нашли. Вот пример запроса и параметры к нему. https://infostart.ru/public/955078/

Но! Это не безопасно.
Во первых рекомендую почитать комментарии.
Во вторых об выполняторах я выступал на митапе по безопасности 11 сентября и рассказывал почему это плохо.

Если кратко
-смотрим статью с ИТС https://its.1c.ru/db/v8std#content:770:hdoc
-Выполнятор может быть использован против вас. Можно запускать кривые запросы и вы даже не поймете почему тормозит.
-Вы постоянно гоняете текст запроса\код целиком это все равно что ходить в библиотеку со своими книгами и просить библиотекаря из них что то прочитать
-в случае изменения\обновления конфигурации источника, ваши поделки могут сломаться и тогда чинить их придётся во всех базах получателях.
31. Ish_2 1104 21.09.20 23:17 Сейчас в теме
(30) В статье https://infostart.ru/public/955078/ позабавило применение "СтрЗаменить(..)" .
Автор и комментаторы явно не в курсе , что все обозначенные вопросы
решает программный объект "СхемаЗапроса", полученный из ТекстЗапроса.
Программным способом без всякого парсинга можно проверить синтаксис ,количество пакетов, ограничить число записей (ПЕРВЫЕ), запретить -удалить вложенные запросы ( к табличным частям объектов)
удалить колонки (поля выборки) запроса, и проч. и проч.

Что касается Odata. Основное его назначение - обмен данными.
Если стоит задача произвольного чтения из базы ( сложные запросы с соединениями ) , то он не применим. Возразите ?.
Во всяком случае в статье https://infostart.ru/1c/articles/885287/
для формирования отчета "ОстаткиИДоступностьТоваров" Odata используется только для получения небольшого списка складов . Почему же протокол Odata не использовался при выводе тела отчета ?
Имея возможность выполнить произвольный запрос ( с понятными ограничениями) , не пришлось бы так выкручиваться , прибегая к созданию макета СКД.
Для меня такой пример как "танцы с бубном".
Впрочем , дело вкуса . Для демонстрации и обучения такой пример вполне подойдет.

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


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

(30)
-Вы постоянно гоняете текст запроса\код целиком это все равно что ходить в библиотеку со своими книгами и просить библиотекаря из них что то прочитать

Не понял о чем это ? Мы все чего-то гоняем в разные стороны..


(30)
-в случае изменения\обновления конфигурации источника, ваши поделки могут сломаться и тогда чинить их придётся во всех базах получателях.


Предполагается , что обработчик метода http- сервиса , реализованного в расширении , проверяет корректность текста запроса перед запуском на выполнение , выполняет запрос и ничего более . Приведите пример такого изменения конфигурации. Оценим его вероятность и вредоносность для сервиса.
32. dsdred 3251 22.09.20 08:54 Сейчас в теме
(31)
Что касается Odata. Основное его назначение - обмен данными.
Если стоит задача произвольного чтения из базы ( сложные запросы с соединениями ) , то он не применим.


Все верно.

Кривые запросы возможны и в Odata.

Нет кривые запросы там не возможны, в OData другая болезнь. Если не использовать top и skip (https://infostart.ru/1c/articles/893304/) тогда тоже можно словить дикие тормоза.
Но OData контролируете Вы. Вы знаете какие объекты расшарили и кто их использует, зачастую еще и дали запрос тоже вы (по такому принципу я с вебером работал, он говорил что ему надо я смотрел как проще это организовать).

Не понял о чем это ? Мы все чего-то гоняем в разные стороны..

Одно дело передавать параметры, а другое дело гонять текст запроса...
Вы видели статью Ильдаровича для ускорения с Шагами в запросе. Я такие запросы видел вживую, его колесиком минут 5 листать...


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


Я правильно понимаю что вам придется заморочится с кучей проверок, нежели нарисовать сервис и гонять параметры?
33. Ish_2 1104 22.09.20 13:13 Сейчас в теме
(32) Если говорить по существу , то в целом согласен с приведенными доводами.

(32)
Я правильно понимаю что вам придется заморочится с кучей проверок, нежели нарисовать сервис и гонять параметры?


Ноги растут из обычной задачи : в центральном узле ERP в периферийных узлах базы разных поставщиков. Если узел 1с то ставим http-сервис - "читает все". Ну, будет он принимать текст запроса длиной 3-4 тысячи символов. И в чем проблема ?

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

Таким в данный момент мне видится сценарий решения этой задачи.
11. tony_more 17.09.20 10:21 Сейчас в теме
Когда ожидать вторую часть?!
vitika_m; +1 Ответить
19. acvatoris 527 17.09.20 11:38 Сейчас в теме
(11)Добрый день. По нашим планам одна статья в неделю.
34. acvatoris 527 23.09.20 07:15 Сейчас в теме
Добрый день. Часть вторая "Передача параметров в сервис" https://infostart.ru/1c/articles/1296740/
12. tony_more 17.09.20 10:26 Сейчас в теме
Было бы интересно еще узнать каким образом благодаря HTTP запросам получать данные из другой базы 1С. Получается что есть две БД, одна пользовательская, вторая серверная. На серверной все данные собираются в JSON и потом это дело открывать в пользовательской БД. Подскажите как реализовать такого рода обмен данными
vitika_m; +1 Ответить
14. VKislitsin 960 17.09.20 10:39 Сейчас в теме
(12) Для таких целей больше подходит интерфейс OData. При этом в серверной даже дорабатывать ничего не нужно. Все доработки на стороне клиентской ИБ.
15. tony_more 17.09.20 10:45 Сейчас в теме
(14)
OData
Хмм, не слышал об этом. Спасибо, пойду изучать что это за технология
16. dsdred 3251 17.09.20 11:26 Сейчас в теме
(15)В комментарии 10 есть все примеры.
Там и OData есть во второй части
25. tony_more 21.09.20 08:15 Сейчас в теме
Здравствуйте. Разобрался с запросами и получением данных с сервера. Теперь вопрос такой что каким образом мне осуществить передачу новых документов с мобильной части на серверную?
27. dsdred 3251 21.09.20 08:25 Сейчас в теме
28. dsdred 3251 21.09.20 08:49 Сейчас в теме
(25)
1 Вариант с Планом обмена.
Делаете план обмена и регистрируете документы. делаете ожидание которое раз в какое-то время собирает JSON из зарегистрированных к обмену документов и передает в HTTP сервис в основной базе.
2 Вариант делаете в документе кнопку передать и в момент нажатия собираете структуру в JSON и черед http сервис передаете в основную конфигурацию

3 Вариант без http сервисов.
С мобилки в виде файла передаете на fttp или облако а основная конфигурация по расписанию читает файлы если они есть (вариант аля конвертация данных)
35. пользователь 23.09.20 10:35
Сообщение было скрыто модератором.
...
36. ICeZm 21 12.10.20 15:38 Сейчас в теме
37. gelmoriel 28.10.20 16:57 Сейчас в теме
при обращении к http сервису в браузере выскакивает окно авторизации. Есть способ его убрать? Или как это решается?
38. acvatoris 527 28.10.20 21:18 Сейчас в теме
Добрый день. В это окно нужно ввести логин пользователя и пароль. При программном подключении логин и пароль передаются как некие параметры в зависимости от того на каком языке программирования вы подключаетесь к http сервису. Если вы подключаетесь из 1С, то логин и пароль передаются в конструктор класса HTTPСоединение.
39. Азверин 3 14.01.22 10:09 Сейчас в теме
Текст "Закладка «Шаблоны URL». Добавляем новый шаблон. Задаем ему имя. Имя может быть любым. Желательно, чтобы имя отражало предназначение шаблона" указан дважды подряд. Очепятка-копипаста.
40. ZhakeKZ 03.03.22 05:40 Сейчас в теме
Доброе время суток !

У меня в конфигурации есть Веб сервисы и Http сервисы.
Через браузер или через Postman, Веб сервисы вызываются успешно.
А http сервис выдает ошибку 404.
В чем может быть ошибка ?

default.vrd


Веб сервис вызываю по такому адресу:
http://localhost/Demo/ws/InterfaceVersion.1cws?wsdl

Http сервис попробовал по такому адресу:
http://localhost/Demo/httpServices/Obmen/get_data

Скрины сервиса прилагается.

Функция GetInfoGetInfo(Запрос)
	Ответ = Новый HTTPСервисОтвет(200);
	Возврат Ответ;
КонецФункции



Получаю такой ответ:
Прикрепленные файлы:
41. soldatkin 11 07.09.23 14:07 Сейчас в теме
Привет
вот эту структуру "Структура = Новый Структура("barcode, cod, name, articul");"
нужно объявлять перед циклом, который выборку обходит, иначе мы получим ошибку
Ошибка при вызове метода контекста (ЗаписатьJSON)
ЗаписатьJSON();
по причине:
Передано значение недопустимого типа
Прикрепленные файлы:
42. user2022693 02.12.23 19:20 Сейчас в теме
Вы очень крутые полезные темы пишите!!! Я пишу на flutter и теперь стоит задача интеграции flutter и 1C, поэтому изучаю 1С, но не всегда все понятно. Круто было бы увидеть видео канал по данным темам. Сколько не шерстил инет у Вас очень полезная информация. А моя задача Интернет магазин на Flutter и база 1С.
Оставьте свое сообщение