Об одной неочевидной проблеме перехода на версию платформы 8.3.20

08.04.22

Разработка - Механизмы платформы 1С

При переходе на платформу 8.3.20 мы столкнулись с ошибкой "Повторяющийся псевдоним "Ссылка" Ссылка AS Ссылка,Presentation AS Presentation,Ссылка AS Ссылка" в ряде типовых конфигураций. Причём, эта проблема оказались неизвестна ни Яндексу, ни Гуглу. Путём мучительных экспериментов нам удалось найти решение. Пока я ещё не уверен, действительно это решение или обходной костыль, а настоящая проблема -- в чём-то другом, но это решение работает в ситуации, когда всё сломалось, а проблему надо решать срочно. Предположительная причина: платформа 8.3.20 более строго относится к типизации данных в запросах, чем предыдущие версии, вываливая в случае несоблюдения новшеств малопонятные ошибки.

Предыстория

В конце прошлого года один из наших заказчиков решил обновить платформу до версии 8.3.20. Работал он на тот момент с типовой 1С:Бухгалтерией 8 для Беларуси последней версии. После обновления перестал открываться один нужный отчёт. При открытии программа вываливалась с ошибкой вроде "{(2, 47)}: Повторяющийся псевдоним "Ссылка" Ссылка AS Ссылка,Presentation AS Presentation,<?>Ссылка AS Ссылка"

Ошибка противная. Она не возникала нигде в коде, она не отлавливалась под отладчиком. Судя по всему, она возникала где-то в недрах платформы при открытии формы и никоим способом отловить её не удалось.

Путём экспериментов выяснилось, что она проявляется на всех версиях платформы 8.3.20.х, но не возникает на любой версии 8.3.19.x и ниже.

Отправили багрепорт в 1С и приложили копию базы с описанием воспроизведения (собственно, демо-базу из дистрибутива). Через некоторе время получили ответ, что ошибка -- в конфигурации и информация передана разработчику. В чём ошибка -- нам не написали.

Откатились с заказчиком на 8.3.19 и решили подождать выхода более свежих релизов.

Сейчас уже другой заказчик решил установить 8.3.20. Ошибка в другой конфигурации начала появляться в другом месте -- при подборе номенклатуры по партиям. В этой ситуации проблему мы решили (или обошли).

Суть проблемы и решение

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

 

 

У других пользователей с той же ошибкой конфигурация стала крашиться при попытке просто раскрыть поля документа "Партия" через "+":

 

 

Дополнительно в заблуждение вводит подробный текст ошибки (который ложится в файл выгрузки сообщения об ошибке для отправки):

Ошибка при получении характеристик для типа: Основное средство

{(2, 47)}: Повторяющийся псевдоним "Ссылка"

Ссылка AS Ссылка,Presentation AS Presentation,<?>Ссылка AS Ссылка

Причём тут основное средство? Различные эксперименты со справочником ОС, с дополнительными реквизитами и сведениями, характеристиками, документом Партия, их открытием, фильтрацией и выводом не дали никакой информации.

Однако, навело на нужные мысли то, что в данном запросе на "+" нормально раскрываются все объекты конфигурации, кроме Партии: Валюта, Подразделение и даже Субконто3, эту партию и содержащее. Значит, дело в запросе динамического списка?

В итоге этот запрос мы выгрузили во внешний отчёт самый простой и -- да. Оригинальный запрос приводил к такой же проблеме, чуть модифицированный -- нет.

Вот этот запрос обрушивал отчёт при попытке настроить его поля:

ВЫБРАТЬ
	ХозрасчетныйОстатки.Субконто3 КАК Партия,
	NULL КАК Подразделение,
	NULL КАК ФизЛицо,
	ЕСТЬNULL(ХозрасчетныйОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
	ХозрасчетныйОстатки.Счет КАК СчетУчета
ИЗ
	РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОстатки, {(Счет).* КАК Счет}, &ВидыСубконто, {(ВЫРАЗИТЬ(Субконто1 КАК Справочник.Номенклатура)).* КАК Номенклатура, (ВЫРАЗИТЬ(Субконто3 КАК Документ.Партия)).* КАК Партия}) КАК ХозрасчетныйОстатки

