/
ValMa
/
TestRep
Обзор
Документация
Войти
/
ValMa
/
TestRep
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/HTTPServices/Kiosk/Ext/Module.bsl
201 строка
12 KB
ValMa
Первый коммит
15 окт 2025, 19:24
15 окт 2025, 19:24
caceea4
Код
Авторство
О чём код?
Функция ПроверкаРаботыПроверитьРаботу(Запрос) // http://localhost/UNF/hs/kiosk/health // шаблон: /health Ответ = Новый HTTPСервисОтвет(200); Ответ.УстановитьТелоИзСтроки("I am OK."); Возврат Ответ; КонецФункции Функция КлиентыПолучитьКлиента(Запрос) Ответ = Новый HTTPСервисОтвет(200); // http://localhost/UNF/hs/kiosk/client/6670365488 // шаблон: /client/{inn} ИНН = Запрос.ПараметрыURL.Получить("inn"); Если ЗначениеЗаполнено(ИНН) Тогда Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Контрагенты.Ссылка КАК Ссылка, | Контрагенты.ВерсияДанных КАК ВерсияДанных, | Контрагенты.ПометкаУдаления КАК ПометкаУдаления, | Контрагенты.Родитель КАК Родитель, | Контрагенты.ЭтоГруппа КАК ЭтоГруппа, | Контрагенты.Код КАК Код, | Контрагенты.Наименование КАК Наименование, | Контрагенты.НаименованиеПолное КАК НаименованиеПолное, | Контрагенты.БанковскийСчетПоУмолчанию КАК БанковскийСчетПоУмолчанию, | Контрагенты.ВалютаРасчетовПоУмолчанию КАК ВалютаРасчетовПоУмолчанию, | Контрагенты.ВестиРасчетыПоДоговорам КАК ВестиРасчетыПоДоговорам, | Контрагенты.ВестиРасчетыПоДокументам КАК ВестиРасчетыПоДокументам, | Контрагенты.ВестиРасчетыПоЗаказам КАК ВестиРасчетыПоЗаказам, | Контрагенты.ВестиУчетОплатыПоСчетам КАК ВестиУчетОплатыПоСчетам, | Контрагенты.ВидГосударственногоОргана КАК ВидГосударственногоОргана, | Контрагенты.ВидКонтрагента КАК ВидКонтрагента, | Контрагенты.ГоловнойКонтрагент КАК ГоловнойКонтрагент, | Контрагенты.ГруппаДоступа КАК ГруппаДоступа, | Контрагенты.ДатаРождения КАК ДатаРождения, | Контрагенты.ДатаСоздания КАК ДатаСоздания, | Контрагенты.ДокументУдостоверяющийЛичность КАК ДокументУдостоверяющийЛичность, | Контрагенты.АдресЭПДляПоиска КАК АдресЭПДляПоиска, | Контрагенты.ИННВведенКорректно КАК ИННВведенКорректно, | Контрагенты.ИсточникПривлеченияПокупателя КАК ИсточникПривлеченияПокупателя, | Контрагенты.КодГосударственногоОргана КАК КодГосударственногоОргана, | Контрагенты.ЮридическоеФизическоеЛицо КАК ЮридическоеФизическоеЛицо, | Контрагенты.Комментарий КАК Комментарий, | Контрагенты.КонтактноеЛицо КАК КонтактноеЛицо, | Контрагенты.КонтактноеЛицоПодписант КАК КонтактноеЛицоПодписант, | Контрагенты.ИНН КАК ИНН, | Контрагенты.КППВведенКорректно КАК КППВведенКорректно, | Контрагенты.КПП КАК КПП, | Контрагенты.Недействителен КАК Недействителен, | Контрагенты.НомерТелефонаДляПоиска КАК НомерТелефонаДляПоиска, | Контрагенты.ОсновныеСведения КАК ОсновныеСведения, | Контрагенты.Ответственный КАК Ответственный, | Контрагенты.Покупатель КАК Покупатель, | Контрагенты.Пол КАК Пол, | Контрагенты.Поставщик КАК Поставщик, | Контрагенты.ПрочиеОтношения КАК ПрочиеОтношения, | Контрагенты.РасчетыВУсловныхЕдиницахПоУмолчанию КАК РасчетыВУсловныхЕдиницахПоУмолчанию, | Контрагенты.РегистрационныйНомер КАК РегистрационныйНомер, | Контрагенты.СвидетельствоДатаВыдачи КАК СвидетельствоДатаВыдачи, | Контрагенты.СвидетельствоСерияНомер КАК СвидетельствоСерияНомер, | Контрагенты.СпособЗачетаПредоплатыПоУмолчанию КАК СпособЗачетаПредоплатыПоУмолчанию, | Контрагенты.СпособРазнесенияОплатыПоУмолчанию КАК СпособРазнесенияОплатыПоУмолчанию, | Контрагенты.СтатьяДДСПоУмолчанию КАК СтатьяДДСПоУмолчанию, | Контрагенты.СтранаРегистрации КАК СтранаРегистрации, | Контрагенты.СчетУчетаАвансовПокупателя КАК СчетУчетаАвансовПокупателя, | Контрагенты.СчетУчетаАвансовПоставщику КАК СчетУчетаАвансовПоставщику, | Контрагенты.СчетУчетаРасчетовСПокупателем КАК СчетУчетаРасчетовСПокупателем, | Контрагенты.СчетУчетаРасчетовСПоставщиком КАК СчетУчетаРасчетовСПоставщиком, | Контрагенты.УдалитьАдресЭП КАК УдалитьАдресЭП, | Контрагенты.УдалитьДоговорПоУмолчанию КАК УдалитьДоговорПоУмолчанию, | Контрагенты.УдалитьНомерТелефона КАК УдалитьНомерТелефона, | Контрагенты.ФИО КАК ФИО, | Контрагенты.КодПоОКПО КАК КодПоОКПО, | Контрагенты.Самозанятый КАК Самозанятый, | Контрагенты.Предопределенный КАК Предопределенный, | Контрагенты.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных |ИЗ | Справочник.Контрагенты КАК Контрагенты |ГДЕ | Контрагенты.ИНН = &ИНН"; Запрос.УстановитьПараметр("ИНН", ИНН); РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Ответ = Новый HTTPСервисОтвет(404); Ответ.УстановитьТелоИзСтроки("Клиент с таким ИНН не найден."); Возврат Ответ; КонецЕсли; Выборка = РезультатЗапроса.Выбрать(); ДанныеОтвета = Новый Массив(); Пока Выборка.Следующий() Цикл СтруктураСтроки = Новый Структура(); Для каждого ОчереднаяКолонка Из РезультатЗапроса.Колонки Цикл СтруктураСтроки.Вставить(ОчереднаяКолонка.Имя, Строка(Выборка[ОчереднаяКолонка.Имя])); КонецЦикла; ДанныеОтвета.Добавить(СтруктураСтроки); КонецЦикла; ЗаписьJSON = Новый ЗаписьJSON(); ЗаписьJSON.УстановитьСтроку(); ЗаписатьJSON(ЗаписьJSON, ДанныеОтвета); ТелоСтрокой = ЗаписьJSON.Закрыть(); Ответ.УстановитьТелоИзСтроки(ТелоСтрокой); Ответ.Заголовки.Вставить("Content-Type", "application/json"); Иначе Ответ = Новый HTTPСервисОтвет(421); Ответ.УстановитьТелоИзСтроки("Не указан ИНН в запросе."); КонецЕсли; Возврат Ответ; КонецФункции Функция НоменклатураПолучитьВсюНоменклатуру(Запрос) Ответ = Новый HTTPСервисОтвет(200); // http://localhost/UNF/hs/kiosk/sku?fields=код,наименование,артикул // шаблон: /sku Колонки = Запрос.ПараметрыЗапроса.Получить("fields"); Если Колонки = Неопределено Тогда СекцияВыбрать = "*"; Иначе МассивКолонок = СтрРазделить(Колонки, ","); СекцияВыбрать = ""; Для каждого ОчереднаяКолонка Из МассивКолонок Цикл СекцияВыбрать = СекцияВыбрать + ?(ЗначениеЗаполнено(СекцияВыбрать), ", | Номенклатура." + ОчереднаяКолонка + " КАК " + ОчереднаяКолонка, "Номенклатура." + ОчереднаяКолонка + " КАК " + ОчереднаяКолонка); КонецЦикла; КонецЕсли; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | &ИмяПоля КАК Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | НЕ Номенклатура.ПометкаУдаления"; Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяПоля КАК Ссылка", СекцияВыбрать); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); ДанныеОтвета = Новый Массив(); Пока Выборка.Следующий() Цикл СтруктураСтроки = Новый Структура(); Для каждого ОчереднаяКолонка Из РезультатЗапроса.Колонки Цикл СтруктураСтроки.Вставить(ОчереднаяКолонка.Имя, Строка(Выборка[ОчереднаяКолонка.Имя])); КонецЦикла; ДанныеОтвета.Добавить(СтруктураСтроки); КонецЦикла; ЗаписьJSON = Новый ЗаписьJSON(); ЗаписьJSON.УстановитьСтроку(); ЗаписатьJSON(ЗаписьJSON, ДанныеОтвета); ТелоСтрокой = ЗаписьJSON.Закрыть(); Ответ.УстановитьТелоИзСтроки(ТелоСтрокой); Ответ.Заголовки.Вставить("Content-Type", "application/json"); Возврат Ответ; КонецФункции