Имя: Пароль:
1C
 
Соединение строк таблицы значений.
, ,
0 SlipperNear
 
naïve
01.04.24
21:05
Всем привет. Столкнулся со следующей проблемой:

Существует таблица по типу.

Наименование Значение1 Значение2
Название     Число    Число
Название2    Число    Число

Задача стоит, для перевода данной таблицы значений в одну строку по типу
"Наименование1 Значение1 Значение2 Наименование2 Значение1_2 Значение2_2"

Копал в сторону АВТОНУМЕРАЦИЯСТРОК(), чтобы у каждой был уникальный номер, по которому можно соединить. Вот только есть дополнительная проблема, общая таблица на 1000+ строк, которые идут подряд, и для "длинной строки" может потребоваться совместить от 0 до 3 (максимум) таких строк в одну. Из общего у этих 0-3 строк есть ССЫЛКА на объект.

Итогового результата хочется добиться примерно такого, прилагаю скриншот: https://postimg.cc/RqhCyx4h

Если кто сталкивался, буду рад любым советам, помощи.
1 Волшебник
 
01.04.24
21:06
Откажитесь от выполнения задачи
2 SlipperNear
 
naïve
01.04.24
21:06
(1) Почему?
3 Волшебник
 
01.04.24
21:07
(2) Потому что в ней нет смысла
4 SlipperNear
 
naïve
01.04.24
21:11
(3) Смысл глубже, эта длинная строка должна в последствии соединяться с еще более огромной таблицей, для выборки. Голову уже раза три сломал, пока думал как это сделать:))
5 Волшебник
 
01.04.24
21:12
(4) Пока не вижу никакого смысла в соединении значений, ссылок и всё более огромных таблиц.
6 Волшебник
 
01.04.24
21:12
(4) Но Вы можете продолжать ломать голову, если Вам за это платят.
7 SlipperNear
 
naïve
01.04.24
21:15
(5) В моём понимании гораздо проще всё. Сделал запрос отдельно получая основные данные, в двух таблицах. Основную, и вот эту кашу, для дальнейшей обработки. Но такой вариант не устроил.
8 Волшебник
 
01.04.24
21:15
(7) Попробуйте СКД
9 SlipperNear
 
naïve
01.04.24
21:16
(8) Напрямую в запросе сильный геморрой будет?
10 Волшебник
 
01.04.24
21:31
(9) Эту задачу вообще невозможно решить запросами. Только тупыми бессмысленными циклами, без всякого вознаграждения за состояние "в потоке" и причинение добра. Но Вы старайтесь. Вдруг у Вас получится
11 SlipperNear
 
naïve
01.04.24
21:46
(10) Вознаграждения и правда не будет)) это у меня такая стажировка во франче. В любом случае, благодарю за подсказку использования скд...
12 Волшебник
 
01.04.24
21:48
(11) Не надо использовать СКД для этой задачи. Это был сарказм.
13 Garykom
 
гуру
01.04.24
21:49
(0) не возьмутс
14 Волшебник
 
01.04.24
21:50
(13) А если он найдёт кого-то, кому пообещает отдавать ползарплаты за выполнение своей работы?
15 Garykom
 
гуру
01.04.24
21:54
(14) Откат? HR? Оригинально.
16 Волшебник
 
01.04.24
21:55
(15) Жить-то хочется... Половина останется у него. При нынешнем уровне зарплаты 1С-ника вполне можно снимать квартиру в Москве, ещё останется.
17 SlipperNear
 
naïve
01.04.24
21:57
(12) :))) Я так понял, тут варианты только сугубо костыльные, и только после выполнения запроса? Опустим пока тот момент, что это бессмысленно
18 SlipperNear
 
naïve
01.04.24
21:57
(14) мне кажется тут надо будет х2 зарплаты отдавать)
19 Волшебник
 
01.04.24
21:57
(17) Забудьте про запрос. Просто закрутите циклы
20 SlipperNear
 
naïve
01.04.24
21:59
(16) Москва больше для барыг - купцов, все условия, только волю дай. Я в регионе живу, тут на зарплату в перспективе, даже во франче, можно на широкую ногу жить
21 SlipperNear
 
naïve
01.04.24
22:01
(19) Они будут бесконечно крутиться))) там на 1000+ элементов прокрутки, и это только для счетов, ещё 2500 прокруток на субконто,😁
22 Garykom
 
гуру
01.04.24
22:20
Плиз ответь
Чем
"Наименование1 Значение1 Значение2 Наименование2 Значение1_2 Значение2_2"

Отличается от
"Наименование1 Значение2 Значение1 Наименование2 Значение1_2 Значение2_2"

?

И каким местом "эта длинная строка должна в последствии соединяться с еще более огромной таблицей, для выборки"
23 Garykom
 
