Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как быстро и ловко пересчитать итоги через Rest / OData?

Как быстро и ловко пересчитать итоги через Rest / OData?
Я
   bolero
 
09.02.19 - 22:32
Имею следующую функцию:


-- Удаляем без разбора все посчитанные итоги
CREATE OR REPLACE FUNCTION pg_temp.truncate_totals() RETURNS VOID AS
$$
DECLARE
  statements CURSOR FOR SELECT
                          table_name
                        FROM information_schema.tables
                        WHERE
                          table_schema = 'public' AND
                          table_name LIKE '_accumrgt%';
BEGIN
  FOR stmt IN statements
    LOOP
      EXECUTE 'TRUNCATE TABLE ' || quote_ident(stmt.table_name) || ' CASCADE;';
    END LOOP;
END;
$$
  LANGUAGE plpgsql;

SELECT pg_temp.truncate_totals();


Но после ее исполнения приходится руками лезть в все функции - стандартные - Управление итогами.

Должна же быть кнопка, чтобы сделать то же самое через REST API?

В документации ничего похожего на управление итогами не нашел.

Какой у вас есть положительный опыт в этом плане?
 
 
   Cyberhawk
 
1 - 10.02.19 - 08:40
"приходится руками лезть в все функции - стандартные - Управление итогами" // Ну так в этой обработке вызываются вполне платформенные методы
   bolero
 
2 - 10.02.19 - 16:40
(1) вопрос в том, как этот платформенный метод дернуть через REST / OData.

Исправляет регистры у меня робот, удаляет итоги тоже робот, а для запуска клиента или конфигуратора у него ни графического окружения, ни тонкого клиента или конфигуратора нет.

Может, там для запуска обработки чего-то в документации недописали?

Пока планирую к какому-нибудь типовому, но неиспользуемому объекту присобачить через расширение довесок к процедуре ПриЗаписи, но это же изврат.
   sieben
 
3 - 10.02.19 - 17:25
(2) Так в чем вопрос-то? Как написать на 1С вполне себе такой REST http-сервис и внутри него вызвать методы менеджеров регистров?
   bolero
 
4 - 10.02.19 - 17:30
(3) не любитель велосипеды строить, предпочитаю на готовых кататься

В идеале хотелось бы метод, который потом на нетронутой типовой конфе отработает.
   sieben
 
5 - 10.02.19 - 17:37
(4) Есть метод лучше. Просто делегируешь задачу программисту и ждешь результата. Зачем тебе вообще эти ODATA/REST ???
   sieben
 
6 - 10.02.19 - 17:38
... хотя постойте
   Cyberhawk
 
7 - 10.02.19 - 18:59
"Может, там для запуска обработки чего-то в документации недописали?" // Не тупи. Я про какие-то обработки ничего не писал.
   palsergeich
 
8 - 10.02.19 - 21:05
(0) Итоги такая вещь которая из коробки не предпалогает того что туда залезет разработчик.
Максимум можно на какой то интервал выключить их и включить. Ну или руками пересчитать РегистрыНакопления.ИмяРегистра.ПересчитатьИтоги()
Odata не предназначен для этого.
В HTTP - РегистрыНакопления.ИмяРегистра.ПересчитатьИтоги() пишем руками.
   Nyoko
 
9 - 10.02.19 - 21:47
(8) +1
   Cyberhawk
 
10 - 11.02.19 - 12:52
Не забываем, что при сбоях в этих итогах гарантированно помогает, увы, _только_ флажок в ТиИ в конфигураторе
 
 Рекламное место пустует
   bolero
 
11 - 12.02.19 - 13:59
(1) (3) (8) Спасибо, сделал HTTP-сервис. Запускается из-под того же пользователя и по тому же адресу, что ворочает данные через odata.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует