Имя: Пароль:
1C
 
Переход с платформы 8.3.12 на 8.3.16
0 mzelensky
 
20.05.20
15:47
Доброго времени суток!

Анализирую планируемый переход с платформы 8.3.12 на 8.3.16. Клиент-серверный вариант. Работа через тонкий клиент и веб-клиент. Конфигурация самописная, объемная, частично с применением БСП. Без режима совместимости.

Задача - найти критические моменты, которые могут вылезти после смены платформы. Сейчас читаю официальные источники по описанию версий платформ и изменениям в них. Но некоторые формулировки в описании прям в тупик ставят, а как это все на практике будет работать вообще не понятно.

Вопрос - может кто-то уже делал аналогичные переходы на 8.3.16, были ли какие-то серьезные траблы\грабли\фичи (ведь у разработчиков 1С багов нет, есть только фичи) и т.д.
1 H A D G E H O G s
 
20.05.20
15:52
Да, есть фичи с формированием отчетов.
Некоторые параметры СКД в плане пользовательских представлений стали недоступными.
Лечиться за 15 минут заглушками.
2 H A D G E H O G s
 
20.05.20
15:53
Индекс полнотекстового поиска может не обновляться и его придется укантропупить.
3 H A D G E H O G s
 
20.05.20
15:54
Тоже конфа самописка, с применением БСП, переводили с 8.3.12 на 8.3.15 без совместимости. Сомневаюсь, что в 8.3.16 много наверчено в сравнении с 8.3.15
4 mzelensky
 
20.05.20
15:55
(1) Пример "заглушки" можно?

(3) Пока по моему анализу больше всего критичных моментов на 8.3.13
5 H A D G E H O G s
 
20.05.20
16:02
УТ11.4
ОМ ОтчетыСервер
    СинхронизируемыеСвойства = Новый Соответствие;
    СинхронизируемыеСвойства.Вставить(Тип("ЭлементОтбораКомпоновкиДанных"), "ЛевоеЗначение, Представление");
    СинхронизируемыеСвойства.Вставить(Тип("ЭлементУсловногоОформленияКомпоновкиДанных"), "Представление");
    #Вставка
    СинхронизируемыеСвойства = Новый Соответствие;
    СинхронизируемыеСвойства.Вставить(Тип("ЭлементОтбораКомпоновкиДанных"), Неопределено);
    СинхронизируемыеСвойства.Вставить(Тип("ЭлементУсловногоОформленияКомпоновкиДанных"), Неопределено);
    #КонецВставки

    #КонецОбласти
6 mzelensky
 
20.05.20
16:10
(5) я вроде нашел описание этой "фичи":

"
При обращении к не используемым свойствам объектов системы компоновки данных, находящихся в пользовательских настройках, генерируется исключение:
Свойство ПредставлениеПользовательскойНастройки объектов ОтборКомпоновкиДанных, ВыбранныеПоляКомпоновкиДанных, УсловноеОформлениеКомпоновкиДанных.
Свойства ПредставлениеПользовательскойНастройки, Представление, ЛевоеЗначение, Применение, Родитель объекта ЭлементОтбораКомпоновкиДанных.
"

Вот только я уже раз 20 прочел этот текст, но так и не понял в какой момент генерится исключение.
7 H A D G E H O G s
 
20.05.20
16:57
Сформируешь любой типовой отчёт и сгенерится.
8 Комрад1
 
20.05.20
17:21
Был недавно такой проект перехода, месяца 2 один человек занимался, много мелких косячков вылавливал. Сейчас всё работает как часы.
9 mzelensky
 
20.05.20
17:25
(8) А список косячков случайно не остался?
10 mzelensky
 
20.05.20
18:45
Блин, переведите мне, что ОНИ ИМЕЛИ ВВИДУ:

"
Система компоновки данных.
При добавлении отбора в запрос набора данных схемы компоновки данных, содержащего объединения, отбор обязательно добавляется во все части объединения, если

отбор удалось поместить хотя бы в одну часть объединения. При этом, в тех частях объединения, в которых отбор применить не удается из-за отсутствия в них

полей, использующихся в отборе, в добавляемые условия вместо отсутствующего поля проставляется выражение NULL.
В режиме совместимости с версией 8.3.12 поведение не изменилось.
При добавлении отбора в запрос набора данных схемы компоновки данных, содержащего объединения, отбор помещался только в те части объединения, в которых было

доступно поле, к которому применяется отбор.    Унифицировано применение отборов в системе компоновки данных между набором данных-объединение и набором

данных-запрос с объединением в запросе.
"
11 mistеr
 
20.05.20
19:41
(10) Насколько я понял, если есть запрос вида

    ВЫБРАТЬ
        Документ1.Ссылка КАК Документ
    ИЗ
        Документ.Документ1 КАК Документ1
    ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ
        Документ2.Ссылка
    ИЗ
        Документ.Документ2 КАК Документ2

и пользователь ставит отбор на Документ.Контрагент. В одном документе он есть, а в другом нет.
12 mzelensky
 
22.05.20
16:26
(11) И что будет в этом случае?

Вот это "в добавляемые условия вместо отсутствующего поля проставляется выражение NULL" к чему в итоге приведет?
13 lodger
 
22.05.20
16:36
(12) как минимум к тому, что результат работы отбора будет неожиданным.
14 mistеr
 
22.05.20
16:37
(12) ХЗ, "NULL = NULL" наверное.
15 mzelensky
 
22.05.20
16:52
(12) Во-во...полная неожиданность. Какой дебил в 1С отвечает за составление этих описаний?!?!? (риторический вопрос)

(14) NULL никогда не равен NULL
16 lubitelxml
 
22.05.20
16:52
(14) нет, NULL <> NULL
17 mzelensky
 
22.05.20
17:05
(16) Логически верно, но использовать любой оператор сравнения, применительно к NULL, нельзя. Проверять можно исключительно "Есть Null"
18 lubitelxml
 
22.05.20
17:06
(17) именно так и есть
19 mzelensky
 
22.05.20
17:11
Еще один шедевр:

"
В том случае, если оператор языка запросов ЕСТЬ NULL применяется к выражению, в котором используется комбинация нескольких виртуальных полей или комбинация
виртуального поля и выражения, не содержащего виртуальных полей, то результатом работы функции будет значение ИСТИНА, если результат выражения равен NULL и
ЛОЖЬ в противном случае.
"

Как будет выглядеть применение "ЕСТЬ NULL" к "комбинация виртуального поля и выражения, не содержащего виртуальных полей" ?! ЧТО ЭТО ЗНАЧИТ?
20 mistеr
 
22.05.20
18:50
(19) Если так интересно, возьми консоль компоновки из ИР и проверь.
Заодно нам расскажешь.