гуру
01.04.24
22:21
Имхо когда надо что-то соединять - правильно использовать сначала полное разделение всех
И первую таблицу (она уже разделена) и вторую тоже (еще нет)
А затем соединять и строить что надо
24 Волшебник
 
01.04.24
22:26
(23) Я сразу так и сказал в (1)
25 SlipperNear
 
naïve
01.04.24
22:27
(22) глянь скриншот, там наглядно видно. В текстовом формате не очень, но ты ещё скопировал два раза вторую часть сообщения, вместо двух разных частей)))

Вот насчёт разделения второй, и вопрос. Глобально , это выглядит как запрос к плану счетов, где эта таблица, является значением реквизита "Виды субконто", и нужно сделать итоговый общей таблицы, чтобы субконто там отображались не в виде вложенной табличной части, а в виде 18-ти колонок с разными значениями. ( 18, потому что для каждого объекта может быть максимум 3 субконто, у которого по 5 параметров ).  Ю
26 Волшебник
 
01.04.24
22:30
(21) Вы меня этими нулями не испугаете. Компы сейчас быстрые. 1С крутит цикл на 1 000 000 итераций за 0,154 сек
27 Волшебник
 
01.04.24
22:31
(25) Запрос не к плану счетов, а к регистру бухгалтерии
28 SlipperNear
 
naïve
01.04.24
22:34
(27) Именно, к плану счетов. Стоит задача , написания обработки, сравнения "эталонной" базы плана счетов, условно выгруженной в эксельку, или макет, с "актуальной", результатом которой, является перечень счетов актуальной базы, отличающихся от эталонной, и самое каверзное в этом - чем отличающихся:)
29 SlipperNear
 
naïve
01.04.24
22:35
(26) Я не пугаю, а скорее сыплю своим недостатком знаний! А вы сейчас их чуть чуть дополнили
30 Волшебник
 
01.04.24
22:37
(28) Вам не надо сверять счета плана счетов. Вам надо сверять остатки, а они в регистре бухгалтерии
31 Garykom
 
гуру
01.04.24
22:50
(28) Вот когда речь зашла про "эксельку" стало понятно что кое кто решает задачу через одно место
Не надо сравнивать в экселе
Надо написать некий АРМ в виде обработки для наглядного просмотра различий в 1С
32 Garykom
 
гуру
01.04.24
22:50
(31)+ И да
В этом случае задача прекрасно решается через циклы
33 SlipperNear
 
naïve
02.04.24
07:33
(31) Немного не понял, вы меня возможно тоже. В Эксель, или макет, выгружается из чистой типовой настроенной базы данные плана счетов, чтобы тупо где-то хранились. А в обработке уже, Я их получаю, и сравниваю.
34 Pprog151713
 
02.04.24
07:38
(0) Зачем переводить таблицу в строку? Чтобы далее работать со строкой. Это глупость какая -то.
35 SlipperNear
 
naïve
02.04.24
07:45
(34) в (25) ответил подробно. Искомая таблица имеет условно 10 колонок, в одной из которых хранятся данные с типом "Таблица значений", их нужно из таблицы значений вытащить, и добавить в строку к объекту
36 Pprog151713
 
02.04.24
07:59
(35) Так пробегись по строке.
37 Chai Nic
 
02.04.24
08:00
То, что вы хотите, не является "соединением таблиц". И вообще противно духу реляционной модели. Эксельство какое-то жуткое.
38 Pprog151713
 
02.04.24
07:59
И поменяй значение. )
39 АгентБезопасной Нацио
 
02.04.24
08:00
(0) "кто ясно мыслит, тот ясно излагает"©
Сформулируйте задачу так, чтобы по формулировке понял любой ваш коллега по офису - и у вас уже будет половина решения.
40 SlipperNear
 
naïve
02.04.24
13:54
Задача оказалась куда проще , использовал другой подход, сделал минут за 15, прямо в запросе.
41 Волшебник
 
02.04.24
14:21
(40) Покажите запрос и результат
42 SlipperNear
 
naïve
03.04.24
21:34
(41) Все гениальное, как говорится просто. Берём искомую таблицу, заносим во временную все поля, с условием "Номер строки = 1", делаем ещё две с условиями " Номер строки = 2" и "Номер строки = 3".
Результат соединяем с основной таблицей реквизитов плана счетов, левым соединением.
43 SlipperNear
 
naïve
03.04.24
21:34
Естественно, не забываем указать псевдонимы полей, чтобы не было дубликатов
44 Волшебник
 
03.04.24
21:35
(42) Покажите текст запроса, который получился. Мы заценим на красоту.
45 SlipperNear
 
naïve
03.04.24
21:38
(44) Завтра пришлю, на рабочем пк.
46 SlipperNear
 
naïve
03.04.24
21:38
(44) не знаю что там смотреть))) три таблицы идентичные, выбираются, просто с разным условием, а потом по ссылке соединяются с результирующей
47 Волшебник
 
03.04.24
21:39
(46) Нам просто интересно