Имя: Пароль:
1C
 
Занятная переписка с ИТС
0 Zhuravlik
 
29.05.24
14:01
1. Поддержка все правильно говорит 100% (2)
2. Поддержка ошибается 0% (0)
Всего мнений: 2

Всем привет. Состоялся "интереснейший" диалог по поводу реализации метода в БСП. Интересно узнать мнение разрабов по этому поводу.
Суть проблемы - в файловой базе программно запускаю отчет по внедрению БСП. При этом есть подключенное активное расширение. Мне его не надо тестировать, просто оно есть. Отчет упорно запускается в фоне, и т.к. формирование программное - я фоновый запуск не хочу, и подредактировал параметры запуска метода отчета:


    ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(ИдентификаторФормы);
    ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Проверка внедрения БСП'");
    ПараметрыВыполнения.БезРасширений = Истина;
    ПараметрыВыполнения.СРасширениямиБазыДанных = Ложь;
    ПараметрыВыполнения.ЗапуститьНеВФоне = Истина;
// ...

    РезультатВыполнения = ДлительныеОперации.ВыполнитьФункциюВНесколькоПотоков(ИмяФункции, ПараметрыВыполнения, ПараметрыМетода);

Он все-равно запускается в фоне. Базу с параметром "РежимОтладки" запускать смысла нет, т.к. если раскопать модуль длительных операций, то вызов уходит в ДлительныеОперации.ВыполнитьВФоне. А там такое условие:

//..
    ВыполнитьБезФоновогоЗадания = Не ПараметрыВыполнения.БезРасширений
        И Не ПараметрыВыполнения.СРасширениямиБазыДанных
        И (ОбщегоНазначения.РежимОтладки() Или ПараметрыВыполнения.ЗапуститьНеВФоне
            Или (ЕстьФоновыеЗаданияВФайловойИБ() И Не ПараметрыВыполнения.ЗапуститьВФоне)
            Или Не ВозможноВыполнитьВФоне(ИмяПроцедуры));

//..

Мое последнее сообщшение в поддержку было таким:

...Меня смутило условие:
Не ПараметрыВыполнения.БезРасширений
        И Не ПараметрыВыполнения.СРасширениямиБазыДанных

Не ПараметрыВыполнения.БезРасширений = с расширениями
Не ПараметрыВыполнения.СРасширениямиБазыДанных = без расширений

Т.е. получается что Истина ожидается если "с расширениями" и "без расширений". Вы тут ничего странного не видите?
...

Ответ:
...чтобы ВыполнитьБезФоновогоЗадания было Истина, нужно чтобы ПараметрыВыполнения.БезРасширений было ЛОЖЬ и ПараметрыВыполнения.СРасширениямиБазыДанных было ЛОЖЬ, а не как вы пишите, чтобы это было ИСТИНА.
При этом не важно есть режим отладки или нет, есть признак ЗапуститьНеВФоне или нет, т.к. БезРасширений и СРасширениямиБазыДанных имеют над ними приоритет в силу технических возможностей платформы.

У меня что-то разрыв шаблона. Это я чего-то не понимаю, или все таки тупит поддержка?
1 Zhuravlik
 
29.05.24
14:03
+ Версия БСП 3.1.9.238
2 Garykom
 
29.05.24
14:07
3 Garykom
 
29.05.24
14:29
wiki:Булева_алгебра
раскрытие скобок
 ВыполнитьБезФоновогоЗадания = Не ПараметрыВыполнения.БезРасширений И Не ПараметрыВыполнения.СРасширениямиБазыДанных И ...
=
 ВыполнитьБезФоновогоЗадания = НЕ(ПараметрыВыполнения.БезРасширений ИЛИ ПараметрыВыполнения.СРасширениямиБазыДанных) И ...
4 PLUT
 
29.05.24
14:11
(0) ну надо это просто принять как должное и "двигаться дальше в направлении намеченной цели"

"сол/фасол пишется с мягким знаком, а вилька/тарелька - без мягкого"

