Имя: Пароль:
1C
1С v8
"В данной транзакции уже происходили ошибки!"
0 serg-lom89
 
30.07.15
12:26
Добрый день
есть функция/

Функция СуществуютПроведенныеРеализации(ОтбиратьПоДатуЗаказа=Ложь)
    
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Заказ", Ссылка);
    Запрос.УстановитьПараметр("ДатаЗаказа", Ссылка.Дата);

    Запрос.Текст =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    КритерийОтбораЗаказы.Ссылка КАК Ссылка
    |ИЗ
    |    КритерийОтбора.ДокументыПоЗаказуПокупателя(&Заказ) КАК КритерийОтбораЗаказы
    |ГДЕ
    |    (КритерийОтбораЗаказы.Ссылка ССЫЛКА Документ.РеализацияТоваровУслуг
    |        ИЛИ КритерийОтбораЗаказы.Ссылка ССЫЛКА Документ.ЗакрытиеЗаказовПокупателей ИЛИ КритерийОтбораЗаказы.Ссылка ССЫЛКА Документ.ПеремещениеТоваров )
    |    И КритерийОтбораЗаказы.Ссылка.Проведен" + ?(ОтбиратьПоДатуЗаказа, "
    |    И КритерийОтбораЗаказы.Ссылка.Дата <= &ДатаЗаказа", "");

    Результат = Запрос.Выполнить();
    
    Возврат Не Результат.Пустой();
    
КонецФункции


и по ней вылетает ошибка

по причине:
Ошибка выполнения запроса "В данной транзакции уже происходили ошибки!"
по причине:
В данной транзакции уже происходили ошибки!

куда копать?
текст запроса взял,подставил параметрты,запрос выполняется.
1 serg-lom89
 
30.07.15
12:27
хоть и пустой запрос получается
2 Лефмихалыч
 
30.07.15
12:27
"уже происходили" означает, что валится до запроса
3 serg-lom89
 
30.07.15
12:28
(2) и куда смотреть то?в чем причина может быть?
4 Timon1405
 
30.07.15
12:28
вылетает не в ней а раньше, просто она под руку попадается как результат первого ЧТЕНИЯ из базы после ошибки, копайте глубже
5 salvator
 
30.07.15
12:29
Блин, нафига писать эти вставки, после которых конструктором хрен откроешь?
Почему нельзя использовать параметр ОтбиратьПоДатуЗаказа и формировать условие в ГДЕ?
6 Альбатрос
 
30.07.15
12:30
(5) это как, например?
7 salvator
 
30.07.15
12:32
(6)
ГДЕ
...
И ВЫБОР КОГДА &ОтбиратьПоДатуЗаказа ТОГДА КритерийОтбораЗаказы.Ссылка.Дата <= &ДатаЗаказа ИНАЧЕ ИСТИНА КОНЕЦ

и в параметрах запроса определять этот параметр
8 asady
 
30.07.15
12:39
(0) ищи в коде попытку -

я бы тем кодерам которые попытку в транзакцию пихают по рукам линейкой стучал.
9 Timon1405
 
30.07.15
12:41
(8) УТ 11
Процедура ВыполнитьЗадачу(ЗадачаСсылка, ДействиеПоУмолчанию = Ложь) Экспорт

    НачатьТранзакцию();
    Попытка
        БизнесПроцессыИЗадачиСервер.ЗаблокироватьЗадачи(ЗадачаСсылка);
        
        ЗадачаОбъект = ЗадачаСсылка.ПолучитьОбъект();
        ЗадачаОбъект.Прочитать();
        Если ДействиеПоУмолчанию И ЗадачаОбъект.БизнесПроцесс <> Неопределено
            И НЕ ЗадачаОбъект.БизнесПроцесс.Пустая() Тогда
            ТипБизнесПроцесса = ЗадачаОбъект.БизнесПроцесс.Метаданные();
            БизнесПроцессы[ТипБизнесПроцесса.Имя].ОбработкаВыполненияПоУмолчанию(ЗадачаСсылка,
                ЗадачаОбъект.БизнесПроцесс, ЗадачаОбъект.ТочкаМаршрута);
        КонецЕсли;
            
        ЗадачаОбъект.Выполнена = Ложь;
        ЗадачаОбъект.ВыполнитьЗадачу();
        ЗафиксироватьТранзакцию();
    Исключение
        ОтменитьТранзакцию();
        ВызватьИсключение;
    КонецПопытки;

КонецПроцедуры
10 asady
 
30.07.15
12:44
(9) ты произвольные транзакции с штатными не путай.

в (8) имеются ввиду транзакции при записи объектов в базу.
11 1Сергей
 
30.07.15
12:46
(7) ну, если пользователи никуда не торопятся, то да
12 asady
 
30.07.15
12:51
13 fishb1
 
30.07.15
13:05
(6) Наверное такая конструкция имелась в виду.

ГДЕ КритерийОтбораЗаказы.Ссылка.Дата <= &ДатаЗаказа ИЛИ НЕ &ОтбиратьПоДатуЗаказа
14 ИС-2
 
naïve
30.07.15
13:18
значит где-то до выполнения запроса произошла ошибка при попытке записать(а может и прочитать). Смотри какая транзация завершилась ошибкой
15 Лефмихалыч
 
30.07.15
13:22
(3) в отладчик смотреть и отлаживать по шагам,а нетыкать пальцм в небо
16 Jackman
 
30.07.15
13:26
(0) Ищи попытку/исключение в транзакции
AdBlock убивает бесплатный контент. 1Сергей