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


1С:Предприятие :: 1С:Предприятие 7.7 и ранее

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

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 или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует