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

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

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

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

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

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

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

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

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

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


Оффлайн Dethmontt

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

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

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

Оффлайн has

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

Оффлайн CyberNut

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

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

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

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

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

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

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

Оффлайн has

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

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

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

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

Оффлайн Dethmontt

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


Теги:
 

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

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

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

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

Ответов: 24
Просмотров: 12286
Последний ответ 14 Июн 2012, 17:44
от Alex1111
Заполнение табличной части документа табличной частью из другого документа

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

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

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

Ответов: 6
Просмотров: 15970
Последний ответ 16 Авг 2012, 12:07
от Will
Заполнение поля табличной части документа из табличной части справочника.

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

Ответов: 3
Просмотров: 4212
Последний ответ 06 Апр 2015, 20:08
от Kurt_Wagner

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal