Djelf писал(а) 23. Февраля 2017 :: 11:28:dbf, sql, саму обработку бы выложил...
- параметры в обработку передаешь с ТекущийЭлемент/ТекущийДокумент? проверь, может проблема в этом.
- попробуй проверить не виноват ли запрос - замени его на настолько простой насколько возможно, лучше к справочнику валюты.
- попробуй выполнитьинструкцию вывесить на кнопку формы и проверить вылетит ли.
- выгружаешь в тз? а если через промежуточную тз?
база dbf
задача подробно - есть форма, на ней ТЗ. из двух колонок. Одна из колонок - Справочник.Номенклатура. При двойной клике должна открываться форма для выбора товара из справочника. При открытии формы списка справочника 1С валится. Валится на запросе к остаткам. Если я отключаю запрос по остаткам - форма открывается. Но на форме есть еще фильтры по полям справочника (текст обработки фильтров ниже). При попытке их использовать - опять вылет...
Вылетает самый простой запрос. Например
Текст="SELECT
|code AS Код,
|id AS [Товар $Справочник.Номенклатура],
|ParentID as Parent
|FROM $Справочник.Номенклатура as Спр WHERE IsFolder=2 AND IsMark=''";
Если СписокГрупп.ТекущаяСтрока()>1 Тогда
ТекГруппа=СписокГрупп.ПолучитьЗначение(СписокГрупп.ТекущаяСтрока());
ТекГруппа=_IdToStr(Лев(Прав(ЗначениеВСтрокуВнутр(ТекГруппа),15),13));
Текст=Текст+"
|AND ParentID='"+ТекГруппа+"'";
КонецЕсли;
Если СокрЛП(РазбиваемаяСтрокаПоИмени)<>"" Тогда
Для Ном=1 По СтрКоличествоСтрок(РазбиваемаяСтрокаПоИмени) Цикл
Слово=СтрПолучитьСтроку(РазбиваемаяСтрокаПоИмени,Ном);
Если ПустоеЗначение(Слово)=0 Тогда
Текст=Текст+"
|AND LOWER(descr) LIKE '"+Слово+"'";
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если СокрЛП(РазбиваемаяСтрокаПоАртикулу)<>"" Тогда
Для Ном=1 По СтрКоличествоСтрок(РазбиваемаяСтрокаПоАртикулу) Цикл
Слово=СтрПолучитьСтроку(РазбиваемаяСтрокаПоАртикулу,Ном);
Если ПустоеЗначение(Слово)=0 Тогда
Текст=Текст+"
|AND LOWER($Спр.Артикул) LIKE '"+Слово+"'";
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если ПустоеЗначение(СтрокаФильтраПоВиду)=0 Тогда
Текст=Текст+"
|AND ($Спр.ВидТовара=:Усл_1)";
БыстрыйЗапрос.УстановитьТекстовыйПараметр("Усл_1",СтрокаФильтраПоВиду);
КонецЕсли;
Если ПустоеЗначение(СтрокаФильтраПоТипу)=0 Тогда
Текст=Текст+"
|AND ($Спр.ТипТовара=:Усл_2)";
БыстрыйЗапрос.УстановитьТекстовыйПараметр("Усл_2",СтрокаФильтраПоТипу);
КонецЕсли;
Попытка
//БыстрыйЗапрос.Отладка(1);
ТЗРезультата=БыстрыйЗапрос.ВыполнитьИнструкцию(Текст);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;