|
КД.Произвольный алгоритм не получается выгрузить ТЧ | ☑ | ||
---|---|---|---|---|
0
Gray776
25.05.15
✎
10:44
|
Не пойму что не так то делаю. Смотрю файл обмена там только данные шапки есть.
|УПОРЯДОЧИТЬ ПО РеализацияТоваровУслугТовары.Ссылка.Контрагент"; Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала); Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); ТЗ = РезультатЗапроса.Выгрузить(); ТЧ = ТЗ.СкопироватьКолонки(); ТЗРез = ТЗ.СкопироватьКолонки(); ТЗРез.Колонки.Добавить("Товары"); ПозТЗ = 0; Пока Выборка.СледующийПоЗначениюПоля("Контрагент") Цикл ТекущийКонтрагент = Выборка.Контрагент; КолСтр = ТЗ.Количество()-1; Пока ТЗ[ПозТЗ].Контрагент = ТекущийКонтрагент Цикл ЗаполнитьЗначенияСвойств(ТЧ.Добавить(), ТЗ[ПозТЗ]); Если ПозТЗ < КолСтр Тогда ПозТЗ = ПозТЗ+1; Иначе Сообщить ("ПозТЗ = "+ПозТЗ); Прервать; КонецЕсли; КонецЦикла; НоваяСтрока = ТЗРез.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, ТЗ[ПозТЗ]); НоваяСтрока.Товары = ТЧ; ТЧ.Очистить(); ПозТЗРез = ПозТЗРез+1; КонецЦикла; ВыборкаДанных= ТЗРез; |
|||
1
Гёдза
25.05.15
✎
10:46
|
а где тут заполнение тч?
|
|||
2
Gray776
25.05.15
✎
10:47
|
(1) НоваяСтрока.Товары = ТЧ;
|
|||
3
Gray776
25.05.15
✎
10:47
|
(1) (2) Не?
|
|||
4
Gray776
25.05.15
✎
10:49
|
(1) (2) Ну а сама ТЧ в цикле заполняется
|
|||
5
Gray776
25.05.15
✎
10:56
|
Эммм там пару строчек мусора, проверял кое что...
Вот так будет без лишних строк: |УПОРЯДОЧИТЬ ПО РеализацияТоваровУслугТовары.Ссылка.Контрагент"; Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала); Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); ТЗ = РезультатЗапроса.Выгрузить(); ТЧ = ТЗ.СкопироватьКолонки(); ТЗРез = ТЗ.СкопироватьКолонки(); ТЗРез.Колонки.Добавить("Товары"); ПозТЗ = 0; Пока Выборка.СледующийПоЗначениюПоля("Контрагент") Цикл ТекущийКонтрагент = Выборка.Контрагент; КолСтр = ТЗ.Количество()-1; Пока ТЗ[ПозТЗ].Контрагент = ТекущийКонтрагент Цикл ЗаполнитьЗначенияСвойств(ТЧ.Добавить(), ТЗ[ПозТЗ]); Если ПозТЗ < КолСтр Тогда ПозТЗ = ПозТЗ+1; Иначе Прервать; КонецЕсли; КонецЦикла; НоваяСтрока = ТЗРез.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, ТЗ[ПозТЗ]); НоваяСтрока.Товары = ТЧ; ТЧ.Очистить(); КонецЦикла; ВыборкаДанных= ТЗРез; |
|||
6
cw014
25.05.15
✎
11:41
|
НоваяСтрока.Товары = ТЧ;
ТЧ.Очистить(); Вот тут твоя ошибка |
|||
7
cw014
25.05.15
✎
11:42
|
Либо делать так:
НоваяСтрока.Товары = ТЧ.Скопировать(); ТЧ.Очистить(); либо так: НоваяСтрока.Товары = ТЧ; ТЧ = Новый ТаблицаЗначений; |
|||
8
Gray776
25.05.15
✎
12:24
|
(7) Спасибо заработало.
Вот так сделал: НоваяСтрока.Товары = ТЧ.Скопировать(); ТЧ.Очистить(); Заработало, второй вариант не проверял )))) |
|||
9
Gray776
25.05.15
✎
12:47
|
(8) Кстати чтот я смотрю на код и думаю занафика я нагородил с "ТекущийКонтрагент" Можно было ведь
Пока Выборка.Следующий() Цикл .... |
|||
10
Gray776
25.05.15
✎
12:52
|
(9) (5) Типа вот:
РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); ТЗ = РезультатЗапроса.Выгрузить(); ТЧ = ТЗ.СкопироватьКолонки(); ТЗРез = ТЗ.СкопироватьКолонки(); ТЗРез.Колонки.Добавить("Товары"); ПозТЗ = 0; Пока Выборка.СледующийПоЗначениюПоля("Контрагент") Цикл НоваяСтрока = ТЗРез.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, ТЗ[ПозТЗ]); Пока Выборка.Следующий() Цикл ЗаполнитьЗначенияСвойств(ТЧ.Добавить(), ТЗ[ПозТЗ]); ПозТЗ = ПозТЗ+1; КонецЦикла; НоваяСтрока.Товары = ТЧ.Скопировать(); ТЧ.Очистить(); КонецЦикла; ВыборкаДанных= ТЗРез; все тоже самое делает и даже, лучше... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |