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

Автор Тема: Таблица значений. Заполнение выборкой запроса  (Прочитано 17359 раз)

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

Оффлайн Андрей Федотов

  • ***
  • Сообщений: 231
  • РЕПУТАЦИЯ: 37
  • КПД: 16%
  • Регистрация: 2011-07-07
  • Компания: Future IT Solutions
  • Профессия: Разработчик 1С
Всем добрый вечер!
Интересует следующий вопрос.
Сразу отмечу, что речь идёт о толстом клиенте (не управляемые формы)
На форме документа размещена ТаблицаЗначений. В неё в конфигураторе интерфейсно добавлены три колонки:
1) Получатель
2) Сумма
3) Валюта

Далее, в модуле формы документа есть соответственно запрос, который выбирает из регистра получателя,сумму и валюту.
Не спрашивайте зачем сделана ТаблицаЗначений - было до меня.
Сейчас там написан код такой:

МояТаблицаЗначений = Запрос.Выполнить.Выгрузить(); // МояТаблицаЗначений находится на форме

Работает очень долго.
Если написать
ВыборкаЗапроса = Запрос.Выполнить.Выбрать();
то на точке останова выполнение пролетает моментально.
В связи с этим возникает два вопроса:
1) Действительно ли
Выгрузить()
работает намного дольше чем
Выбрать()
2) Как можно через выборку заполнить МояТаблицаЗначений:

Пробовал писать такой код:
Пока ВыборкаЗапроса.Следующий() Цикл;
МояТаблицаЗначений.Получатель = ВыборкаЗапроса.Получатель;
КонецЦикла;

Естественно возникает ошибка, что не найден реквизит Получатель.
С уважением,
Андрей Федотов
Future IT Solutions


Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2861
  • РЕПУТАЦИЯ: 548
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Пока Выборка.Следующий() Цикл
СтрокаТаблицыЗначений = МояТаблицаЗначений.Добавить();
СтрокаТаблицыЗначений.Получатель = Выборка.Получатель;
КонецЦикла;
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Андрей Федотов

  • ***
  • Сообщений: 231
  • РЕПУТАЦИЯ: 37
  • КПД: 16%
  • Регистрация: 2011-07-07
  • Компания: Future IT Solutions
  • Профессия: Разработчик 1С
Спасибо! Так работает)
А что работает быстрее:
Выгрузить() или Выбрать() и потом заполнение в цикле?
С уважением,
Андрей Федотов
Future IT Solutions

Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1310
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
Спасибо! Так работает)
А что работает быстрее:
Выгрузить() или Выбрать() и потом заполнение в цикле?
Я бы Выгрузить() использовал, писать меньше. Что такая большая разница по времени?

Оффлайн CyberNut

  • *
  • Сообщений: 17
  • РЕПУТАЦИЯ: 4
  • КПД: 24%
  • Регистрация: 2011-03-16
  • Сайт: 
  • Профессия: Программист 1С
Спасибо! Так работает)
А что работает быстрее:
Выгрузить() или Выбрать() и потом заполнение в цикле?

В конфигураторе "Отладка -> Замер производительности".
Нажимаешь, выполняешь код, отжимаешь, смотришь результат.
Повторяешь для другого варианта кода и сравниваешь результаты.
1c-wiki.ru - 1c-wiki.ru

Оффлайн Андрей Федотов

  • ***
  • Сообщений: 231
  • РЕПУТАЦИЯ: 37
  • КПД: 16%
  • Регистрация: 2011-07-07
  • Компания: Future IT Solutions
  • Профессия: Разработчик 1С
Я бы Выгрузить() использовал, писать меньше. Что такая большая разница по времени?

Ну получалось 1/3 где-то. Это если я делал через Сообщить (ТекущаяДата());
Причём на 1/3 меньше у Выбрать()

А через Замер производительности получается в 10 раз быстрее работает Выгрузить()

Вот и не ясно кто прав)
С уважением,
Андрей Федотов
Future IT Solutions

Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1310
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С

Ну получалось 1/3 где-то. Это если я делал через Сообщить (ТекущаяДата());
Причём на 1/3 меньше у Выбрать()

А через Замер производительности получается в 10 раз быстрее работает Выгрузить()

Вот и не ясно кто прав)
Замер производительности смотри и все, без всяких сообщить.

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2861
  • РЕПУТАЦИЯ: 548
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
В данном случае по любому Выгрузить() быстрее т.к. ЦИКЛ гонять не нужно!!!
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!


Теги:
 

Заполнение табл. части документа из табл. части другого документа

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

Ответов: 11
Просмотров: 8607
Последний ответ 16 Авг 2012, 21:50
от Will
Из запроса не выводятся значения полей - выводятся пустые значения

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

Ответов: 24
Просмотров: 13866
Последний ответ 14 Июн 2012, 17:44
от Alex1111
Обнаружено дублирование ключевых значений в колонке ссылка ["обнаружено дублирование ключевых з

Автор lianinfoРаздел Пользователям "1С - Предприятие 8"

Ответов: 10
Просмотров: 689
Последний ответ 20 Мар 2018, 16:54
от alex0402
Заполнение табличной части документа табличной частью из другого документа

Автор PeaceownerРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 2828
Последний ответ 30 Ноя 2011, 07:10
от has
Автоматическое заполнение табличной части документа из табличной части другого

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

Ответов: 6
Просмотров: 17255
Последний ответ 16 Авг 2012, 12:07
от Will

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
164 Сообщений
alex0402
72 Сообщений
oleg-x
63 Сообщений
AIFrame AIFrame
57 Сообщений
buketov.av buketov.av
47 Сообщений
wise wise
41 Сообщений
ilyay ilyay
39 Сообщений
Анюта17
33 Сообщений
Alter
32 Сообщений
KOI8-R
31 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal