Заполнение табличной части документа

1. Nzo 03.06.13 16:11 Сейчас в теме
Всем Привет!
Господа, нужна помощь.


У меня на форме есть ТаблицаЗначений с данными. Затем программно формирую документ Перемещение и его табличную часть заполняю из ТаблицыЗначений на форме.

Заполняется жутко долго где минуту занимает 100 строк .

Может кто что подскажет

Спасибо

НовыйДок=Документы.ПеремещениеТоваров.СоздатьДокумент();
НовыйДок.Организация=Организация;
НовыйДок.СкладОтправитель=СкладОтправитель;



ТабличнаяЧасть=НовыйДок.Товары;

Для Каждого Товар Из Товары Цикл

//НоваяСтрока=ТабличнаяЧасть.Добавить();
//НоваяСтрока.Номенклатура=Товар.Номенклатура;
//НоваяСтрока.Количество=Товар.Количество;
ЕдИзм=Товар.Номенклатура.БазоваяЕдиницаИзмерения.Наименование;
НоваяСтрока.ЕдиницаИзмерения=Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(ЕдИзм);
НоваяСтрока.Коэффициент=Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(ЕдИзм).Коэффициент;
НоваяСтрока.Качество=Справочники.Качество.НайтиПоКоду("000000001");

КонецЦикла;
НовыйДок.Товары.Загрузить(Таблица1);
Форма=НовыйДок.ПолучитьФорму();
Форма.Открыть();
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Akuji 22 03.06.13 16:20 Сейчас в теме
вынести из цикла
НоваяСтрока.ЕдиницаИзмерения=Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(ЕдИзм); 
НоваяСтрока.Коэффициент=Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(ЕдИзм).Коэффициент; 
НоваяСтрока.Качество=Справочники.Качество.НайтиПоКоду("000000001"); 

а "товары" от куда берутся?
3. Nzo 03.06.13 16:20 Сейчас в теме
НовыйДок=Документы.ПеремещениеТоваров.СоздатьДокумент();
НовыйДок.Организация=Организация;
НовыйДок.СкладОтправитель=СкладОтправитель;



ТабличнаяЧасть=НовыйДок.Товары;

Для Каждого Товар Из Товары Цикл

НоваяСтрока=ТабличнаяЧасть.Добавить();
НоваяСтрока.Номенклатура=Товар.Номенклатура;
НоваяСтрока.Количество=Товар.Количество;
ЕдИзм=Товар.Номенклатура.БазоваяЕдиницаИзмерения.Наименование;
НоваяСтрока.ЕдиницаИзмерения=Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(ЕдИзм);
НоваяСтрока.Коэффициент=Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(ЕдИзм).Коэффициент;
НоваяСтрока.Качество=Справочники.Качество.НайтиПоКоду("000000001");

КонецЦикла;
НовыйДок.Товары.Загрузить(Таблица1);
Форма=НовыйДок.ПолучитьФорму();
Форма.Открыть();

данные в ТаблицеЗначений на форме - основное конечно Номенклатура, а остальные просто цифры . Поэтому все данные необходимые документу Перемещения приходится таскать ссылками . Вот так вот
4. Nzo 03.06.13 16:21 Сейчас в теме
Товары - ТабличноПоле на форме
9. Akuji 22 03.06.13 17:09 Сейчас в теме
(4) Nzo,
Товары - ТабличноПоле на форме

а на форме они откуда?
5. killitch 30 03.06.13 16:22 Сейчас в теме
Вместо
ТабличнаяЧасть=НовыйДок.Товары;

Для Каждого Товар Из Товары Цикл

//НоваяСтрока=ТабличнаяЧасть.Добавить();
//НоваяСтрока.Номенклатура=Товар.Номенклатура;
//НоваяСтрока.Количество=Товар.Количество;
ЕдИзм=Товар.Номенклатура.БазоваяЕдиницаИзмерения.Наименование;
НоваяСтрока.ЕдиницаИзмерения=Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(ЕдИзм);
НоваяСтрока.Коэффициент=Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(ЕдИзм).Коэффициент;
НоваяСтрока.Качество=Справочники.Качество.НайтиПоКоду("000000001");

КонецЦикла;
Показать


Сделай
Качество = Справочники.Качество.НайтиПоКоду("000000001");
ТабличнаяЧасть=НовыйДок.Товары;

Для Каждого Товар Из Товары Цикл

ЕдИзмБаз=Товар.Номенклатура.БазоваяЕдиницаИзмерения.Наименование;
ЕдИзмОст=Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(ЕдИзм);//здесь еще родителя указать, в подчинении которого находится ЕдИзм
НоваяСтрока.ЕдиницаИзмерения=ЕдИзмОст;
НоваяСтрока.Коэффициент=ЕдИзмОст.Коэффициент;
НоваяСтрока.Качество=Качество;

КонецЦикла;
Показать
6. Nzo 03.06.13 16:25 Сейчас в теме
7. Nzo 03.06.13 16:37 Сейчас в теме
результат такой же . долго
8. Nzo 03.06.13 16:42 Сейчас в теме
хотя на 10 секунд быстрее

Кто что еще подскажет
10. Nzo 03.06.13 17:11 Сейчас в теме
из Запроса попадают. Номенклатура и Остатки
11. Akuji 22 03.06.13 17:14 Сейчас в теме
ну значит и остальные поля сразу в запросе попробуй получить, а не через точку в цикле
12. Kutsepalov 03.06.13 17:24 Сейчас в теме
А функцию Выгрузить если использовать? По идее быстрее должно быть.
13. Nzo 03.06.13 17:38 Сейчас в теме
Выгрузить пробовал , но особого выигрыша не увидел по быстроте.

Суть в чем на форме есть две кнопки . Одна кнопка , нажали , собрали данные с помощью запроса и закинули в Таблицу. Вторая кнопка, нажали , вытащили данные из Таблицы на форме и закинули их в табличную форму Док. Перемещения.
Ну хорошо получу я их в запросе, процедура нажатие первой кнопки закончилось. И как из запроса я получу в др. процедуре
14. Akuji 22 03.06.13 17:48 Сейчас в теме
ну например едизм уже будет получена в таблице, и надо будет только загружать а не искать по наименованию...
можно ее с формы скрыть если очень мешает...

а зачем вообще выводить на форму? кроме нажатий на кнопки выполняются какие либо действия?
15. Nzo 03.06.13 18:06 Сейчас в теме
Чтобы пользователь посмотрел, откорректировал кое что и дальше сформировал док перемещ. а с ед.измер. наверно ты прав , в запросе я его сейчас попробую. спасибо
16. Nzo 03.06.13 18:31 Сейчас в теме
Всем спасибо, тема закрыта. Вытащил все запросе
17. serq82 8 19.09.13 14:08 Сейчас в теме
ну да запросом быстрее если документ записан...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот