• Главная
  • Курсы
  • События
  • Блог
  • Контакты
  • Магазин
    • Загрузки
  • Партнерка
  • Обо мне
Есть вопросы? Звоните:
+7 (917) 449 09 97
admin@nizamov.school
РегистрацияВход
nizamov.school
  • Главная
  • Курсы
  • События
  • Блог
  • Контакты
  • Магазин
    • Загрузки
  • Партнерка
  • Обо мне

Blog

  • Главная
  • Блог
  • Blog
  • МОБИЛЬНАЯ 1С. LAZYLOADING НОМЕНКЛАТУРЫ. ЧАСТЬ 1

МОБИЛЬНАЯ 1С. LAZYLOADING НОМЕНКЛАТУРЫ. ЧАСТЬ 1

  • Опубликовано Илья Низамов
  • Разделы Blog
  • Дата 11.03.2021
  • Комментарии Нет комментариев
мобильная 1с

Привет программисты 1С, с вами Низамов Илья. Сегодня мы разработаем backend в 1С для нашего мобильного приложения. HTTP сервис 1С будет возвращать номенклатуру в формате json с пагинацией по 4 позиции. В последующих уроках мы разработаем фронтенд на javascript фреймворке Vue, и перенесем потом его в мобильное приложение 1С.

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

Запишись на тренинг

РАЗРАБОТАЙ МИНИ САЙТ НА СОВРЕМЕННОМ ФРЕЙМВОРКЕ NuxtJS ДЛЯ ОФОРМЛЕНИЯ ЗАКАЗОВ КОНТРАГЕНТАМИ
ПОДРОБНЕЕ

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

И давайте приступать.

Функция ProductsGET(Запрос)
	
	КодПоследнегоЭлемента = Запрос.ПараметрыЗапроса.Получить("lastcode");
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ ПЕРВЫЕ 4
	|	СпрНоменклатура.Код КАК Код,
	|	СпрНоменклатура.Ссылка,
	|	СпрНоменклатура.Наименование,
	|	СпрНоменклатура.Артикул,
	|	СпрНоменклатура.НаименованиеПолное,
	|	СпрНоменклатура.ДополнительноеОписаниеНоменклатуры,
	|	СпрНоменклатура.ОсновноеИзображение,
	|	ЦеныНоменклатурыСрезПоследних.Цена,
	|	ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
	|ИЗ
	|	Справочник.Номенклатура КАК СпрНоменклатура
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
	|		ПО (ЦеныНоменклатурыСрезПоследних.Номенклатура = СпрНоменклатура.Ссылка)
	|ГДЕ
	|	СпрНоменклатура.Код > &Код
	|	И СпрНоменклатура.ЭтоГруппа = ЛОЖЬ
	|
	|УПОРЯДОЧИТЬ ПО
	|	Код";
	Запрос.УстановитьПараметр("ТипЦен", Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000004"));
	Если ЗначениеЗаполнено(КодПоследнегоЭлемента) Тогда
		Запрос.УстановитьПараметр("Код", КодПоследнегоЭлемента);
	Иначе	
		Запрос.Текст = СтрЗаменить(Запрос.Текст, "СпрНоменклатура.Код > &Код", "ИСТИНА");	
	КонецЕсли; 
	РезультатЗапроса = Запрос.Выполнить();
	
	СтруктураОтвета = ПолучитьСтруктуруОтвета();
	
	Если РезультатЗапроса.Пустой() Тогда
		Возврат СформироватьОтвет(СтруктураОтвета, 204);
	КонецЕсли; 
	
	Код = 0; 
	Выборка = РезультатЗапроса.Выбрать();
	Пока Выборка.Следующий() Цикл
		ДанныеТовара = Новый Структура;
		ДанныеТовара.Вставить("guid", XMLСтрока(Выборка.Ссылка));
		ДанныеТовара.Вставить("title", СтрШаблон("%1 - %2", Выборка.Наименование, Выборка.ХарактеристикаНоменклатуры));
		ДанныеТовара.Вставить("price", Выборка.Цена);
		ДанныеТовара.Вставить("desk", Выборка.ДополнительноеОписаниеНоменклатуры);
		ДанныеТовара.Вставить("img", ПолучитьКартинкуДляHTML(Выборка.ОсновноеИзображение));
		
		СтруктураОтвета.products.Добавить(ДанныеТовара);
		
		Код = Выборка.Код;
	КонецЦикла; 
	СтруктураОтвета.lastcode = Код;
	
	Возврат СформироватьОтвет(СтруктураОтвета, 200);
КонецФункции
Функция ПолучитьСтруктуруОтвета()
Товары = Новый Структура;
Товары.Вставить("lastcode", 0);
Товары.Вставить("products", Новый Массив);

  Возврат Товары;
КонецФункции
Функция СформироватьJSON(СтруктураДанных)
Попытка
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON(, Символы.Таб));

  ЗаписатьJSON(ЗаписьJSON, СтруктураДанных);

Возврат ЗаписьJSON.Закрыть();
Исключение
ЗаписьЖурналаРегистрации("Vue",,,, ОписаниеОшибки());
Возврат СформироватьJSON(ПолучитьСтруктуруОтвета());
КонецПопытки;

КонецФункции
Функция СформироватьОтвет(СтруктураОтвета, КодОтвета)
Ответ = Новый HTTPСервисОтвет(КодОтвета);
Ответ.УстановитьТелоИзСтроки(СформироватьJSON(СтруктураОтвета), КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
Возврат Ответ;
КонецФункции
Функция ПолучитьКартинкуДляHTML(ОсновноеИзображение)

ДвоичныеДанные = БиблиотекаКартинок.Заглушка.ПолучитьДвоичныеДанные();
Если НЕ ОсновноеИзображение.Хранилище.Получить() = Неопределено Тогда
ДвоичныеДанные = ОсновноеИзображение.Хранилище.Получить().ПолучитьДвоичныеДанные();
КонецЕсли;

СтрокаBase64 = ПолучитьBase64СтрокуИзДвоичныхДанных(ДвоичныеДанные);

СтрокаBase64 = СтрЗаменить(СтрокаBase64, Символы.ПС, "");
СтрокаBase64 = СтрЗаменить(СтрокаBase64, Символы.ВК, "");

Возврат СтрШаблон("data:image/jpg;base64, %1", СтрокаBase64);
КонецФункции
author avatar
Илья Низамов

Предыдущая запись

1С JAVASCRIPT. ЛИЧНЫЙ КАБИНЕТ КОНТРАГЕНТА НА NUXTJS
11.03.2021

Следующая запись

МОБИЛЬНАЯ 1С. LAZYLOADING НОМЕНКЛАТУРЫ. ЧАСТЬ 2
15.03.2021

Вам также может понравиться

gigachat
GIGACHAT ИЛИ CHATGPT ИИ МЕНЕДЖЕР ДЛЯ 1С
15 мая, 2024
gigachat ии менеджер
ИИ МЕНЕДЖЕР НА БАЗЕ GIGACHAT
12 февраля, 2024
chatgpt антиспам
ChatGPT Антиспам. Часть 1
5 февраля, 2024

Оставьте ответ Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Поиск

Рубрики

  • Blog

Ссылки

  • Политика конфиденциальности
  • Публичная оферта

Сайт создан в NIZAMOV.studio

Регистрация с помощью:

Войти Vkontakte

Вход через логин и пароль

Забыли пароль?

Нет аккаунта? Регистрируйся прямо сейчас

Register a new account

Are you a member? Login now