Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Не выплняется запрос по документам

v7: Не выплняется запрос по документам
Я
   Tihon_aka_kot
 
21.07.19 - 15:15
Один и тот же запрос выполняется во внешней обработке и не выполняется в глобальном модуле при подключении по OLE
С подключением все хорошо. К другим документам запрос проходит. В чем может быть причина такого поведения (7ку знаю плохо)
вот сам запрос

Функция глПолучитьРасходнаяНакладная() Экспорт      
    Перем Запрос, ТекстЗапроса;
    ВыбНачПериода = ТекущаяДата()-40;  
    ВыбКонПериода = ТекущаяДата()+10;  
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |ОбрабатыватьДокументы все;
    |Док = Документ.РасходнаяНАкладная.ТекущийДокумент;
    |Группировка Док без групп;
    |Условие(Док.ВыгрузитьВ83 = 1);
    |"//}}ЗАПРОС
    ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат "Ошибка запроса";
    КонецЕсли;
    
    Возврат Запрос;  
КонецФункции

Падает в ошибку запроса.
 
 
   Cthulhu
 
1 - 21.07.19 - 15:17
добавь функцию в текст запроса.
   Cthulhu
 
2 - 21.07.19 - 15:18
ну и ошибка там какая?
   Tihon_aka_kot
 
3 - 21.07.19 - 15:20
(1) похоже что реквизит "ВыгрузитьВ83" который я добавил как то некоректно записался в БД. Щас я его удалил и заново добавил. - и все пошло как надо))) мистика.
   Tihon_aka_kot
 
4 - 21.07.19 - 15:21
(1) а зачем там ф-ции?
   Tihon_aka_kot
 
5 - 21.07.19 - 16:01
(2) В этомместе исправилась - теперь в другом полезла. Ошибка = "ошибка запроса". Как будто в тексте ошибка
   hhhh
 
6 - 21.07.19 - 16:08
(5) а там есть это текст разве?
   Tihon_aka_kot
 
7 - 21.07.19 - 16:25
(6)     |Условие(Док.ВыгрузитьВ83 = 1); 
да есть
такое ощущение что лихорадит БД (файловая)
Починилось в одном месте и отвалилось в другом
Подклчеине по OLE, поочереди вызываются разные процедуры в 7ке
ХЗ куда копать, какаято дроч
   Cthulhu
 
8 - 21.07.19 - 17:02
по ОЛЕ сквозная универсальная рекомендация: использовать анг.нотацию в ключевых словах и названиях методов 1с.
   Tihon_aka_kot
 
9 - 21.07.19 - 17:34
(8) Я использую такой принцип:
из 8ки по OLE вызываю функцию в 7ке которая например отдает мне таблицу значений.
В 8ке перебираю ее и делаюто что мне нужно.
Так вот эта функция в 7ке должна выполнить запрос. И по ОЛЕ он не выполняется. Сейчас конечно перепишу все наименования ф-й на анл но дума что проблема в другом
   Tihon_aka_kot
 
10 - 21.07.19 - 17:57
(8) Заметил такую особенность: я помещаю ОЛЕобъект в глобальную переменную модуля и работаю с объектом выборки (Запрос, после Запрос.Выполнить()).
Так вот крашится именно вторая процедура.
Меняю их местами - крашится вторая.
   Tihon_aka_kot
 
11 - 21.07.19 - 18:03
//вот ф-я в 7ке которую вызываю по ОЛЕ.

//она отдает выборку. Я ее в 8ке перебираю.
//Так вот именно второй раз ткаая же процедура но к другому документы крашится. Запрос не может выполнится, как будто какято ошибка в ////тексте. Но если я выполняю его изпод 7ки без ОЛЕ - то все ок.

Функция глПолучитьПриходнаяНакладная(ДатаЗагрузки)   Экспорт
    Перем Запрос, ТекстЗапроса; 
    Статус = 1;    
    ДатаНач = ДатаЗагрузки;
    ДатаКон = ТекущаяДата();
    //Создание объекта типа Запрос

    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(СформироватьДок)

    |Период с ДатаНач по ДатаКон;
    |ОбрабатыватьДокументы все;
    |Док = Документ.ПриходнаяНакладная.ТекущийДокумент;
    |Группировка Док без групп;
    |Условие(Док.ВыгрузитьВ83=Статус);
    |"//}}ЗАПРОС

    ;
    // Если ошибка в запросе, то выход из процедуры

    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат "Ошибка запроса";
    КонецЕсли;
    
    Возврат Запрос;   
    
КонецФункции
   Tihon_aka_kot
 
12 - 21.07.19 - 18:15
По ходу нашел. Проблема была в том что все переменные в запросе по документу в завпросе в 77 у меня назывались "док"

|Док = Документ.ПриходнаяНакладная.ТекущийДокумент;

и видимо в сл запросе он не переопределял ее поэтому и ошибался при выполнении.
   ДенисЧ
 
13 - 21.07.19 - 18:32
картинка facepalm.png
   Tihon_aka_kot
 
14 - 23.07.19 - 13:07
(13) эфект временный. хз. бывает срабатывает - бывает нет
   Z1
 
15 - 23.07.19 - 13:29
(0) убери слово "без групп"
для группировки по документам это не нужно
   Bagirius
 
16 - 01.08.19 - 23:32
(15) +
(1) - есть такое в v7, без функций запросы пустые получаются, надо добавлять хотя-бы:
Функция СЧ = Счётчик(Док);
   Bagirius
 
17 - 01.08.19 - 23:36
|Период с ВыбНачПериода по ВыбКонПериода; 
    |ОбрабатыватьДокументы все; 
    |Док = Документ.РасходнаяНакладная.ТекущийДокумент;
    |ВыгрузитьВ83 = Документ.РасходнаяНакладная.ВыгрузитьВ83;
    |Группировка Док; 
    |Условие(ВыгрузитьВ83 = 1);


ХЗ, но так красивее, и должно летать
   Bagirius
 
18 - 01.08.19 - 23:38
+ к (17), по примеру (16) на счет функции не уверен, но если что, надо добавить

|Период с ВыбНачПериода по ВыбКонПериода; 
    |ОбрабатыватьДокументы все; 
    |Док = Документ.РасходнаяНакладная.ТекущийДокумент;
    |ВыгрузитьВ83 = Документ.РасходнаяНакладная.ВыгрузитьВ83;
    |Функция СЧ = Счётчик(Док);
    |Группировка Док; 
    |Условие(ВыгрузитьВ83 = 1);

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.