Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
18 Дек 2017, 00:45
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Сопоставление значения, полученного из двух запросов  (Прочитано 10604 раз)

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

Оффлайн dsident

  • *
  • Сообщений: 26
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-04-18
  • Сайт: 
  • Профессия: Программист 1С
Добрый!
Ситуация такая: из хозрасчетного регистра выбираем договора контрагентов ("Договор1")(изначальная задача - найти сальдо кредиторской задолженности), а для того, чтобы узнать дату последнего платежа мы создаем еще один запрос (документы.списаниеСРасчетногоСчета), и второй вариант договора берем из запроса2 (договор2).

Возникает вопрос: как сопоставить два значения "Договор", полученного из разных запросто, чтобы дата последнего платежа по договору2 попадала в строку макета, где описан договор1?!?!?

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

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

Подскажите пожалуйста, каким образом можно сопоставить два одинаковых, по сути, п


Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
Почему нельзя написать запрос, получающий все данные сразу, без последующей обработки?
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

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

Оффлайн dsident

  • *
  • Сообщений: 26
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-04-18
  • Сайт: 
  • Профессия: Программист 1С
Вообще, конечно, можно, но вопрос же не по запросам, а как правильно сопоставить два одинаковых значения, полученные из двух запросов, и если они совпадают, тогда шлеп - дата последнего платежа есть?

Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
Ну как, тогда обходить каждый раз второй запрос и подбирать... Либо поиском по результату запроса...
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

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

Оффлайн dsident

  • *
  • Сообщений: 26
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-04-18
  • Сайт: 
  • Профессия: Программист 1С
подскажите пожалуйста поподробнее, как это сделать? Я ведь начинающий....

Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
Уточню - я правильно поняла, Договор1=Договор2, только значения берутся из разных запросов?

Если да, то схема, например, такая:
1. Получаем два результата запроса: Результат1 и Результат2
2. Обходим Результат1
    По каждому Договору1 из Резушльтата1:
    2.1. Заполняем параметры области макета данными Договора1 из Результата1
    2.2. По Договору1 из Результата1 ищем Договор2 в Результате2
    2.3. Подставляем найденное значение даты в параметры области Договора1
    2.4. Выводим область
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

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

Оффлайн dsident

  • *
  • Сообщений: 26
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-04-18
  • Сайт: 
  • Профессия: Программист 1С
Да, Вы правильно поняли.

То есть начиная с пункта 2.2:
Для каждого дата из обл.параметры.дата цикл
Если договор1=договор2 тогда
обл.параметры.дата = дата

Я Вас правильно понял?

Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
Неа, не правильно. Область - это только область в макете, для вывода туда данных. Циклы по областям не делают, их используют ТОЛЬКО для вывода данных. То есть, Вы что-то где-то посчитали, подобрали, потом полученные данные вставили в параметры области и вывели ее.

Пока Результат1.Следующий() цикл
        Обл.параметры.Договор=Результат1.Договор;
        // и т.д. - заполняем нужные параметры из Результат1
        Резальтат2.Сбросить(); // так как каждый раз нужно искать во всем Результате2, позиционируем указатесь на первый элемент
        Если Результат2.НайтиСледующий(Результат1.Договор,"Договор") тогда // нашли запись с нужным договором
                Обл.параметры.Дата=Результат2.Дата;
               // здесь устанавливаем все нужные параметры из Результат2
        КонецЕсли;
        ТабДок.Вывести(Обл);
КонецЦикла;
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

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

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
а нельзя:
1. Написать 1й запрос, поместить в виртуальную таблицу 1
2. Написать 2й запрос, поместить в виртуальную таблицу 2
3. Соединить по общему полю...

и т.д.?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
2cska-fanat-kz
А зачем делать вообще два запроса если можно обойтись одним? ;)

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

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


Теги:
 

Значения некоторых колонок являются суммами некоторых колонок, которые в свою очередь так же являются суммами других. Как упорядочить?

Автор acces969Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 293
Последний ответ 26 Июн 2017, 14:32
от AsadRoman
Что быстрее: Загрузить табличную часть в запрос и там добавить колонки, или пробежаться циклом по ТЧ и добавить значения в колонки

Автор ZeedРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 990
Последний ответ 11 Июл 2016, 09:00
от vitasw
Как сложить значения Столбца "Объем"

Автор anton.kislovРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 19
Просмотров: 13583
Последний ответ 04 Май 2017, 10:48
от ospov11789
Ошибка "Итератор для значения не определён"

Автор КараулРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 853
Последний ответ 17 Авг 2016, 11:25
от Караул
Нужна помощь в формировании отчета "Преобразование значения к типу Дата не может быть выполнено"

Автор STLuka1337Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 2101
Последний ответ 14 Ноя 2014, 13:24
от cska-fanat-kz

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
133 Сообщений
ilyay ilyay
63 Сообщений
AIFrame
61 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
41 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
27 Сообщений
alexandr_ll
23 Сообщений

* Кто онлайн

  • Точка Гостей: 202
  • Точка Скрытых: 0
  • Точка Пользователей: 4
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal