Имя: Пароль:
1C
1С v8
Копирование данных с одной ТЗ в другую с учетом совпадающих данных
0 Штурман
 
03.03.15
13:38
Нужно скопировать данные с одной ТЗ в другую, при условии, что данные в первой колонке равны данным второй.

Пример:

Первая ТЗ
Иванов
Петров
Сидоров

Вторая ТЗ:
Иванов А
Петров Б
Васечкин Г

Нужно в итоге в первую ТЗ скопировать вторую колонку второй ТЗ
Результат:
Иванов А
Петров Б
Сидоров

Пишу кодом так:

Для каждого н из ТЗ цикл
А = Строка(н.физлицо)
Для каждого з из ТЗ2 цикл
Б = Строка(з.наименование)
Если А=Б тогда
сообщить("совпало")
иначе
Продолжить
конецесли;
конеццикла;
конеццикла;

Так при запуске данного кода обработка ничего не сообщает. Хотя А И Б корректно переводятся в строку.
Что не так?
1 yavasya
 
03.03.15
13:42
2 yavasya
 
03.03.15
13:45
3 palpetrovich
 
03.03.15
13:46
(1) есть подозрение, что "Иванов" != "Иванов А", так что не все так просто :)
4 Штурман
 
03.03.15
13:47
(1) (2)  А можно без запроса как-нить обойтись? а то надо много разныз ТЗ объединять :))
5 Штурман
 
03.03.15
13:48
(3) не

Первая колонка - это "Иванов"
А вторая колонка - это "А"
6 yavasya
 
03.03.15
13:49
прийдётся найти строку в цикле запускать если обходить в цикле
7 yavasya
 
03.03.15
13:49
или слить всё в одну ТЗ и потом ТаблицаЗначений.Свернуть()
8 palpetrovich
 
03.03.15
13:49
(5) а, понял. Тогда смотри (1)
9 palpetrovich
 
03.03.15
13:51
(7) зачем? по-ходу обычное левое соединение
10 yavasya
 
03.03.15
13:52
(7) в цикле тож интересно
11 1Сергей
 
03.03.15
13:55
Запрософобия до добра не доведёт
12 palpetrovich
 
03.03.15
13:55
не проверял, так примерно:
ВЫБРАТЬ *
ПОМЕСТИТЬ ВТ1
ИЗ &ТЗ1 КАК ТЗ1
;
ВЫБРАТЬ *
ПОМЕСТИТЬ ВТ2
ИЗ &ТЗ2 КАК ТЗ2
;
ВЫБРАТЬ
ВТ1.Фамилия
ВТ2.ЧтоТоЕще
ИЗ
ВТ1 КАК ВТ1
ЛЕВОЕ Соединение ВТ2 КАК ВТ2
ПО ВТ1.Фамилия = ВТ2.Фамилия
13 Штурман
 
03.03.15
16:09
Всем спасибо, но почему-то акцент делается на перенос таблицы значений в запрос, чтобы потом выборку делать, думал просто циклом по двух ТЗ пройтись
14 barrgand
 
03.03.15
16:13
(13) Зачем делать выборку? Из запроса тоже неплохие ТЗ выгружаются.
15 Штурман
 
03.03.15
16:23
(14) ну эти ТЗ я как раз выгрузил из разных запросов, а потом с другой ТЗ кое-какие операции проделал, чтобы нужные данные оставить.
Все в одном запросе не делал, тк в запросах 1с есть ограничения
16 lEvGl
 
гуру
03.03.15
17:52
если правильно понял, то перебор второй +
Строка = ТЗПервая.Найти(Значение, ("Колонка"))
Если Строка <> Неопределено Тогда
Строка.ВтораяКолонка = Перебор.ВтораяКолонка
17 fisher
 
03.03.15
18:47
(11) Запрософилия тоже.
AdBlock убивает бесплатный контент. 1Сергей