Имя: Пароль:
1C
1С v8
Программно скопировать строки с отбором в тч
0 synapce
 
09.03.22
16:23
Всем привет.
Есть табличная часть, Товары, где есть Номенклатура Цена ВидТовара
Проводим сверку с другой табличной частью Товары_копия Где есть Номенклатура Цена ВидТовара
И если к примеру строке в Товары соответствует две строки в Товары_копия (по одной номенклатуре есть три записи с разным ВидТовара во второй ТЧ), то необходимо в ТЧ Товары сделать копию одной и той же строки (столько строк, сколько соответствует во второй ТЧ), а затем уже заполнить по каждой ВидТовара из Второй тч.

Как заполнить ВидТовара разобрался, но вот - как скопировать по отбору строки и добавить их в первую?

Я делаю как
в тз = выгружаю всю табличную часть
затем в ней провожу отбор.
заливаю результат в тз_отобранная

Затем в цикле, исходя из найденных количеств строк пишу, что
- Перем = табличная часть.Добавить()
- ЗаполнитьЗначенияСвойств(Перем, тз_отобранная)

Но не работает, подскажите, в какую сторону копать или решение, если есть, чтобы поанализировать, а то врезался в стену))

Заранее всем спасибо за ответ!
1 lodger
 
09.03.22
16:33
а попробуй в
"- ЗаполнитьЗначенияСвойств(Перем, тз_отобранная)"
написать СтрокаТЗ из отобранной.
2 synapce
 
09.03.22
16:40
(1) т.е. - перебрать строки из отобранной?
Пишу - для каждого стр из тз_Отобранная
- Перем = табличная часть.Добавить()
- ЗаполнитьЗначенияСвойств(Перем, стр)

ничего не заполняет, к сожалению..
3 Asmody
 
09.03.22
16:45
Перем ключевое слово
4 synapce
 
09.03.22
16:47
(3) не, это понятно, я так для примера.

грубо говоря сейчас

- МойПараметр= табличная часть.Добавить()
- ЗаполнитьЗначенияСвойств(МойПараметр, тз_отобранная)
5 pechkin
 
09.03.22
16:54
ТЗ.Скопировать(СтруктураОтбора)
6 synapce
 
09.03.22
16:57
(5) так и сделал. Скопировал нужные строки. А теперь как этот результат, который ТЗ.Скопировать(СтруктураОтбора) залить в первую ТЧ? (надо оставить всю табличную часть, а эти строки скопированные - добавить ниже, ни в коем случае не заменять собой всю имеющуюся ТЧ)
7 pechkin
 
09.03.22
17:05
(6) ТЧ.Загрузить(ТЗ)
8 1Сергей
 
09.03.22
17:05
(6) ты бы весь код скинул. Гадания на кофейной гуще - занятие неблагодарное
9 pechkin
 
09.03.22
17:05
если добавить, то только построчно
10 Said_We
 
09.03.22
17:26
(0) Всю информацию в 1С SQL запрос. Подготавливаешь нужную информацию со всеми отборами и нужной структуры и обратно в ТЧ заливаешь.
11 acht
 
09.03.22
18:09
(10) > в 1С SQL запрос
Скажите, а вы 2 на 2 контекстным серверным вызовом умножаете?
12 lodger
 
09.03.22
18:10
(11) ещё и субд напрягает.
13 Said_We
 
09.03.22
18:35
(11) Данная задача проще решается запросом - на мой взгляд. Тут левое соединение двух таблиц + условие.
(12) Чего его там напрягать. Табличные части наверняка не большие. А если большие, то как раз пусть СУБД и ворочает.
Программист всегда исправляет последнюю ошибку.