Имя: Пароль:
1C
 
ком запрос -пустая ссылка в условиях?
,
0 lamme
 
28.06.17
11:31
Запрос   =  Ком.NewObject("Запрос");


"
        |ВЫБРАТЬ
        |ПоступлениеТоваровУслуг.Ссылка,
        |ПоступлениеТоваровУслуг.Организация,
        |ПоступлениеТоваровУслуг.Контрагент,
        |ПоступлениеТоваровУслуг.Проведен,
        |ПоступлениеТоваровУслуг.ПометкаУдаления
        
        |ИЗ
        |    Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
        |ГДЕ
        |    ПоступлениеТоваровУслуг.Дата МЕЖДУ &Дата1 И &Дата2
        |   И НЕ ПоступлениеТоваровУслуг.ЗаказПоставщику = ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)";


Как правильно указать - чтоб не отбирались документы - с пустыми ЗаказПоставщику
?

в таком варианте ругается:
{(12, 60)}: Неверные параметры "Документ.ЗаказПоставщику.ПустаяСсылка"
И НЕ ПоступлениеТоваровУслуг.ЗаказПоставщику = ЗНАЧЕНИЕ(<<?>>Документ.ЗаказПоставщику.ПустаяСсылка)


Это-то и понятно - что не верно ...
как правильно ?
1 butterbean
 
28.06.17
11:36
может в конфе нет документа ЗаказПоставщику?
2 Имитация работы
 
28.06.17
11:36
Что понятно-то? Что в базе документа ЗаказПоставщику нет?
3 lamme
 
28.06.17
11:40
этот запрос работает в базе-приемнике.
4 lamme
 
28.06.17
11:41
это комзапрос.
обращение - к другой базе.
в базе источнике - такого документа нет.
в базе-приемнике -такой документ есть
5 HEKPOH
 
28.06.17
11:45
(4) база-источник - это база, откуда выбираются данные.
запрос должен отрабатывать в ней (Запрос = Новый Запрос). а как он отработает, если в базе нет документа Заказ покупателя?
6 X Leshiy
 
28.06.17
11:46
(0) ПустаяВПриемнике = Ком.Документы.ЗаказПоставщику.Кактамполучаетсяпустаяянепомню;
Запрос.Параметры.Установить("ЭтоПустая", ПустаяВПриемнике);

Ну и НЕ ПоступлениеТоваровУслуг.ЗаказПоставщику = &ПустаяВПриемнике
7 lamme
 
28.06.17
11:46
с какой стати?
это ком-запрос к базе-приемнику

Запрос   =  Ком.NewObject("Запрос");
8 lamme
 
28.06.17
11:46
(6)
попробую
9 X Leshiy
 
28.06.17
11:47
(6) Ой


НЕ ПоступлениеТоваровУслуг.ЗаказПоставщику = &ЭтоПустая

Ну ты понял принцип
10 X Leshiy
 
28.06.17
11:48
У тебя запрос выполняется в приемнике, соответственно, все что не примитивного типа должно в приемнике и находиться.
11 Рэйв
 
28.06.17
11:48
И НЕ ПоступлениеТоваровУслуг.ЗаказПоставщику.Ссылка Есть NULL
12 lamme
 
28.06.17
11:49
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(98)}: Ошибка при вызове метода контекста (Выполнить)
        КомРезЗапроса = запрос.Выполнить().Выгрузить();
по причине:
{(12, 33)}: Поле не найдено "ПоступлениеТоваровУслуг.ЗаказПоставщику"
И НЕ ПоступлениеТоваровУслуг.<<?>>ЗаказПоставщику = &ЗаказПоставщикуПустаяСсылка
13 lamme
 
28.06.17
11:50
не понятно ...
это же запрос к базе-приемнику.
там есть это поле.
14 X Leshiy
 
28.06.17
11:50
(13) А ты уверен?

Может это реквизит формы.
15 Михаил Козлов
 
28.06.17
11:51
(12) ЗаказПоставщику не в шапке, а в ТЧ.
16 X Leshiy
 
28.06.17
11:51
(15) Ыыыыыыыыыыыыыыыыы :)
17 lamme
 
28.06.17
11:51
18 lamme
 
28.06.17
11:52
в шапке он
19 Рэйв
 
