Имя: Пароль:
1C
1C 7.7
v7: Специфика (различия) работы запроса на различных конфигурациях.
0 xonix
 
03.04.12
18:50
Добрый день.

Помогите, плиз, прояснить одну непонятку.
Славная обработка "Универсальная выгрузка данных в формате XML" при выгрузке документов, генерит запрос следующего вида:

ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Обрабатывать Все;
|ОбрабатыватьДокументы все;
|ПеремОбъект    = Документ.Реализация.ТекущийДокумент;
|Перем1        = Документ.Реализация.ДатаДок;
|Перем2        = Документ.Реализация.ДатаДок;
|Группировка ПеремОбъект;
|Условие(Перем1 >= ЗначенияДляОтбора[1]);
|Условие(Перем2 <= ЗначенияДляОтбора[2]);
|"//}}ЗАПРОС

Где, по ходу действия, параметры получают значения дат, например:
ЗначенияДляОтбора[1] = '01.01.12';
ЗначенияДляОтбора[2] = '31.01.12';

Данная конструкция великолепно отрабатывает на конфигурации ТиС и формирует список документов в заданном интервале дат.

Однако, попытка запустить её на любой конфигурации Бухгалтерский учет, выдает пустой список документов.
Положение исправляется, только либо добавлением в запрос строку:
|Период с НачПериод по КонПериод
Либо, вообще не выбирать период:
в этом случае в текст запроса не попадают "условия" по датам, и соответственно выводится весь список документов

Добавить строку в формирующийся запрос - не проблема, хотя и несколько теряется гибкость решения.

Однако, очень хотелось бы понять: почему один и тот же запрос по разному отрабатывает на ТиС и Бух.
Проверял на раличных конфигурациях (и ТиС и Бух). Релиз платформы одинаковый для всех баз.
1 Ёпрст
 
03.04.12
18:51
выкинь перем2, для начала
2 Ёпрст
 
03.04.12
18:52
да и вообще, перем1 тоже.

|Период с ЗначенияДляОтбора[1] по ЗначенияДляОтбора[2];

делов то
3 KRV
 
03.04.12
18:53
Нет в бухгалтерии документа "Реализация". Для начала..
4 xonix
 
03.04.12
18:59
(1)
1. Запрос не я пишу, он генерится обработкой в зависимости от выбранных на форме условий.
2. Это я уже попробовал, см выше
(Положение исправляется, только либо добавлением в запрос строку:
|Период с НачПериод по КонПериод)

(2) Естественно, в бухгалтерии его нет. Он есть в достаточно древней ТиС. Проверял на разных документах, которые есть в Бух (просто привел код запроса для ТиС). Если период не выбирать, то в Бух все проходит нормально.
5 xonix
 
03.04.12
19:04
Коллеги, во избежание недопонимания....
С таким запросиком сам я отлично справлюсь, вопрос не в этом.
Дело в том, что он генерится обработкой в зависимости от выбранных условий.

А основной вопрос в том:
ПОЧЕМУ на ТиС, в отличии от БУХ отрабатывает условие:
|Условие(Перем1 >= ЗначенияДляОтбора[1]);
|Условие(Перем2 <= ЗначенияДляОтбора[2]);

Вернее, почему оно не отрабатывает на БУХ, а обязательно требует
|Период с ЗначенияДляОтбора[1] по ЗначенияДляОтбора[2];
6 Ёпрст
 
03.04.12
19:07
(5) Замечание:
Если вторая часть оператора после ключевого слова По пропущена или значение второго параметра команды равно нулю, то интервал времени применяется от начального момента времени до ТА (или по РабочуюДату, если не установлена компонента ''Оперативный учет''). Если в описании запроса команда Период С опущена, то интервал дат формирования запроса устанавливается в точку актуальности итогов. Для журнала расчетов конструкция Период С ... По... означает выборку в разрезе расчетных периодов журнала, а конструкция  С ... По...  означает выборку в разрезе времени действия записей журнала расчетов, определяемых реквизитами журнала ''ДатаНачала'' и ''ДатаОкончания''.
Подробнее см. в документации, глава ''Язык Генерации Запросов''
7 xonix
 
03.04.12
19:36
(6)
То ли уже вечер и я туплю, то ли в принципе не могу понять смысл....
Если в запросе ВООБЩЕ опустить пресловутые операторы "Период", "с", "по" и составить только:

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

То выдается ПОЛНЫЙ список документов.

Если же добавить элементарное условие:
|Условие(Перем1 >= ЗначенияДляОтбора[1])

То список становится пустым........


Ну и ладно, по-видимому это судьба и придется дописать типовую обработку, чтобы она генерила запрос в нужном виде.


Ёпрст4, спасибо за участие!
Независимо от того, куда вы едете — это в гору и против ветра!