Имя: Пароль:
1C
1C 7.7
v7: Добавить из одной ТЗ в другую ☑
0 Gaaper
 
06.01.16
✎
11:35
Добрый день!
Есть две ТЗ(ТЗИсточник и ТЗПриемник) полностью одинаковые по структуре, данные разные.
Как добавить к ТЗПриемнику данные из ТЗИсточника?
Пробовал вот так, но не получается:

ТаблицаИсточник.ВыбратьСтроки();
Пока ТаблицаИсточник.ПолучитьСтроку() = 1 Цикл
    ТаблицаПриемник.НоваяСтрока();
    ТаблицаПриемник.Заполнить(ТаблицаИсточник);
КонецЦикла;
1 Sserj
 
06.01.16
✎
11:42
Кажется как то так.

СмещениеПриемника = ТаблицаПриемник.КоличествоСтрок();
Для СчСтрок = 1 По ТаблицаИсточник.КоличествоСтрок() Цикл
   ТаблицаПриемник.НоваяСтрока();
   Для СчКолонок = 1 По ТаблицаИсточник.КоличествоКолонок() Цикл
      ТаблицаПриемник.УстановитьЗначение((СмещениеПриемника + СчСтрок), СчКолонок, ТаблицаИсточник.ПолучитьЗначение(СчСтрок, СчКолонок))
   КонецЦикла;
КонецЦикла;
2 Gaaper
 
06.01.16
✎
11:47
Спасибо! Попробую сейчас.
3 Gaaper
 
06.01.16
✎
12:02
Все получилось! Еще раз спасибо!
4 Сияющий Асинхраль
 
06.01.16
✎
12:56
В семерке есть замечательная функция Заполнить(), которая позволяет в одну строку, без циклов, скопировать из одной тз в другую (если структуры одинаковые)
5 Злопчинский
 
06.01.16
✎
13:32
Ксп = тзприемник.количествострок()
Кси = тзисточнмк.количествострок()
Тзприемник.количествострок(ксп+кси)
Тзприемник.заполнить(тзисточник,ксп+1,ксп+кси)
6 ptiz
 
06.01.16
✎
14:02
Ох я в своё веселился, когда оказалось, что Тзприемник.количествострок(ксп+кси) у меня добавляло строки не к концу таблицы.
Вроде со сортировкой было связано, точно сейчас не вспомню.
7 ptiz
 
06.01.16
✎
14:02
Или убавляло не с конца :)
8 ДенисЧ
 
06.01.16
✎
14:12
(6) не было такого никогда
9 ptiz
 
06.01.16
✎
14:27
(8) Нашел в яндексе. Да, с уменьшением глючит:
Метод количествострок() на уменьшение, после сортировки глючит НЕЗАВИСИМО от использования компонент, и глючит всегда.
Обрезает так, как будто не было сортировки.
Это давно уже известно, и известно, что 1С++ тут не при чем.
10 Сияющий Асинхраль
 
06.01.16
✎
17:11
(9) а кто предлагал уменьшать с помошью количества()? Заполнить() работает на увеличение. Что же касается Количество(), то легко запомнить - либо до нуля, либо на увеличение, другое использовать не надо