При обновлении ERP на версию 2.5.11.96 возникает ошибка, если отключен режим совместимости.
Решили обновиться с ERP версии 2.5.10.93 на версию 2.5.11.96.
Используем движок 1С 8.3.22.1923
В конфигурации отключен режим совместимости! - это важно.
При попытке накатить обновление, 1С жалуется на запрос в общем модуле "НоменклатураСервер" в процедуре "ПроверитьОкруглениеКоличестваВнутреннийи".
Оказывается программист 1С применил обращение к реквизиту через точку для данных из таблицы значений, переданной в виде параметра.
А ведь все знают, что начиная с движка 1С версии 8.3.18 и более поздние такие запросы не работают.
Пример, который не работает на последних движках:
Что бы запрос заставить работать, нужно таблицу значений, переданную в виде параметра, предварительно поместить во временную таблицу запроса.
Соответственно, вносим исправления в Общий модуль "НоменклатураСервер"
в Процедуру "ПроверитьОкруглениеКоличестваВнутренний"
Теперь можно обновиться с отключенным режимом совместимости с версией 17.
В 1С ошибку направил.
Используем движок 1С 8.3.22.1923
В конфигурации отключен режим совместимости! - это важно.
При попытке накатить обновление, 1С жалуется на запрос в общем модуле "НоменклатураСервер" в процедуре "ПроверитьОкруглениеКоличестваВнутреннийи".
Оказывается программист 1С применил обращение к реквизиту через точку для данных из таблицы значений, переданной в виде параметра.
А ведь все знают, что начиная с движка 1С версии 8.3.18 и более поздние такие запросы не работают.
Пример, который не работает на последних движках:
"ВЫБРАТЬ
| ВЫРАЗИТЬ(ТЧ.Номенклатура КАК Справочник.Номенклатура).ЕдиницаИзмерения
|ИЗ
| &ТЧ КАК ТЧ";
Что бы запрос заставить работать, нужно таблицу значений, переданную в виде параметра, предварительно поместить во временную таблицу запроса.
Соответственно, вносим исправления в Общий модуль "НоменклатураСервер"
в Процедуру "ПроверитьОкруглениеКоличестваВнутренний"
ТекстЗапроса =
#Вставка
"ВЫБРАТЬ *
|ПОМЕСТИТЬ ТЧ
|из &ТЧ как ТЧ;";
ТекстЗапроса = ТекстЗапроса +
#КонецВставки
"ВЫБРАТЬ
| ТЧ.НомерСтроки КАК НомерСтроки,
| ТЧ.Номенклатура КАК Номенклатура,
| ВЫРАЗИТЬ(ТЧ.Номенклатура КАК Справочник.Номенклатура).ЕдиницаИзмерения.ТипИзмеряемойВеличины КАК ТипИзмеряемойВеличины,
| ТЧ.КоличествоУпаковок КАК КоличествоУпаковок,
| ТЧ.Количество КАК КоличествоВДокументе,
| ВЫРАЗИТЬ(ТЧ.Упаковка КАК Справочник.УпаковкиЕдиницыИзмерения) КАК Упаковка,
| ВЫРАЗИТЬ(ТЧ.Упаковка КАК Справочник.УпаковкиЕдиницыИзмерения).ТипУпаковки КАК ТипУпаковки,
| &ТекстЗапросаКоэффициентУпаковки КАК КоэффициентУпаковки,
| &ИмяПоляКоличествоУпаковокСуффикс КАК КоличествоУпаковокСуффикс,
| &ИмяПоляКоличествоСуффикс КАК КоличествоВДокументеСуффикс,
| &ДополнительныеПоля
|ПОМЕСТИТЬ ВТДляЗапроса
|ИЗ
#Удаление
| &ТЧ КАК ТЧ
#КонецУдаления
#Вставка
| ТЧ КАК ТЧ
#КонецВставки
|ГДЕ
| ТЧ.Упаковка <> ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| И &УсловиеОтбораСтрокДляОкругления
|
|ИНДЕКСИРОВАТЬ ПО
| ТипИзмеряемойВеличины
|;
|
//... там еще длинный запрос..."
ПоказатьТеперь можно обновиться с отключенным режимом совместимости с версией 17.
В 1С ошибку направил.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3)
Да, "он" придуман компаний 1С, что бы заставить всех пользователей сначала перейти на новые движки 1С, а потом отказаться от их преимуществ и вернуть всех назад в каменный век, включив режим совместимости во всех флагманских конфигураций.
*сарказм* ;)
он не просто так придуман.
Да, "он" придуман компаний 1С, что бы заставить всех пользователей сначала перейти на новые движки 1С, а потом отказаться от их преимуществ и вернуть всех назад в каменный век, включив режим совместимости во всех флагманских конфигураций.
*сарказм* ;)
(5)
Для полностью самостоятельных конфигураций - да.
Если используете расширение, то при включенном режиме совместимости на основной конфигурации, вам придется и в расширении включать режим совместимости, отказавшись от нового функционала.
Какой-то холивар получается. :)
Для своих разработок вы можете использовать новые движки.
Для полностью самостоятельных конфигураций - да.
Если используете расширение, то при включенном режиме совместимости на основной конфигурации, вам придется и в расширении включать режим совместимости, отказавшись от нового функционала.
Какой-то холивар получается. :)
Вот еще странное поведение при отключении режима совместимости на движке 8.3.22.
Отчет "карточка счета" перестает формироваться, если выбран только один показатель.
В отчете.КарточкаСчета.Модуль есть код, выполняемый только при одном выбранном показателе... он пытается очистить области в макете отчета СКД... но 8.3.22 движок, при получении массива областей в макете, подменяет тип первому элементу массива с "МакетОбластиКомпановкиДанных" на "МакетДокументаОбластиКомпановкиДанных", что конечно вызывает исключение при попытке получения вложенных ячеек... это бак движка...
Обращение в 1С (#HL-668188)...
интересен их ответ:
Соответственно и наш ответ Чембилену:
Отчет "карточка счета" перестает формироваться, если выбран только один показатель.
В отчете.КарточкаСчета.Модуль есть код, выполняемый только при одном выбранном показателе... он пытается очистить области в макете отчета СКД... но 8.3.22 движок, при получении массива областей в макете, подменяет тип первому элементу массива с "МакетОбластиКомпановкиДанных" на "МакетДокументаОбластиКомпановкиДанных", что конечно вызывает исключение при попытке получения вложенных ячеек... это бак движка...
Обращение в 1С (#HL-668188)...
интересен их ответ:
Отключение режима совместимости это изменение типового функционала программы. Соответственно, это не поддерживается в официальных релизах.
Штатно повышение режима совместимости планируется в версии 2.5.13.
Штатно повышение режима совместимости планируется в версии 2.5.13.
Соответственно и наш ответ Чембилену:
Я это прекрасно понимаю, и не выставляю претензий к 1С.
Однако, я думаю, что Вы пишите свой продукт ЕРП с оглядкой на его работоспособность в ваших выпущенных релизах движков, которые вы все время рекомендуете обновлять.
Соответственно, что бы ускорить переход на более свежие движки 1С, мы оперативно шлем вам выявленные ошибки.
Однако, я думаю, что Вы пишите свой продукт ЕРП с оглядкой на его работоспособность в ваших выпущенных релизах движков, которые вы все время рекомендуете обновлять.
Соответственно, что бы ускорить переход на более свежие движки 1С, мы оперативно шлем вам выявленные ошибки.
Прикрепленные файлы:
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот