TGViewer
Журнал инженера-программиста Журнал инженера-программиста @software_engineer_notes · 247 subscribers
Post #386 252
🟡 Соскучились по ошибкам из мира 1С?

Есть полностью стандартный ЗУП на поддержке без доработок. У нескольких пользователей ничего не открывается: ни документы, ни отчеты. Если смотреть в журнал регистрации, то там при открытии формы или при компоновке отчета идут вызовы в общие модули кадрового учета и :

[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
kaynağı:
{(30, 2)}: Sözdizim hatası "İç"
<<?>>İç СОЕДИНЕНИЕ РегистрСведений.ГражданствоФизическихЛиц КАК РегистрСведений


Проблемы, как вы уже догадались из текста ошибки, только у пользователей с турецким языком системы (сам ЗУП на русском).

Стеки вызовов ошибок ни о чем не говорят. Где-то внутри ЗУП его 100500 функций формируют текст запроса согласно настроек, функциональных опций и прав доступа, а на выходе в результирующем запросе вместе строки "ВНУТРЕННЕЕ СОЕДИНЕНИЕ" почему-то "İç СОЕДИНЕНИЕ". Но при этом в моем англоязычном интерфейсе все работало, а включать ради тестирования турецкий язык системы я не решался...

Подсказкой для поиска стало то, что во всех ошибках в строке псевдоним задавался как "РегистрСведений". Я выполнил поиск по конфигурации и нашел все 6 мест, где для присоединяемой таблицы задавался такой алиас - это были шаблоны запросов, которые далее скармливались в ЗарплатаКадрыПериодическиеРегистры.ОписаниеЗапросаПоТексту(), а там шаблон передавался схеме запроса и на базе этого объекта делалась верстка нового запроса:

Для Каждого ИсточникСхемы Из Оператор.Источники Цикл
Для Каждого Соединение Из ИсточникСхемы.Соединения Цикл
ОписаниеСоединения = СтруктураОбъединяемогоЗапроса.Соединения.Добавить();
ОписаниеСоединения.ВедущаяТаблица = ИсточникСхемы.Источник.Псевдоним;
ОписаниеСоединения.ПрисоединяемаяТаблица = Соединение.Источник.Источник.Псевдоним;
ОписаниеСоединения.ТипСоединения = Строка(Соединение.ТипСоединения);
ОписаниеСоединения.Условия = Новый Массив;
ОписаниеСоединения.ПорядокСоединения = ПорядокСоединения;
КонецЦикла;
КонецЦикла;


По листингу видно, что в свойство ТипСоединения для описания нового соединения закидывалось представление, которое получено из ТипСоединенияСхемыЗапроса.Внутреннее (QuerySchemaJoinType.Inner) с помощью функции Строка(), которая возвращает представление согласно региональных настроек пользователя (для турецкого это "İç"). Платформа 1С поддерживает 23 языка для отображения представлений внутренних значений, но язык запросов поддерживает только русский и английский.

#1С #баги
  • 🔥 5
  • 👍 3
More from @software_engineer_notes
  1. Oct 3, 2026"Вы автоматизируете хаос" - этим страхом любят пугать своих бизнес-заказчиков консалтеры,…
  2. Sep 28, 2026Уже второй проект на работе делаю в методике "парного программирования" с Claude Code. И с…
  3. Sep 13, 2026За последний месяц произошло много событий, но наиболее интересным является использование…
  4. Sep 1, 2026Самая обычная бумажная книга учета - это пока лучший инструмент фиксации проектных изменен…
  5. Aug 31, 2026Очень показательная причина моей нелюбви реализации сравнения/объединения конфигураций в 1…
  6. Aug 29, 2026О концепции LLM-Wiki я впервые прочитал на X (Twitter). Чтобы позже ознакомится детальнее,…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →