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: Извините если получилось сумбурно...
Ну нужно просто организовать тестирование, не обязательно на Gentoo. Лучше попросить клиента прислать уже готовую обработку, при нажатии кнопки в которой вызывается проблемный код.
Created attachment 504 [details] обработка генерирующая ошибку Своял. В тестовой базе должен быть хотя бы один справочник с хотя бы одним значением.
Андрей, тогда тестируем.
Подтверждаю. 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
Бутылка 1c77sql (файл .ert на /c:)
Тестовая обработка и не должна работать, т.к. в ней создается список значений в который фактически вложен он же и так до бесконечности. Сама 1С корректно такую ситуацию не обрабатывает и вылетает на поиске в таком списке значений на любом виде подключении к БД и на любой платформе. З.Ы. просмотрите полученные списки значений вот этим: http://1c.proclub.ru/modules/mydownloads/singlefile.php?cid=24&lid=5006 все станет понятно.
В совсем упрощенном эта ошибка 1С с гарантированным вылетом выглядит так: Процедура Сформировать() СЗ=СоздатьОбъект("СписокЗначений"); СЗ.ДобавитьЗначение(СЗ); СЗ.Принадлежит("и вот тут мы вылетаем"); КонецПроцедуры
Так я не понимаю. На таком коде 1С вылетает и в Windows? Тогда мы тут при чём? Андрей, проверь в Windows.
В windows естественно вылетает. Собственно я и говорю что wine@etersoft тут ни причем. Аналогичных ошибок с вылетом в самой 1С довольно много, причем некоторые проявляются только при работе с SQL.
Спасибо за разъяснение, Антон! Багу закрываем, к нам отношения не имеет.