Имя: Пароль:
1C
1С v8
COM-соединение к 1С77, условие с пустым значением
0 Yurisel
 
20.05.13
17:07
Вызываю через COM запрос из 1С82 к 1С77, в запросе надо отобрать те значения регистра, которые равны пустой фирме и что-то не могу найти решения этой проблемы. Что-то делаю не правильно, но что конкретно? Запрос дает ошибку на строку условия.

ПустаяФирма=ОдинС77.ПолучитьПустоеЗначение("Справочник.Фирмы");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с '" + КТП + "' по '" + КТП + "';
|Фирма = Регистр.ОстаткиТоваров.Фирма;
|Товар = Регистр.ОстаткиТоваров.Товар;
|ИД = Регистр.ОстаткиТоваров.Товар.Идентификатор;
|Склад = Регистр.ОстаткиТоваров.Склад;
|Подразделение = Регистр.ОстаткиТоваров.Склад.Подразделение.Код;
|ОстатокТовара = Регистр.ОстаткиТоваров.ОстатокТовара;
|Функция ОстатокТовараНачОст = НачОст(ОстатокТовара);
|Группировка Склад упорядочить по Склад.Наименование без групп;
|Группировка Товар упорядочить по Товар.Код без групп;
|Условие(Фирма = ПустаяФирма);
|"//}}ЗАПРОС

;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
  Возврат;
КонецЕсли;
1 Jaap Vduul
 
20.05.13
17:20
Можно экспортные глобальные переменные использовать.
2 Yurisel
 
20.05.13
17:22
Эти глобальные переменные, они должны быть в 77 определены?
3 Jaap Vduul
 
20.05.13
17:29
(2)
Ну, если конфигурация типовая, то обычно там таких хватает.
Типа глРасшифровка, глФлагРасшифровки и иже с ними.
4 Yurisel
 
20.05.13
17:33
Сделал через экспортную переменную из глобального модуля 1С77, но все равно дает ошибку в условии запроса.
Произошла исключительная ситуация (1С:Предприятие): Условие(Фирма = глПустаяФирма <<?>> );
Запрос[12] : Ошибка в выражении 'глПустаяФирма'
5 Lazy Stranger
 
20.05.13
17:36
попробуй
Условие(Фирма.Выбран() = 0);
6 Serginio1
 
20.05.13
17:37
Проще использовать Внешний Отчет с ОткрытьФормуМодально и передачей параметров во втором параметре
v8: Как выполнить процедуру внешней обработки через OLE
7 Jaap Vduul
 
20.05.13
17:39
(4)
Уже сейчас плохо помню, но вроде сам запрос и его текст тоже надо в глобальные переменные запихнуть.
8 Yurisel
 
20.05.13
17:42
(5) Спасибо, такой вариант подошел
Условие(Фирма.Выбран() = 0);