28.06.17
11:52
(12)Чукча не читатель,чукча писатель..
20 lamme
 
28.06.17
11:53
(19)
так объясни в чем прикол ..

я этот зхапрос - сделал в конструкторе запросов в базе-применике. работает.
перенес этот запрос в базу - источник. не работает.
21 X Leshiy
 
28.06.17
11:55
(20) А подключение у тебя норм?

А то может "Ком" это и не "ком" вовсе.
22 X Leshiy
 
28.06.17
11:57
Функция    ВнешняяБазаПодключение(НастройкаПодключения)
        Если Не НастройкаПодключения.Пустая() Тогда
            V8 = Новый COMОбъект("V83.COMConnector");            
            Логин             = СокрЛП(НастройкаПодключения.Пользователь);    
            Пароль            = СокрЛП(НастройкаПодключения.Пароль);
            КаталогБазыДанных = СокрЛП(НастройкаПодключения.ПутьКФБбух);      
            Сервер            = СокрЛП(НастройкаПодключения.Сервер);
            БД                = СокрЛП(НастройкаПодключения.БазаДанных);
                
            Если НЕ КаталогБазыДанных = "" Тогда
                СтрокаПодключения = "file='" + КаталогБазыДанных + "'; usr='" + Логин + "'; pwd='" + Пароль + "';";
            Иначе
                СтрокаПодключения =  "srvr='" + Сервер + "'; ref='" + БД + "'; usr='" + Логин + "'; pwd='" + Пароль + "';";
            КонецЕсли;
            
            Попытка
                ВнешняяБаза = V8.Connect(СтрокаПодключения);
                Возврат ВнешняяБаза;
            Исключение
                Возврат Неопределено;
            КонецПопытки;
        Иначе
            Возврат Неопределено;
        КонецЕсли;
    КонецФункции
23 lamme
 
28.06.17
11:58
Попытка
        Ком = V83COMConnector.Connect(Параметры);
    Исключение
        сообщить (описаниеошибки());
        Предупреждение ("Ошибка подключения!");
        ЕстьошибкаПодключени = истина;
    КонецПопытки;


в исключение не проваливается
24 lamme
 
28.06.17
11:58
Параметры = "Srvr=""VSQL"";Ref=""UT11CRM"";Usr=""ВнешнийПользователь"";Pwd=""111"";";
    V83COMConnector= Новый COMОбъект("V83.COMConnector");
    ЕстьошибкаПодключени = ЛОЖЬ;
    Попытка
        Ком = V83COMConnector.Connect(Параметры);
    Исключение
        сообщить (описаниеошибки());
        Предупреждение ("Ошибка подключения!");
        ЕстьошибкаПодключени = истина;
    КонецПопытки;
25 X Leshiy
 
28.06.17
12:00
(24) А ВнешнийПользователь имеет право на внешнее подключение?

А то было такое, и в ошибку не проваливалось

Просто подключение висит
26 lamme
 
28.06.17
12:02
да. проблема с подключением какая-то.
потому что это идет почему-то выбора из базы-источника .


проверил по количеству документов в базе-источнике и базе-применике и что выбтирается в этих 2х базах при одинаковых условиях ..
пошел копать соединение ..
27 X Leshiy
 
28.06.17
12:02
(26) Права проверь.
28 Имитация работы
 
28.06.17
12:03
(26) Строку подключения проверь. Небось к своей же базе и подключаешся
29 lamme
 
28.06.17
12:09
права полные. есть право внешнего подключения
в логах базы-приемника - такое
http://skrinshoter.ru/s/280617/I9d3FAh2
30 lamme
 
28.06.17
12:09
база применик - строка подключения верная
31 lamme
 
28.06.17
12:23
ха!
32 lamme
 
28.06.17
12:23
нашел
33 lamme
 
28.06.17
12:24
Запрос   =  Ком.NewObject("Запрос");
Запрос = новый запрос();
запрос.УстановитьПараметр("Дата1", НачалоДня(ДатаС));
запрос.УстановитьПараметр("Дата2", КонецДня(ДатаПо));
34 lamme
 
28.06.17
12:24
сам дурак
35 lamme
 
28.06.17
12:24
вопрос закрыт
спасибо
36 X Leshiy
 
28.06.17
12:24
(33) Ыыыыыыыы :)