Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 1104 - 1С падает при проверке принадлежности списку значений, если в списке есть вложенный список   Make a simular bug
Summary: 1С падает при проверке принадлежности списку значений, если в списке есть вло...
Status: CLOSED INVALID
Alias: None
Product: WINE@Etersoft
Classification: Продукты (Products)
Component: Общее (show other bugs)
Version: 1.0.8
Hardware: PC Gentoo
: P4 major
Target Milestone: ---
Assignee: Виталий Перов
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 777
  Show dependency treegraph
 
In work:
Reported: 2008-01-26 11:27 MSK by Лебединский Александр
Modified: 2008-09-25 02:01 MSD (History)
4 users (show)

See Also:
Заявки RT:
Связано с:
Дата напоминания:


Attachments
обработка генерирующая ошибку (52.00 KB, application/octet-stream)
2010-11-18 03:58 MSK, Лебединский Александр
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Лебединский Александр 2008-01-26 11:27:51 MSK
1С 7.7.025 SQL. W@E 1.0.8 от 28.12.2007, система gentoo x86_64, конфигурация для бюджетных бухгалтерий.

Только осваиваем эту конфигурацию. Столкнулись с проблемой, не корректного кода у инженеров 1С. Решил добавить функционал взят за основу код 1С, там была ошибка:
    Парам=СоздатьОбъект("СписокЗначений"); 
    СписокУчреждений=СоздатьОбъект("СписокЗначений"); 
    Парам.ДобавитьЗначение(СписокУчреждений);
    ОткрытьФормуМодально("Справочник.Фирмы.ДляОтметки",Парам);
    Парам.Выгрузить(СписокУчреждений);

Если, после этого использовать такую конструкцию:
     Если СписокУчреждений.Принадлежит(СпрФирмы.ТекущийЭлемент()) = 0 Тогда

То 1С падает, с таким сообщением в терминале:
err:seh:setup_exception stack overflow 196 bytes in thread 0011 eip 20082a6b esp 00240f3c stack 0x241000-0x350000

Открываемая форма работает с переданным ей списком, заполняя его, а не тот список что вкладывается в Парам, соответственно возвращаемый список, содержит как выбранные значения, так и вложенный список(пустой). 

Изменил код (1Совская "конструкция" не работала корректно), на такой
    Парам=СоздатьОбъект("СписокЗначений"); 
    СписокУчреждений=СоздатьОбъект("СписокЗначений");
... (заполнение списка СписокУчреждений) ,,,
    СписокУчреждений.Выгрузить(Парам);
    ОткрытьФормуМодально("Справочник.Фирмы.ДляОтметки",Парам);
    СписокУчреждений.RemoveAll();
    Парам.Выгрузить(СписокУчреждений);
Падения нет!

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

PS: Извините если получилось сумбурно...
Comment 1 Vitaly Lipatov 2008-06-22 14:04:08 MSD
Ну нужно просто организовать тестирование, не обязательно на Gentoo.
Лучше попросить клиента прислать уже готовую обработку, при нажатии кнопки в которой вызывается проблемный код.
Comment 2 Лебединский Александр 2008-06-22 14:44:23 MSD
Created attachment 504 [details]
обработка генерирующая ошибку

Своял. В тестовой базе должен быть хотя бы один справочник с хотя бы одним значением.
Comment 3 Vitaly Lipatov 2008-06-22 14:49:12 MSD
Андрей, тогда тестируем.
Comment 4 Andrey Vusik 2008-06-23 21:18:33 MSD
Подтверждаю.

trace:file:ReadFile 0x14c 0x17c278 1024 0x32e58c (nil)
trace:file:ReadFile 0x154 0x17c680 1024 0x32e58c (nil)
trace:file:ReadFile 0x150 0x17ca80 1024 0x32e5ec (nil)
err:seh:setup_exception_record stack overflow 924 bytes in thread 001f eip 7bc761de esp 00230f94 stack 0x230000-0x231000-0x330000
Comment 5 Andrey Vusik 2008-06-24 18:46:24 MSD
Бутылка 1c77sql (файл .ert на /c:)
Comment 6 Антон Азанов (Djelf) 2008-06-30 12:14:35 MSD
Тестовая обработка и не должна работать, т.к. в ней создается список значений в который фактически вложен он же и так до бесконечности. Сама 1С корректно такую ситуацию не обрабатывает и вылетает на поиске в таком списке значений на любом виде подключении к БД и на любой платформе.
З.Ы. просмотрите полученные списки значений вот этим: http://1c.proclub.ru/modules/mydownloads/singlefile.php?cid=24&lid=5006 все станет понятно.
Comment 7 Антон Азанов (Djelf) 2008-06-30 12:34:53 MSD
В совсем упрощенном эта ошибка 1С с гарантированным вылетом выглядит так:

Процедура Сформировать()
	СЗ=СоздатьОбъект("СписокЗначений");
	СЗ.ДобавитьЗначение(СЗ);
	СЗ.Принадлежит("и вот тут мы вылетаем");
КонецПроцедуры
Comment 8 Vitaly Lipatov 2008-06-30 12:49:56 MSD
Так я не понимаю. На таком коде 1С вылетает и в Windows? Тогда мы тут при чём?
Андрей, проверь в Windows.
Comment 9 Антон Азанов (Djelf) 2008-06-30 14:08:48 MSD
В windows естественно вылетает. Собственно я и говорю что wine@etersoft тут ни причем. 
Аналогичных ошибок с вылетом в самой 1С довольно много, причем некоторые проявляются только при работе с SQL.
Comment 10 Vitaly Lipatov 2008-06-30 14:11:23 MSD
Спасибо за разъяснение, Антон!
Багу закрываем, к нам отношения не имеет.