Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 09:33

Сравнение двух ТЗ и соединение в одну

Автор iFruitTV, 29 апр 2022, 15:42

0 Пользователей и 1 гость просматривают эту тему.

iFruitTV

Нужно сравнить две таблицы значений и и получить результат в третей соединив две таблицы в одну и добавить отсутствующие колонки и элементы, но без повторений
Две ТЗ ДанныеМОЛ и ДанныеМОЛ1tz.png

iFruitTV

Каждая из ТЗ получается из разных модулей и выводится они в совершенно другом модуле для вывода на ПФ в дальнейшем должности и фИО МОЛа. Надо сравнить соответствие на количество строк и колонок. Обязательные колонки Представление её надо сравнить и по соответствию представления вывести в отдельную тз для дальнейшего вывода на ПФ

LexaK

для вывода на ПФ не надо сливать две ТЗ в одну! обычно делают так

в цикле обходят строчки основой ТЗ
внутри заполняют структуру Отбора с нужными полями и ищут строчки во вспомогательной ТЗ (даже в нескольких)
вот у вас все данные для вывода в ПФ и есть
1.текущая строчка из основной ТЗ
2.и (что-то из найденного) в дополнительной ТЗ
если помогло нажмите: Спасибо!

iFruitTV

LexaK, Надо, иначе слишком много кода получается, так как это не все, что нужно и нужно, чтобы совпадал текст из строк с другой строкой в другой тз, иначе будет выводить все подряд

alexandr_ll


iFruitTV

alexandr_ll, там в функции есть измерения, а что это значит я понять не могу, сможете объяснить?

alexandr_ll

iFruitTV, Это то значение, по которому сравниваются таблицы

iFruitTV

Цитата: alexandr_ll от 30 апр 2022, 06:06iFruitTV, Это то значение, по которому сравниваются таблицы
А есть где-то видео, чтобы было понятно?) А то я вообще не могу понять, что значит


Функция РазницаТаблицЗначений(Таблица0, Таблица1, Измерения) Экспорт
   
    ВсеКолонки = "";
    Для Каждого Колонка Из Таблица0.Колонки Цикл
        ВсеКолонки = ВсеКолонки + ", " + Колонка.Имя
    КонецЦикла;
    ВсеКолонки = Сред(ВсеКолонки, 2);
   
    Таблица = Таблица1.Скопировать();   
   
    Таблица.Колонки.Добавить("Знак", Новый ОписаниеТипов("Число"));
   
    Таблица.ЗаполнитьЗначения(1, "Знак");
   
    Для Каждого Строка Из Таблица0 Цикл ЗаполнитьЗначенияСвойств(Таблица.Добавить(), Строка) КонецЦикла;
   
    Таблица.Колонки.Добавить("Счёт");
    Таблица.ЗаполнитьЗначения(1, "Счёт");
   
    Таблица.Свернуть(ВсеКолонки, "Знак, Счёт");
   
    Ответ = Таблица.Скопировать(Новый Структура("Счёт", 1), ВсеКолонки + ", Знак");
   
    Ответ.Сортировать(Измерения);
   
    Возврат Ответ
   
КонецФункции

Знак, счет и измерения я все-таки не понял

iFruitTV

alexandr_ll, Я все равно как-то не понимаю, что такое измерение

Похожие темы (5)

Рейтинг@Mail.ru

Поиск