Имя: Пароль:
1C
1С v8
1с Объединить 3 таблицы в коде
,
0 Lily_1C
 
27.12.18
10:02
Добрый день!
Подскажите,пожалуйста,как объединить 3 таблицы в одну?
Есть 3 таблицы долгов: ТаблицаДолгов1,ТаблицаДолгов2,ТаблицаДолгов3.

Как получить ТаблицаДолгов?(общую таблицу,объединяющую все три)
1 lxs
 
27.12.18
10:05
(0) ОБЪЕДИНИТЬ ВСЕ

Но может лучше почитать Практические примеры разработки для начала?
И пособие по построению запросов в 1С?
2 Lily_1C
 
27.12.18
10:06
Не в запросе, как объединить?
3 Ник080808
 
27.12.18
10:08
(0) обход в таблиц построчно и добавление в новую)
4 Lily_1C
 
27.12.18
10:08
С помощью запросов я уже получила эти таблицы,они идентичны по структуре.
Как то можно одну таблицу поставить под другую, и следующую тоже подставить вниз?)
5 Ник080808
 
27.12.18
10:10
МассивТаблиц = Новый Массив;
МассивТаблиц.Добавить(ТаблицаДолгов1);
МассивТаблиц.Добавить(ТаблицаДолгов2);
Для Каждого ЭлементМассива из МассивТаблиц Цикл
Для Каждого Стр из ЭлементМассива Цикл
НС = ТаблицаДолгов3.Добавить();
ЗаполнитьЗначенияСвойств(нс,стр);
КонецЦикла;
КонецЦикла;
6 Ник080808
 
27.12.18
10:10
в итоге все три таблицы  будут в таблицадолгов3
7 shuhard
 
27.12.18
10:11
(4) в (3) какая буква не понятна ?
добавляешь колонка
дописываешь
сортируешь
8 Очевидно
 
27.12.18
10:12
(5)
а можно ещё моднее :
Для Каждого Стр из ЭлементМассива Цикл
ЗаполнитьЗначенияСвойств(ТаблицаДолгов3.Добавить(),стр);
КонецЦикла;
9 Lily_1C
 
27.12.18
10:15
А так верно?

ТаблицаДолгов = Новый Массив;
    
    Для Каждого Таб Из ТаблицаДолгов1 Цикл
        ТаблицаДолгов.Добавить(Таб);
    КонецЦикла;
    
    Для Каждого Таб Из ТаблицаДолгов2 Цикл
        ТаблицаДолгов.Добавить(Таб);
    КонецЦикла;
    
    Для Каждого Таб Из ТаблицаДолгов3 Цикл
        ТаблицаДолгов.Добавить(Таб);
    КонецЦикла;
10 Lily_1C
 
27.12.18
10:16
(8)-спасибо огромное!!!
11 ГдеСобака Зарыта
 
27.12.18
10:18
(4) А почему бы одним запросом не получить все данные в одну таблицу? Все нормальные пацаны и девчонки так делают.
Ну и еще в типовых есть специальные функции объединения таблиц.
12 Ник080808
 
27.12.18
10:56
(11) ребенок только учится. Она еще не постигла дзен запросов.
13 Вафель
 
27.12.18
10:57
делай как настоящий программист - merge join
14 GANR
 
27.12.18
11:06
(12) Какой еще дзен!?
// создаем пустую таблицу с аналогичными колонками
ТаблОбъединение = Табл1.Скопировать(Новый Массив);
// и алгоритмом общего модуля запихиваем в неё все 3 таблицы
ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(Табл1, ТаблОбъединение);
ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(Табл2, ТаблОбъединение);
ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(Табл3, ТаблОбъединение);
15 GANR
 
27.12.18
11:08
(13) средствами ассемблера тогда уж - чего мелочиться
16 Лодырь
 
27.12.18
11:09
(14) БСПоклонник детектед!
17 Ник080808
 
27.12.18
11:17
(14) ребенок спрашивает как объединить три одинаковые таблицы. Ты думаешь, она знает что такое БСП и общий модуль
ОбщегоНазначенияКлиентСервер?) Есть несколько стадий становления 1сника:
1. Объединить три таблицы циклом;
2. Объединить запросом;
3. Объединить с бсп) Она на открыла для себя только первый)
18 Вафель
 
27.12.18
11:25
(17)3 - это и есть первый. только циклы в общих модулях
19 Вафель
 
27.12.18
11:25
а потом в бсп решат, что это не клиентский метод и вся обработка полетит
20 Ник080808
 
27.12.18
11:28
(18) так в этом и цимес. Сначала пишешь на чистом языке свое, потом после многих лет боли и страданий, постигаешь дзен и юзаешь типовое)
21 Pahomich
 
27.12.18
11:30
(20) Цимес - исключтельно еврейское блюдо...
22 МихаилМ
 
27.12.18
12:22
(17)
можно еще через скд , табдок, дз
а один товарищ под сотню методов объединения знает
https://forum.infostart.ru/forum9/topic175149/#message1822773
23 GANR
 
27.12.18
13:26
(16) Yes, это так.
(17) Эти 3 стадии прям на себе помню. Я и слова "БСП" не произносил. Надо показать человеку мощь модулей линейки ОбщегоНазначения.
24 GANR
 
27.12.18
13:28
(22) О Господи! Да чего мучаетесь - ассемблером надо.
25 Pahomich
 
27.12.18
13:34
(24) Интересно, как ты, в условиях офиса, найдешь в ассемблере Таблицу значений...
26 GANR
 
27.12.18
13:35
(19) Верное замечание. А для этого у нас общий модуль OUR_ПосредникСБГУКлиентСервер и в нем функция.

Процедура ДополнитьТаблицу(Т1, Т2) Экспорт

  ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(Т1, Т2);

КонецПроцедуры

Обращения идут не напрямую к БСП, а через этого посредника. Если отчет о проверке конфигурации после обновления покажет, что функции которую вызывает модуль-посредник нету - просто подпилим это место и всё (а не всю конфу).
27 Смотрящий
 
27.12.18
13:41
(17) С уяли ребенок ? оО Писун больше чем у меня отрос а все онжеребенок
28 Сергиус
 
27.12.18
13:51
(27)Учитывая, что это девушка, то вряд ли больше..)
29 catena
 
27.12.18
13:53
(28)Имелась в виду полоска ЧСВ, видимо))
30 Сергиус
 
27.12.18
13:54
(29)Это ж надо линейкой измерять)
31 catena
 
27.12.18
13:55
(30)На ней же подписано, если мышой навести
32 Сергиус
 
27.12.18
13:56
(31)У меня такого нет..
33 Mikeware
 
27.12.18
14:14
(28) по абсолютной величине :-)
34 Ник080808
 
27.12.18
15:18
(27) она мне свой писюн не показывала, к счастью) а ребенок, потому что вопрос детский)
35 Смотрящий
 
27.12.18
15:31
(28) Полоска под ником ... она у всех есть ;)