Имя: Пароль:
1C
 
Копирование строки Из ТЗ1 в ТЗ2 1С 8
,
0 nvhost
 
08.12.14
20:47
Ребят помогите, не могу понять почему не работе, делаю все как в примерах
ТЗРез=Новый ТаблицаЗначений();
ТЗ = Результат.Выгрузить();
Для Каждого СтрокаТЗ из ТЗ Цикл
                
Товар = Источник.Товары.Найти(СтрокаТЗ.Номенклатура);
Если ТипЗнч(Товар)=Тип("Неопределено") Тогда
НоваяСтрока = ТзРез.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТЗ);
КонецЕсли;

Но в результате пустая ТЗРез, что делаю не так?
1 mehfk
 
08.12.14
20:48
Колонок нет в ТЗРез.
2 ДенисЧ
 
08.12.14
20:49
А источник - небось по COM подключён?
3 nvhost
 
08.12.14
20:52
(1) Как скопировать и колонки?
4 mehfk
 
08.12.14
20:53
У ДенисаЧ пока он в теме, купи СП.
5 wakrush
 
08.12.14
20:54
ТЗ = Результат.Выгрузить();
ТзРез = Результат.Выгрузить();
ТзРез.Очистить();
Для Каждого СтрокаТЗ из ТЗ Цикл
                
Товар = Источник.Товары.Найти(СтрокаТЗ.Номенклатура);
Если ТипЗнч(Товар)=Тип("Неопределено") Тогда
НоваяСтрока = ТзРез.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТЗ);
КонецЕсли;
6 mehfk
 
08.12.14
20:58
ДенисЧ, в (5) еще один покупатель на СП :)
7 ДенисЧ
 
08.12.14
21:00
(6) Пока не выплатил деньги - он не покупатель...
8 ДенисЧ
 
08.12.14
21:01
Но вот за такое
Если ТипЗнч(Товар)=Тип("Неопределено") Тогда

Я бы дал лет 5 на поселениях без права переписки...
9 nvhost
 
08.12.14
21:28
(5) Спасибо тебе добрый человек
10 mehfk
 
09.12.14
04:13
(9) Это называется просто: "Ламер ламеру помог - навредил насколько смог!"
11 Oleg_ka
 
09.12.14
06:19
СкопироватьКолонки (CopyColumns)
Синтаксис:
СкопироватьКолонки(<Колонки>)
Параметры:
<Колонки> (необязательный)
Тип: Строка.
Список колонок для копирования в формате: "Колонка1, Колонка2...". Если список не задан, то будут скопированы все колонки.
Возвращаемое значение:
Тип: ТаблицаЗначений.
Описание:
Создает таблицу значений с заданным списком колонок.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Примечание:
Содержимое колонок не копируется.

ТЗ = Результат.Выгрузить();
ТЗРез=Новый ТаблицаЗначений();
ТЗРез = ТЗ.СкопироватьКолонки();
12 Oleg_ka
 
09.12.14
06:24
Но!
Смотрю на строки
ТЗ = Результат.Выгрузить();
Значит до этого есть Запрос.
Далее вижу: Если ТипЗнч(Товар)=Тип("Неопределено")
Значит условия(е) в запросе выставлены НЕ правильно.
Подсказка: проверку заполнения номенклатуры можно поместить внутрь запроса.
13 hhhh
 
09.12.14
06:31
(12) вам тоже к ДенисуЧ надо

ТаблицаЗначений (ValueTable)
Найти (Find)
Синтаксис:

Найти(<Значение>, <Колонки>)
Параметры:

<Значение> (обязательный)

Тип: Произвольный.
Искомое значение.
<Колонки> (необязательный)

Тип: Строка.
Список имен колонок, разделенных запятыми, по которым производится поиск.
Если параметр не указан, поиск осуществляется по всей таблице значений.
Значение по умолчанию: Пустая строка.
Возвращаемое значение:

Тип: СтрокаТаблицыЗначений; Неопределено.
Строка, в которой содержится искомое значение. Если значение не найдено, то возвращается значение Неопределено.
Описание:

Осуществляет поиск значения в указанных колонках таблицы значений.
14 Oleg_ka
 
09.12.14
06:38
(13) Я предполагаю, что до указанного кода у автора идет запрос, и в самом запросе можно ограничить выборку.
Вы же хотите вначале получить таблицу с ненужными строками и уже потом сделать отбор в ТЗ на "неопределено".
Если же источник действительно подключен через Com, то признаюсь, что не прав.
15 Godofsin
 
09.12.14
06:39
(14) Он не делает отбора по неопределено, он вычленяет номенклатуру, которая есть в результате запроса, но нет в таблице источника
16 Oleg_ka
 
09.12.14
06:44
(15) Гхм, увидел.
Товар = Источник.Товары.Найти(СтрокаТЗ.Номенклатура);
Глазки с утра еще не открылись.
Спасибо за объяснение.
17 hhhh
 
09.12.14
06:47
(16) нет, ну в запросе действительно тоже можно было отобрать
18 DrZombi
 
гуру
09.12.14
06:48
(0) Колонки, кто будет делать?