#0
by roalang
конецпроцедуры Я знаю что у меня налеплено черте что, но по другому не получается как сравнить тз1 с тз3, и вывести все в другую таблицу???
#1
by agarych
Кода много... ниасилил... Отсортируй по какому либо полю две таблицы и построчно сравнивай.
#2
by roalang
пробую так сделать, но вылетает ошибка если тз3.код=тз1.код тогда {C:1C2008EXTFORMSОСТАТКИАНАЛИЗ С ТЗ.ERT}: Значение не представляет агрегатный объект (код)
#5
by Said_We
А что в результате надо получить? Добавь колонку и в отдной таблице пропиши 1, а в другой -1 сверни и получишь что совпадает будет с 0, а что не совпадает будет не с нулем. Если в ТЗ_1 и ТЗ_2 есть внутри одинаковые строчки, то необходимо предварительно сами ТЗ свернуть.
#6
by Said_We
Есть медод в ТЗ "Заполнить(,,,)". Применять его можно только если количество строк в ТЗ <> 0. Не за что.
#7
by antoneus
естессно будет ошибка. а ВыбратьСтроки кто будет писать? в первой - ВыбратьСтроки, во второй - НайтиЗначение.
#11
by Said_We
Неа не надо. Сравниваешь же с какой-то целью. Цель бывает одна - найти одинаковые и найти разные. Ну это собственно одна задача найти одинаковые и разные. После свертки ты и получиль что есть разное и что есть одинаковое. А дальше можно с этим делать все что хочешь и выводить как хочешь.
#17
by Skom
иногда бывает полезно сделать дополнительное индексное поле.... как например в закрытии кассовой смены в ОтчетеККМ там индекс составляется по Номенклатура.Наименование+ЦенаПродажи.... может не в тему но код ниасилил прочесть весь
#18
by Said_We
Если не ставить в Сортировать "*" по колонкам со ссылочным типом, то сортировка будет по основному представлению.... При свертке все равно. Я из понял задачу так. Есть две идентичные по струкуре таблицы, но разные по содержанию. Необходимо найти вче есть сходство и в чем есть различие этих ТЗ. P.S. Инициализацию ТЗ я бы вынес в отдельную функцию или процедуру. Что бы несколько раз одно и тоже не писать да и исключить ошибки (в одном месте прописал колонку, а во втором забыл).
#20
by Skom
по поводу сказал же проста ниасили прочесть и написал удобный механизм для обработки ТЗ с индексами... а по поводу если все как в то самое простое это тупо пробегатьсся циклом построчно и делать поиском в другой таблице.... причем надо учесть что во второй таблице может быть две записи идентичны одной записи у нас в одном отчете похоже реализовано...там используется транзитная таблица....счас не вспомню ну в общем в общем поиск происходит по все
#22
by Дуб
Уточнение: там цикл в цикле. Первый - по строкам, второй - по колонкам (или наоборот). Тогда можно в глобальную функцию вытащить и юзать по необходимости.
#24
by Evg
в 1с++ у индексированной таблицы есть методы реализующие сравнение двух тз: Объединить / Merge добавляет строки из таблицы - источника в текущую таблицу. Если в таблице - источнике есть колонки, которых нет в текущей, то они создаются. Объединени осуществляется с учётом индекса и фильтра таблицы - источника. Пересечение / Conjunction пересечение двух таблиц по ключевым полям. Результатом пересечения является таблица, в которой присутствуют строки текущей ТЗ, которые есть в ТЗ2, и строки ТЗ2, которые есть в текущей ТЗ (с учетом флДобавлятьСтрокиТЗ2). Совпадение строк определяется по индексам ИндексТекущейТЗ и ИндексТЗ2. Количество колонок в индексах должно быть одинаковым. Разность / Difference разность двух таблиц по ключевым полям. Результатом является таблица, в которой присутствуют строки текущей ТЗ, которых нет в ТЗ2, и строки ТЗ2, которых нет в текущей ТЗ (с учетом флДобавлятьСтрокиТЗ2). Совпадение строк определяется по индексам ИндексТекущейТЗ и ИндексТЗ2. Количество колонок в индексах должно быть одинаковым.
#25
by Said_We
в нет тупого беганья по таблицам. Вы объединяете две таблицы в одну с добавлением служебной колонки с признаком откуда та или иная строчка взялась. Сворачиваете полученную большую таблицу. тзИТОГ.Свернуть(стрКолонок, "ДляСвертки"); Получаете сразу результат что есть и чего нет и где. Это сравнение двух таблиц. Если у Вас их больше, то необходимо определиться что необходимо - пересечение или наоборот уникальные записи и следовательно в несколько этапов.
#30
by 1сTalik
Если надо срравнить 2 таблицы ТЗ1 и ТЗ2 тогда вот: Далее перебором ТЗ получаешь различия. Если Количество или СНД или СКД не равно 0, тогда отличаются, если все 3 значения равны 0, тогда идентичны
#31
by 1сTalik
вместо ТЗ.СНД=ТЗ1.Количество ; ТЗ.Количество=ТЗ1.Количество, а вместо ТЗ.СНД=(-1)*ТЗ1.Количество ТЗ.Количество=(-1)*ТЗ1.Количество
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Разделитель + Панель.Свертка
- Запретить в форме списка справочника открывать выбор владельца
- Переоценка вал.счета 67
- Сохранять отчеты во внешних файлах
- Отпуск чернобыльцам в УПП (1.2.14.1)
- Как в СКД добавить расшифровку?
- Пара вопросов по диаграмме Ганта
- как изменить движения проведённого документа?
- Общая файловая ошибка при доступе к *.ert
- Зависает регламентное задание на сервере
- Как проверить структуру подчиненности?
- Как программно понять что идет стандартное перепроведение документов?
- Права на планировщик заданий Windows 2003
- Механизм "Редактирование текстов интерфейса"…
- Кривой вывод построителем в табличный документ.
- При объединении конфигураций не удаляются документы
- Расчет отпуска в високосном году
- Электронный документооборот
- УПП: Увеличение первоначальной стоимости ОС
- Обмен данными через XML