Вход | Регистрация


1С:Предприятие ::

Метки: 

v7: Com соединение 1с 8.3 и 1с 7.7

Я
   nadysaan
 
14.06.18 - 12:36
Добрый день. Помогите люди добрые. Через Com соединение подключаюсь в базе 1с 7.7. На семерошном запросе ошибка.
Запрос 
    АвтомобильСОМ = в7.CreateObject("Справочник.Номенклатура");
    
    Если АвтомобильСОМ.НайтиПоРеквизиту("ВИН",Автомобиль.VIN, 1) = 1 тогда  
        Авто = АвтомобильСОМ.ТекущийЭлемент(); 
    КонецЕсли;
     
    Если Авто <> Неопределено Тогда
        начучета=НачалоГода(текущаядата());
        запрос = в7.CreateObject("Запрос");
        текстзап= "//{{ЗАПРОС(Сформировать)

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

        
        если запрос.выполнить(текстзап)=0 тогда
            возврат;
        конецесли;
Ошибка
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(279)}: Ошибка при вызове метода контекста (выполнить)
        если запрос.выполнить(текстзап)=0 тогда
по причине:
Произошла исключительная ситуация (1С:Предприятие): Условие(Автомобиль = Авто <<?>> );
Запрос[14] : Ошибка в выражении 'Авто'
 
 
   1Сергей
 
1 - 14.06.18 - 12:37
Потому, что так нельзя
   nadysaan
 
2 - 14.06.18 - 12:40
Подскажите, как сделать отбор всех документов по одной машине?
   hhhh
 
3 - 14.06.18 - 12:41
(0) вот это странное выражение
   Если Авто <> Неопределено Тогда

разве в семерке есть Неопределено ?
   1Сергей
 
4 - 14.06.18 - 12:41
(2) в конфигурацию семерки можно вносить изменения?
   nadysaan
 
5 - 14.06.18 - 12:42
да
   hhhh
 
6 - 14.06.18 - 12:43
(2) может так?

      |Условие(Автомобиль.VIN = " + Автомобиль.VIN) + "
   nadysaan
 
7 - 14.06.18 - 12:44
пробовала. тоже самое.
   1Сергей
 
8 - 14.06.18 - 12:45
(5) Создай в глобальном модуле в самом верху переменную
Перем ПараметрыЗапроса Экспорт;


Потом в обработке 

в7.ПараметрыЗапроса = в7.CreateObject("Массив");
в7.ПараметрыЗапроса[0] = Авто;

а в тексте запроса:
|Условие(Автомобиль = ПараметрыЗапроса[0]);
   NikVars
 
9 - 14.06.18 - 12:48
(2) http://1c.moy.su/publ/vzaimodejstvie_cherez_ole/37-1-0-141
Тут есть чуток про работу с запросами
   nadysaan
 
10 - 14.06.18 - 13:01
(8) спасибо, смысл поняла, попробую, когда пользователи закончат ностальгировать по 7.7 и выйдут из неё :)
 
  Рекламное место пустует
   NikVars
 
11 - 14.06.18 - 13:03
(10) Угу... Главное, сразу воевать в боевой базе. Ничего не пробуй в тестовых базах! Так что ли?!
   nadysaan
 
12 - 14.06.18 - 13:05
(11) Она уже давно не работая, часть информации по какой-то неведомой мне причине не перенесли, вот пользователям и приходится заходить туда и смотреть старую информацию
   nadysaan
 
13 - 14.06.18 - 13:06
(11) Не рабочая :)
   1Сергей
 
14 - 14.06.18 - 13:13
(10) Писал по памяти, семерки нет под рукой. Возможно ещё сам массив надо будет в семерке создавать при старте
   NikVars
 
15 - 14.06.18 - 13:24
(13) Ясно... Как 1С свои конфы пишет?! У них же нет данных пользователей со всей России по всем отраслям и всем базам... Фантастика!
   nadysaan
 
16 - 14.06.18 - 13:35
(14)
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(262)}: Ошибка при вызове метода контекста (CreateObject)
        в7.ПараметрыЗапроса = в7.CreateObject("Массив");
по причине:
Произошла исключительная ситуация (1С:Предприятие): Неудачная попытка создания объекта (Массив): 0
   mehfk
 
17 - 14.06.18 - 13:43
Не так массивы в семерке работают.
   NikVars
 
18 - 14.06.18 - 15:57
(16) Мануал в помощь!
http://old.mista.ru/tutor_1c/
   1Сергей
 
19 - 14.06.18 - 17:33
(16) Сорри. Массив создавать не надо. Его нужно правильно объявить
Перем ПараметрыЗапроса[365] Экспорт;
   1Сергей
 
20 - 14.06.18 - 17:33
(18) нету там про объявление массивов
   Birmingem
 
21 - 14.06.18 - 18:50
Предложенное в (6)
  |Условие(Автомобиль.VIN = " + Авто.VIN) + "
должно работать.

Или лучше так, если код в справочнике уникальный конечно:
  |Условие(Автомобиль.Код = " + Авто.Код) + "

Проверь в отладчике, что показывает: Авто.VIN или Авто.Код?
   NikVars
 
22 - 15.06.18 - 10:20
(20) Не подсказывай! Пусть сама убедится!
   nadysaan
 
23 - 15.06.18 - 12:41
(21) В том то и дело, что показывает просто COMОбъект и все
   nadysaan
 
24 - 15.06.18 - 12:42
(22) Не надо подсказывать, я в первую очередь смотрела по отладчику
   Salimbek
 
25 - 15.06.18 - 12:54
(23) Эм-м-м, Сообщить(Авто.VIN) - что напишет в окне сообщений? Просто через всякие ОЛЕ объекты передаются как COMОбъект, а вот простые типы - должны передаваться как и положено, как строки или числа. Разумеется, если нет Истории на этом реквизите.
   nadysaan
 
26 - 15.06.18 - 14:16
(25) Авто.ВИН = "5KCYD4840EB401622        " Строка
   Birmingem
 
27 - 15.06.18 - 14:22
(26) Ну вот, уже хорошо.
Теперь в запросе отключи строчку "|Условие(Автомобиль = Авто);"
И в цикле по группировке посмотри что покажет отладчик:
Запрос.Автомобиль.ВИН



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