Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
20 мая 2024, 10:28

Сопоставление значения, полученного из двух запросов

Автор dsident, 18 апр 2011, 15:37

0 Пользователей и 1 гость просматривают эту тему.

dsident

Для договор = запрос2.Следующий() По  запрос1.Следующий() Цикл
            обл.Параметры.дата = формат(запрос2.дата, "ДЛФ = Д");                                 
            обл.параметры.разница = окр((датаотчета - запрос2.дата)/(24*3600),0 );
         КонецЦикла;


пардон, я скорости ради запросы обзываю вап и пав  :nhsrm:

Klyacksa

А что у Вас за странный цикл? я же писала структуру программы, в том числе и цикла, почему Вы не воспользовались моими рекомендациями?
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

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

dsident

Ваш вариант я учел)) За это отдельное спасиба плюсиком)

Давайте порассуждаем на тему этого цикла. Ведь описан он с точки синтаксиса правильно, и, насколько я понимал, как раз сранивает два значения одного типа. Или не так?

Klyacksa

Где верно с точки зрения синтаксиса?
Вы пытались изобразить цикл
Для Каждого Стр Из Таблица Цикл
КонецЦикла;
?
Или что-то другое? Такую запись я вижу впервые, и очень сомневаюсь, что оно может нормально работать...
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

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

has

ЦитироватьВедь описан он с точки синтаксиса правильно
с точки зрения логики нет. Это равно
Для Договор = Истина По Истина Цикл
а вобще интересно он в цикл попадает хоть? Хотя да наверно. Он зациклиться не должен случайно? Сам бы поизвращался ради эксперимента, да желания нет уже

Klyacksa

А, верно, это был цикл
Для Счетчик=1 по 10 цикл...

ЦитироватьХотя да наверно. Он зациклиться не должен случайно?
Нет, зациклиться он вообще-то не должен. Рано или поздно метод Следующий() вернет ложь, и алгоритм выйдет из цикла.
Но вот почему система ест такую конструкцию - теряюсь в догадках, если честно.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

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

has

Цитата: Klyacksa от 19 апр 2011, 13:59
А, верно, это был цикл
Для Счетчик=1 по 10 цикл...

ЦитироватьХотя да наверно. Он зациклиться не должен случайно?
Нет, зациклиться он вообще-то не должен. Рано или поздно метод Следующий() вернет ложь, и алгоритм выйдет из цикла.
Но вот почему система ест такую конструкцию - теряюсь в догадках, если честно.
Вобщем попробовал сие извращение. Метод следующий выполняется у обоих выборок, т.е. мы получаем результаты, но цикл прогоняется один раз. Т.е. к примеру Договор у нас был тип СправочникСсылка, потом при входе в цикл становится равен Истина, один раз проходит цикл и выходит без ошибок. Ток вот у автора переменные запрос1 и запрос2 какого типа не понятно, с выборкой у меня прокатило в принципе.

dsident

Синтаксис:
    Для <Имяпеременной> = <Выражение 1> По <Выражение 2> Цикл
    // Операторы
    [Прервать;]
    // Операторы
    [Продолжить;]
    // Операторы
    КонецЦикла;



сие извращение я взял из синтаксис-помошника. Даты он собирает, все разные, но не упорядочивает по договорам, то есть цикл прогоняется не один раз, а ровно столько, пока выборка не закончится

has

Для <Имяпеременной> = <Выражение 1> По <Выражение 2> Цикл
это равносильно
Для МояПеременная = 1 По 5 Цикл
т.е. на входе цикла МояПеременная = 1, и пока она не станет равным 5 цикл будет выполняться. Кстати почему он у меня выполняется только один раз, тут спорить не буду, надо чтобы входные данные одинаковы были

dsident


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск