|
При выполнении запроса - "В данной транзакции уже происходили ошибки" Ø (Волшебник 22.06.2017 21:15) | ☑ | ||
---|---|---|---|---|
0
falselight
22.06.17
✎
15:49
|
Подскажите пожалуйста, что может делать этот запрос?
На нем ломается выполнение кода. Мне не понятна его суть и как это можно устранить. Может кому либо известно это? ВЫБРАТЬ ПометкаУдаления КАК ПометкаУдаления ИЗ Документ.ЛМБ_ПеремещениеИмуществаМеждуФилиалами КАК ПсевдонимЗаданнойТаблицы ГДЕ ПсевдонимЗаданнойТаблицы.Ссылка = &Ссылка |
|||
1
falselight
22.06.17
✎
15:51
|
вылетает такая ошибка
по причине: Ошибка при выполнении обработчика - 'ОбработкаПроведения' по причине: {ОбщийМодуль.ОбщегоНазначения.Модуль(101)}: Ошибка при вызове метода контекста (Выполнить) по причине: Ошибка выполнения запроса по причине: В данной транзакции уже происходили ошибки! |
|||
2
Митяйский
22.06.17
✎
15:51
|
ПсевдонимЗаданнойТаблицы.ПометкаУдаления КАК ПометкаУдаления
|
|||
3
falselight
22.06.17
✎
15:59
|
(2) А как от этого избавиться?
Как это допустилось, я не пойму (((( |
|||
4
falselight
22.06.17
✎
16:00
|
вот вся функция
//////////////////////////////////////////////////////////////////////////////// // ПРОГРАММНЫЙ ИНТЕРФЕЙС //////////////////////////////////////////////////////////////////////////////// // Общие процедуры и функции для работы с данными в базе // Возвращает структуру, содержащую значения реквизитов прочитанные из информационной базы // по ссылке на объект. // // Если доступа к одному из реквизитов нет, возникнет исключение прав доступа. // Если необходимо зачитать реквизит независимо от прав текущего пользователя, // то следует использовать предварительный переход в привилегированный режим. // // Параметры: // Ссылка - Ссылка на объект - элемент справочника, документ, ... // // Реквизиты - Строка - имена реквизитов, перечисленные через запятую, в формате // требований к свойствам структуры. // Например, "Код, Наименование, Родитель". // - Структура, ФиксированнаяСтруктура - в качестве ключа передается // псевдоним поля для возвращаемой структуры с результатом, а в качестве // значения (опционально) фактическое имя поля в таблице. // Если значение не определено, то имя поля берется из ключа. // - Массив, ФиксированныйМассив - имена реквизитов в формате требований // к свойствам структуры. // // Возвращаемое значение: // Структура - содержит имена (ключи) и значения затребованных реквизитов. // Если строка затребованных реквизитов пуста, то возвращается пустая структура // Функция ЗначенияРеквизитовОбъекта(Ссылка, Реквизиты) Экспорт Если ТипЗнч(Реквизиты) = Тип("Строка") Тогда Если ПустаяСтрока(Реквизиты) Тогда Возврат Новый Структура; КонецЕсли; СтруктураРеквизитов = Новый Структура(Реквизиты); ИначеЕсли ТипЗнч(Реквизиты) = Тип("Структура") ИЛИ ТипЗнч(Реквизиты) = Тип("ФиксированнаяСтруктура") Тогда СтруктураРеквизитов = Реквизиты; ИначеЕсли ТипЗнч(Реквизиты) = Тип("Массив") ИЛИ ТипЗнч(Реквизиты) = Тип("ФиксированныйМассив") Тогда СтруктураРеквизитов = Новый Структура; Для каждого Реквизит Из Реквизиты Цикл СтруктураРеквизитов.Вставить(Реквизит); КонецЦикла; Иначе ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Неверный тип второго параметра Реквизиты: %1'"), Строка(ТипЗнч(Реквизиты))); КонецЕсли; ТекстПолей = ""; Для Каждого КлючИЗначение Из СтруктураРеквизитов Цикл ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение), СокрЛП(КлючИЗначение.Значение), СокрЛП(КлючИЗначение.Ключ)); Псевдоним = СокрЛП(КлючИЗначение.Ключ); ТекстПолей = ТекстПолей + ?(ПустаяСтрока(ТекстПолей), "", ",") + " | " + ИмяПоля + " КАК " + Псевдоним; КонецЦикла; Запрос = Новый Запрос; Запрос.УстановитьПараметр("Ссылка", Ссылка); Запрос.Текст = "ВЫБРАТЬ |" + ТекстПолей + " |ИЗ | " + Ссылка.Метаданные().ПолноеИмя() + " КАК ПсевдонимЗаданнойТаблицы |ГДЕ | ПсевдонимЗаданнойТаблицы.Ссылка = &Ссылка |"; Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); Результат = Новый Структура; Для Каждого КлючИЗначение Из СтруктураРеквизитов Цикл Результат.Вставить(КлючИЗначение.Ключ); КонецЦикла; ЗаполнитьЗначенияСвойств(Результат, Выборка); Возврат Результат; КонецФункции |
|||
5
falselight
22.06.17
✎
16:03
|
в параметре "Реквизиты" там идет ПометкаУдаления
если так то возвратить пустую структуру???? правильно так бедет? |
|||
6
Naf2017
22.06.17
✎
16:07
|
Ссылка имеет какой тип?
|
|||
7
falselight
22.06.17
✎
16:08
|
(6) Ссылка - Ошибка получения представления значения
|
|||
8
falselight
22.06.17
✎
16:09
|
Вообще отменять выполнение если идет в реквизитах ПометкаУдаления тогда, же, 100% ?
|
|||
9
sapphire
22.06.17
✎
16:12
|
(7) Объект вне прав пользователя.
|
|||
10
falselight
22.06.17
✎
16:21
|
(9) Как правильно от этого избавиться?
Как думаете? Есть рекомендации? |
|||
11
pessok
22.06.17
✎
16:24
|
(10) убрать запрос.
вместо Если РезультатЗапроса.Пустой() написать Если Не СсылкаНаОбъект.ПометкаУдаления |
|||
12
sapphire
22.06.17
✎
16:24
|
(10) Вероятно, установить флаги привилегированный режим проведения или отмены проведения.
|
|||
13
sapphire
22.06.17
✎
16:26
|
(11) А это могет не избавить от ошибки
|
|||
14
mehfk
22.06.17
✎
16:27
|
Пристрелите его кто-нибудь.
|
|||
15
sapphire
22.06.17
✎
16:30
|
(14) По што?
Поди какие-то стандартные вызовы а-ля БСП |
|||
16
mehfk
22.06.17
✎
16:31
|
(15) Да не тебя, а ТС-а.
|
|||
17
falselight
22.06.17
✎
16:33
|
если так сделать пойдет?
Если Реквизиты = "ПометкаУдаления" Тогда Возврат Новый Структура; КонецЕсли; |
|||
18
Неверный Параметр И
22.06.17
✎
16:36
|
(14) Но-но! Ливингстар вечен и предназначен нести нам радость. Второго такого не найдешь!
|
|||
19
mehfk
22.06.17
✎
16:40
|
(18) Не путай радость с тупостью.
|
|||
20
sapphire
22.06.17
✎
16:42
|
(17) Мдя.
|
|||
21
falselight
22.06.17
✎
16:44
|
(17) это не подходит
вот тут потом обрывается Функция ЗначениеРеквизитаОбъекта(Ссылка, ИмяРеквизита) Экспорт Результат = ЗначенияРеквизитовОбъекта(Ссылка, ИмяРеквизита); Возврат Результат[ИмяРеквизита]; КонецФункции |
|||
22
falselight
22.06.17
✎
16:48
|
(11) А где вы это увидели Если РезультатЗапроса.Пустой() ?
|
|||
23
falselight
22.06.17
✎
16:50
|
(11) и там нет на объекте документе ссылки на удаление
не подойдут такие проверки |
|||
24
Неверный Параметр И
22.06.17
✎
16:52
|
(19) Радость тупости!
|
|||
25
Мимохожий Однако
22.06.17
✎
16:58
|
Добавь в функцию проверку параметра Ссылка
|
|||
26
Cyberhawk
22.06.17
✎
17:00
|
А почему все думают над запросом, когда в тексте ошибки вроде написано "В данной транзакции уже происходили ошибки!"?
Ошибка где-то раньше... |
|||
27
Мимохожий Однако
22.06.17
✎
17:01
|
(26) Куда ткнули - туда и думаем ))
|
|||
28
falselight
22.06.17
✎
17:06
|
сейчас вот ошибка
по причине: Ошибка при выполнении обработчика - 'ОбработкаПроведения' по причине: {ОбщийМодуль.ОбщегоНазначения.Модуль(135)}: Поле объекта не обнаружено если сделать так Если Реквизиты = "ПометкаУдаления" Тогда Реквизиты = ""; Возврат Новый Структура; КонецЕсли; идет она тут Функция ЗначениеРеквизитаОбъекта(Ссылка, ИмяРеквизита) Экспорт Результат = ЗначенияРеквизитовОбъекта(Ссылка, ИмяРеквизита); Возврат Результат[ИмяРеквизита]; КонецФункции |
|||
29
falselight
22.06.17
✎
17:07
|
(4) Если в функцию (4) в Реквизиты идет ПометкаУдаления
как от этого избавиться, что бы ошибки не было? |
|||
30
Вафель
22.06.17
✎
17:08
|
Ошибка то явно не из-за запроса.
А из-за того что записал в попытке и сломал транзакцию |
|||
31
Лефмихалыч
22.06.17
✎
17:08
|
(0) проблема (1) не в указанном запросе, а в коде, который до него.
|
|||
32
falselight
22.06.17
✎
17:11
|
(30)(31) В предприятии случилась ошибка
я по кнопке перещел в конфигуратор, стал искать от чего она. До этого ошибки нет. |
|||
33
Лефмихалыч
22.06.17
✎
17:12
|
(32) до этого ошибка есть, но она заглушена попыткой
|
|||
34
Timon1405
22.06.17
✎
17:13
|
(32) ошибку вызвал код раньше, вы ее получили при первом обращении к данным в БД. закомментируйте запрос, напишите
К = Константы.ВалютаРегУчета.Получить(); получите такую же ошибку правильно вам пишут, ищите попытки |
|||
35
Вафель
22.06.17
✎
17:15
|
поставь отладку и остановку по ошибке. увидишь
|
|||
36
falselight
22.06.17
✎
17:15
|
(34)(33) Ясно, да такого там полно.
Есть ли какие метода вероятные поиска этого. Или блуждением по коду? Просмотр всех попыток? |
|||
37
Мимохожий Однако
22.06.17
✎
17:18
|
(36) Чтобы меньше блуждать,надо включить голову.
|
|||
38
Лефмихалыч
22.06.17
✎
17:26
|
(36) в (35) метод
|
|||
39
Diman000
22.06.17
✎
17:30
|
Запрос не причем. Бегом гуглить, тема разжевана.
Вкратце, внутри транзакций рискованно ставить попытку, т.к. может выскакивать ошибка из сабжа. |
|||
40
falselight
22.06.17
✎
18:13
|
Ошибка вот тут. Отсутствуют поля в структуре, буду искать почему так. ЭтотОбъект.ДополнительныеСвойства.ДатаДокументаСдвинутаВперед
УдалитьДвиженияРегистратора(ЭтотОбъект, Отказ, Ложь, ВыборочноОчищатьРегистры И НЕ ЭтотОбъект.ДополнительныеСвойства.ДатаДокументаСдвинутаВперед); |
|||
41
Buster007
22.06.17
✎
18:16
|
в исключение надо, например, записать в ЖР информациюПоОшибке и там все будет видно в каком месте у тебя ломается
|
|||
42
falselight
22.06.17
✎
18:16
|
(40+) Почему может у некого документа,
в структуре ДополнительныеСвойства отсутствовать нужное поле, пока не понял! |
|||
43
falselight
22.06.17
✎
18:17
|
(41) Я нашел место, по подсказке (35)
сейчас нужно разобраться почему (42) + (40) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |