1. SuperBlur 04.04.24 09:37 Сейчас в теме
Добрый день, столкнулся с проблемой, немного не догоняю как сделать

На форме обработчика есть реквизит дата

Помогите реализовать такой момент: Выбираю дату например 01.01.2024, и нужно передавать все записи начиная с этого дня, до текущего дня, тем самым будет 95 дней передано в Json
Затем момент есть "data" - нужно передавать дату за который берутся данные
То есть сначала 01.01.2024, затем 02.01.2024 и чтобы оно менялось
Все это передается в базу данных

#Область ОбработчикиКомандФормы
 
&НаКлиенте
Процедура Запрос(Команда)
    ОтветОтСервера = ЗапросКСервисуНаСервере("Организация", "Дата", "НачалоДня", "КонецДня");
КонецПроцедуры
 
#КонецОбласти
 
#Область Сериализация
 
&НаСервереБезКонтекста
Функция СформироватьJSON(Знач Данные)
    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.УстановитьСтроку();
 
    ЗаписатьJSON(ЗаписьJSON, Данные);
 
    Возврат ЗаписьJSON.Закрыть();
КонецФункции
 
#КонецОбласти
 
 
&НаСервереБезКонтекста
Функция ЗапросКСервисуНаСервере(Знач org, Знач Дата, Знач НачалоДня, Знач КонецДня)
    Попытка
        HTTPСоединение = Новый HTTPСоединение("127.0.0.1", 8000,,,, 30);
 
        Заголовки = Новый Соответствие;
        Заголовки.Вставить("Content-Type", "application/json");
 
        HTTPЗапрос = Новый HTTPЗапрос("/tbt/", Заголовки);
        
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ТиповойОстаткиИОбороты.Организация КАК Организация,
        |   ТиповойОстаткиИОбороты.Субконто1 КАК Номенклатура,
        |   ТиповойОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
        |   ТиповойОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
        |   ТиповойОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
        |   ТиповойОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток,
        |   ТиповойОстаткиИОбороты.Счет КАК Счет
        |ИЗ
        |   РегистрБухгалтерии.Типовой.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Период, , Счет = ЗНАЧЕНИЕ(ПланСчетов.Типовой.Товары), , ) КАК ТиповойОстаткиИОбороты";
    
    
            Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(ТекущаяДата()));
            Запрос.УстановитьПараметр("КонецПериода", КонецДня(ТекущаяДата()));
            Запрос.УстановитьПараметр("Период", Дата);
            Результат = Запрос.Выполнить().Выбрать();
            
 
        ДанныеДляОтправки = Новый Массив; // Определение массива
 
        Пока Результат.Следующий() Цикл
            Данные = Новый Структура;
            Данные.Вставить("org",Результат.Организация.Наименование);
            Данные.Вставить("nom",Результат.Номенклатура.Наименование);
            Данные.Вставить("qi_rem",Результат.КоличествоНачальныйОстаток);
            Данные.Вставить("qf_rem",Результат.КоличествоКонечныйОстаток);      
            Данные.Вставить("ai_bal",Результат.СуммаНачальныйОстаток);
            Данные.Вставить("af_bal",Результат.СуммаКонечныйОстаток);
            Данные.Вставить("data", Результат.Дата);
            ДанныеДляОтправки.Добавить(Данные);
        КонецЦикла;
 
        ДанныеJSON = СформироватьJSON(ДанныеДляОтправки);
        HTTPЗапрос.УстановитьТелоИзСтроки(ДанныеJSON, КодировкаТекста.UTF8);
        HTTPОтветОтСервера = HTTPСоединение.ВызватьHTTPМетод("POST", HTTPЗапрос);
        Возврат HTTPОтветОтСервера.ПолучитьТелоКакСтроку();
 
    Исключение
        ЗаписьЖурналаРегистрации("FastAPI", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
    КонецПопытки;
    Возврат Неопределено;
КонецФункции
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Onwardv 68 04.04.24 10:43 Сейчас в теме
1) Вопрос непонятен. Судя по всему, надо сделать временную таблицу дат, где есть каждый день за указанный период, например, из производственного календаря, если он есть. Затем к таблице с днями левым соединением обороты и остатки за каждый день.

2) какой-то бардак. Объявляете соединение, потом запросом получаете данные и формируете JSON. Сначала получите JSON, а потом присоединяйтесь и шлите содержимое.
3. SuperBlur 04.04.24 14:13 Сейчас в теме
(2)
На выходе данные должны примерно так выходить, в отчете получается это сделать и без календаря, но вот чтобы передавалось как надо в Json не выходит
То что бардак в коде знаю про это
Прикрепленные файлы:
4. starjevschik 04.04.24 14:44 Сейчас в теме
ну тут джейсон вроде очень важен. Сделай сначала получение нужного набора данных, а потом уже куда его девать, это дело техники. В приведенном коде запрос не возвращает все нужные поля, надо или поправить запрос, или вообще как-то иначе переделать.
5. Vlad_M_75 05.04.24 08:42 Сейчас в теме
РегистрБухгалтерии.Типовой.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Период
Должно быть так: РегистрБухгалтерии.Типовой.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, ДЕНЬ
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот