Нашел шикарный баг в платформе 1С. На безопасность еще не тестировал, но уровень пиздеца меня потихоньку приводит в состояние уныния, что есть грех, но грех неизбежный.
В общем, такая хрень. Если в 1С создать запрос, в котором используются отборы (прямой аналог WHERE или HAVING из SQL) по списку значений (или по массиву), и передать в качестве параметра запроса требуемый список, а потом сам список уничтожить (например, покинуть контекст, в котором был создан список значений), то в запросе вместо списка значений окажется какая-то хрень. Как я уже сказал, не тестировал эту жопу на глубину, но предположу, что вместо ссылки на список значений (а именно ссылка, оказывается, передается в запрос), в запросе будет фигурировать ссылка на неиспользуемую область памяти (или используемую, но уже для других целей), что в том числе может привести и к падению 1С (и к порче базы данных и еще много к чему нехорошему, но это нужны эксперименты). То, что передается ссылка, сомнений не вызывает. Есть надежда, что стоит защита от обращения к свободным ячейкам памяти, но надежда слабенькая...
Обнаруженный баг отнял у меня 2 часа рабочего времени и несколько некогда русых (а ныне седых) волос.
Приятного рабочего дня, котики! Понедельник начинается.