УПОРЯДОЧИТЬ ПО
	ХозрасчетныйОстатки.Субконто3.Дата

Достаточно оказалось всего лишь более строго указать тип:
 

	ВЫРАЗИТЬ(ХозрасчетныйОстатки.Субконто3 КАК Документ.Партия) КАК Партия,

Проблема оказалась решена.

Возможно, ей требуется более глубокое изучение. Возможно, истинная причина действительно где-то в справочнике основных средств или его структуре. Но во всяком случае мы нашли, куда копать, чтобы делать экстренные заплатки в ситуации, когда откат платформы -- дело более трудоёмкое, чем патчинг конфигурации (например, узкое технологическое окно и огромное количество клиентских машин).

Повторяющийся псевдоним Ссылка Presentation ошибка платформа 8.3.20

См. также

Поинтегрируем: сервисы интеграции – новый стандарт или просто коннектор?

Обмен между базами 1C Администрирование СУБД Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

В платформе 8.3.17 появился замечательный механизм «Сервисы интеграции». Многие считают, что это просто коннектор 1С:Шины. Так ли это?

11.03.2024    4525    dsdred    53    

72

Как готовить и есть массивы

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Все мы используем массивы в своем коде. Это один из первых объектов, который дают ученикам при прохождении обучения программированию. Но умеем ли мы ими пользоваться? В этой статье я хочу показать все методы массива, а также некоторые фишки в работе с массивами.

24.01.2024    5294    YA_418728146    25    

63

Планы обмена VS История данных

Обмен между базами 1C Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Вы все еще регистрируете изменения только на Планах обмена и Регистрах сведений?

11.12.2023    6409    dsdred    36    

111

1С-ная магия

Механизмы платформы 1С Бесплатно (free)

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    18473    SeiOkami    46    

118

Дефрагментация и реиндексация после перехода на платформу 8.3.22

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Начиная с версии платформы 8.3.22 1С снимает стандартные блокировки БД на уровне страниц. Делаем рабочий скрипт, как раньше.

14.09.2023    12088    human_new    27    

74

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    8821    YA_418728146    6    

141

Внешние компоненты Native API на языке Rust - Просто!

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Внешние компоненты для 1С можно разработывать очень просто, пользуясь всеми преимуществами языка Rust - от безопасности и кроссплатформенности до удобного менеджера библиотек.

20.08.2023    6279    sebekerga    54    

94

Все скопируем и вставим! (Буфер обмена в 1С 8.3.24)

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Рассмотрим новую возможность 8.3.24 и как её можно эффективно использовать

27.06.2023    15986    SeiOkami    31    

103
Отзывы
21. mpvrus21 13.04.22 09:48 Сейчас в теме
Была подобная проблема на конфигурации Бухгалтерия для Беларуси, редакция 2.1.31.4 после перехода на платформу 1С:Предприятие 8.3 (8.3.20.1674). В отчете ОСВ по 01 счету при попытке отбора по Субконто Основное средство 1С стала падать с ошибкой "Повторяющийся псевдоним "Ссылка" Ссылка AS Ссылка,Presentation AS Presentation,Ссылка AS Ссылка".
После долгих поисков на форумах, была наводка искать причину в характеристиках справочника.

В справочнике Основные средства открываем характеристики и меняем:
Вид характеристики Справочник.ВидыКонтактнойИнформации
Поле отбора видов Ссылка меняем на Родитель
Значение отбора видов АдресМестонахожденияОсновныеСредства меняем на СправочникОсновныеСредства

После этих манипуляций все работает как было. Если посмотреть характеристики других справочников, где задействованы ВидыКонтактнойИнформации, там точно так же используется Родитель и предопределенная группа видов контактной информации.
Прикрепленные файлы:
SobU; DrZombi; jenny2114; shunk; tormozit; Hexed; tolX5; mityaevev; artbear; Kernelbug; +10 Ответить
Остальные комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Sedaiko 572 10.04.22 06:03 Сейчас в теме
Это косяк разработчиков конфигурации - сами нарушили свои стандарты.
Представляю что будет с самописными конфами))))
3. SeiOkami 3423 10.04.22 07:51 Сейчас в теме
(1) а в чём именно косяк разработчиков конфигурации? Что не знали об ошибке платформы, о которой не знал никто?)
portwein; Silenser; kser87; +3 Ответить
7. kser87 2438 10.04.22 14:33 Сейчас в теме
(1) какие стандарты нарушили разрабы? Тут явно глюк платформы
portwein; +1 Ответить
8. Yuri_2008 10.04.22 17:42 Сейчас в теме
2. quazare 3586 10.04.22 07:00 Сейчас в теме
вот это еще типизируйте как пустая ссылка