я тоже искренне обескуражен был, что некоторые методы платформы не работают в жЫрном толстом режиме клиента. а уж как компоновку данных (СКД) корёжит в толстом....
5 Lama12
 
29.05.24
14:18
(0) Они тебя не поняли. По мне, так и оба утверждения верны. ☺ Но полагаю, что и мое утверждение имеет неоднозначное трактование.
6 Garykom
 
29.05.24
14:32
(4) пофиг на СКД в толстом
программные лицензии и проверку лицензионности конфы в толстом клиенте корежит
в т.ч. для лицензии для разработчиков
7 Мультук
 
29.05.24
14:32
(0)

Обратите внимание, что в документации описано поведение флагов ТОЛЬКО при ИСТИНА.
А вот поведение флагов при  ложь не описано.
В данном случае ложь это что-то вроде "неопределено".

А вы исходя из булевой логики, считаете что флаг при "ЛОЖЬ" делает обратное действие,
но имхо по замыслу разработчиков флаг при "ЛОЖЬ" ничего не делает.

P.S.
Без понятия как и зачем так было сделано.
Скорее всего "так исторически сложилось, переделывать не стали"
8 Zhuravlik
 
29.05.24
15:08
(3) от перестановки слагаемых сумма не меняется..
(7) действительно, спасибо
9 Garykom
 
29.05.24
15:20
(8)
от перестановки слагаемых сумма не меняется..

Не понял что не нравится
Как в документации написано так и работает

Почему так задачу поставили разработчикам - это вопрос другой
Если не нравится - ну так сделай как тебе надо, обычно такое расширением правят

Например для отладки внешних обработок там тоже идиотизм в типовых на БСП
10 bird
 
04.06.24
21:35
(0)
> При этом есть подключенное активное расширение. Мне его не надо тестировать, просто оно есть.

И отчету "Проверка внедрения БСП" не нужно его тестировать, поэтому он и запускается с признаком БезРасширений = Истина.

> Отчет упорно запускается в фоне, и т.к. формирование программное - я фоновый запуск не хочу

Если запустится не в фоне, то будет тестировать расширение, но выгружать в файлы только конфигурацию - итого у результата проверки может случиться "разрыв шаблона"

Хочется не в фоне, но нужно в фоне запускать (с признаком БезРасширений = Истина), чтобы конфигурацию тестировал без влияния расширений, иначе можно получить ошибки каких нет или отсутствие ошибок, которые есть.

Поддержка все правильно говорит
11 bird
 
04.06.24
21:56
(7) Для сведения:
1. Флаги БезРасширений и СРасширениямиБазыДанных технологические (по умолчанию не используются).
Они логически не имеют никакого отношения к операции, которая может быть выполнена, как прямо в сеансе, так и в фоне (как длительная операция), так их применение меняет состав метаданных, а такое изменение в текущем сеансе невозможно (метаданные постоянны от начала сеанса до его конца).

2. Поэтому говорить про "БезРасширений" в текущем сеансе или "СРасширениямиБазыДаннных" в текущем сеансе нет никакого смысла. Применение этих флагов возможно только для запуска нового сеанса, а значит:
а) либо в фоне с помощью методов платформы:
РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеБезРасширений
РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных
б) либо в новом сеансе (но для варианта, аналогичного "ВыполнитьФоновоеЗаданиеБезРасширений", перед запуском нового сеанса все расширения нужно отключить).

Понятно, что вариант (а) программно проще применить, чем вариант (б).

Поддержка все правильно говорит
12 breezee
 
05.06.24
06:13
Зачем файловая?
13 DJ Anthon
 
05.06.24
06:37
не понимаю, какой смысл разговаривать с поддержкой, это ж как с кописпастой разговаривать. кинул им баг, поправили - хорошо, не поправили, ну и хсним. я думаю, что проблемы, решаемые изменением кода, перестали быть проблемами с момента изобретения расширений.