NULL КАК Подразделение,
NULL КАК ФизЛицо,
4. triviumfan 92 10.04.22 12:56 Сейчас в теме
Получается, что вы тупо ограничили доступ к реквизитам субконто3. Больше похоже на костыль. Нужно дальше копать.
Раньше такая ошибка возникала когда в дин списке (с указанием основной таблицей) из-за неверных соединений дублировалась ссылка.
5. ivanov660 4330 10.04.22 13:40 Сейчас в теме
Из статьи понял что есть ошибка и можно сделать "костыль". Но почему эта заплатка работает не понятно и в чем суть ошибки не понятно. Попробуйте отправьте в 1С.
SerVer1C; kser87; +2 Ответить
6. Kernelbug 34 10.04.22 14:01 Сейчас в теме
(5)Отправили полгода назад. Получили ответ, что с платформой всё ОК, а ошибка в конфигурации. Откатились. Ждали обновления. В этот раз ни быстро откатиться, ни обновлений ждать не было возможности. Пришлось затычку искать.
Дмитрий74Чел; +1 Ответить
10. cdiamond 233 11.04.22 08:40 Сейчас в теме
(6) Вспомнить бы в каком году начался прикол с Общей картинкой при обновлении. Примерно на такой же срок рассчитывать ))
Kolunya; Slypower; mondordom; vlasin; maksa2005; Рамзес; pas; sevushka; CSiER; Sergafan10; megaauto; nemec; Award; user1559729; +14 Ответить
12. cdiamond 233 11.04.22 08:53 Сейчас в теме
(5) Вероятно речь о нововведении в 20-ой платформе. Из статьи "Что нового":
Динамические списки теперь используют представления полей, заданные в системе компоновки данных в свойстве Выражение представления. Это более удобный способ настройки представления данных;
9. Поручик 4670 11.04.22 08:13 Сейчас в теме
Какая необходимость была в обновлении платформы?
11. cdiamond 233 11.04.22 08:51 Сейчас в теме
(9) Для запуска на pg 13 например, если говорить о типовой конфе в режиме совместимости.
17. sirbusby 11.04.22 14:22 Сейчас в теме
(11)
Перед новым годом выходили релизы 8.3.18, 8.3.19, в которых появилась поддержка не только PostgreSQL 13, но и PostgreSQL 14.
13. Petr54-ru 90 11.04.22 08:54 Сейчас в теме
(1) Смысл "самописных конф", как раз в том, чтобы не налетать на ошибки связанные с как с обновлением типовых конфигураций, так и обновлений платформы.

Добились стабильной работы конфигурации и радуемся жизни. Если одновременно пользователю нужно работать с типовой конфигурацией и самописной, прописываем ему в параметрах запуска для самописной базы нужную платформу и так живем.
Поручик; +1 Ответить
14. Darklight 32 11.04.22 10:44 Сейчас в теме
То есть эта ошибка происходит на платформе 8.3.20 даже в режиме включённой совместимости конфигурации с более ранним релизом?

Сейчас в 1С Бухгалтерии 3.0 (смотрел в релизе 3.0.109.29) режим совместимости "Версия 8.3.16" (простите, не знаю какой в редакции для Беларуси) - или там и в конфигурации режим совместимости сняли - собственно это и ответ на вопрос - зачем вообще понадобилось так сильно переходить на платформу 8.3.20 - ради новых фишек для нетиповых доработок, ради которых ещё и режим совместимости нужно снимать!

Если же такая ошибка провялятся в режиме совместимости - то это уже явно претензия к платформе - так как ради этого и ввели режим совместимости - чтобы переход на новую версию платформу не рушил логику работы конфигураций в режиме совместимости с предыдущими версиями!
Auser777; Дмитрий74Чел; +2 Ответить
15. Kernelbug 34 11.04.22 10:46 Сейчас в теме
(14) В актуальном проблемном релизе вроде 8.3.14, в проблемном устаревшем -- 8.3.10. Всё так.
16. Darklight 32 11.04.22 10:48 Сейчас в теме
(15)То есть не работает и в режиме вместимости?
18. Kernelbug 34 11.04.22 16:34 Сейчас в теме
(16)Да, режим совместимости везде строго включен.
20. cdiamond 233 13.04.22 08:20 Сейчас в теме
(18) Смутно припоминается похожий кейс с СКД, несколько лет назад. Точно так же в платформе нововведение сломало поведение, приходилось переписывать несмотря на режим совместимости
19. Дмитрий74Чел 234 12.04.22 10:45 Сейчас в теме
(15) Фирма 1С, это провал
21. mpvrus21 13.04.22 09:48 Сейчас в теме
Была подобная проблема на конфигурации Бухгалтерия для Беларуси, редакция 2.1.31.4 после перехода на платформу 1С:Предприятие 8.3 (8.3.20.1674). В отчете ОСВ по 01 счету при попытке отбора по Субконто Основное средство 1С стала падать с ошибкой "Повторяющийся псевдоним "Ссылка" Ссылка AS Ссылка,Presentation AS Presentation,Ссылка AS Ссылка".
После долгих поисков на форумах, была наводка искать причину в характеристиках справочника.

В справочнике Основные средства открываем характеристики и меняем:
Вид характеристики Справочник.ВидыКонтактнойИнформации
Поле отбора видов Ссылка меняем на Родитель
Значение отбора видов АдресМестонахожденияОсновныеСредства меняем на СправочникОсновныеСредства

После этих манипуляций все работает как было. Если посмотреть характеристики других справочников, где задействованы ВидыКонтактнойИнформации, там точно так же используется Родитель и предопределенная группа видов контактной информации.
Прикрепленные файлы:
SobU; DrZombi; jenny2114; shunk; tormozit; Hexed; tolX5; mityaevev; artbear; Kernelbug; +10 Ответить
22. Kernelbug 34 13.04.22 16:26 Сейчас в теме
(21) Рискну предположить, что Вы и нашли истинную причину проблем. Хотя такая цепочка -- ОС -- Партии -- совершенно неочевидна (наверное, цепляется через составной тип субконто). Проведу эксперименты на 2 проблемных базах и отпишусь о своих результатах.
23. Hexed 2 17.07.22 03:35 Сейчас в теме
24. vanbka 03.08.22 14:36 Сейчас в теме
спасибо за помощь!!! Очень выручили!!!
25. ChAlex 25.08.22 15:00 Сейчас в теме
(21) Эта трабла не только узко в данной ситуации. Она вылазит много где - если для объекта в конфигурации описываются характеристики. Именно в описании свойств характеристики и лежит причина этой ошибки. И не всегда ее можно пофиксить манипуляцией полей (например по иному организованы характеристики и родителя не выбрать) - только удалением вообще.. И хоть считает 1С это траблом конфигурации - я считаю что это трабл платформы (раньше то такое описание работало! И причем в ТИПОВЫХ, написанных специалистами 1С!). А сейчас закосячили у себя в платформе с назначением Алиасов - и просто послать всех нах.. - самое простое решение 1С. Это тупость назначать автоматом алиасы в этом случае по именю поля. Для того алиасы и существуют чтобы разрулить дубли имен из разных источников и понимать к каким данным что относится!"
Kernelbug; +1 Ответить
26. DrZombi 286 09.12.22 08:53 Сейчас в теме
27. Serg2000mr 311 26.10.23 23:53 Сейчас в теме
Ищем в характеристиках проблемного объекта, строку, где "Поле ключа" имеет такой же псевдоним, как и "Поле отбора видов", например Поле ключа = Ссылка и Поле отбора видов = Ссылка. На скриншотах - это ПВХ ОтображаемыеСведения.
В Плане видов характеристик ОтображаемыеСведения добавляем реквизит, например СуперСсылка с типом ПВХ ОтображаемыеСведения.

Возвращаемся в характеристики проблемного объекта и устанавливаем Поле ключа = СуперСсылка. Проблема решена.
Прикрепленные файлы:
Оставьте свое сообщение