|
2 / 2 / 2
Регистрация: 08.06.2014
Сообщений: 91
|
|
Объединение двух колонок в запросе в одну16.12.2025, 08:14. Показов 2642. Ответов 38
Метки нет (Все метки)
Друзья и коллеги, всем привет! Столкнулся со следующей проблемой, думаю не очень сложной для тех кто сталкивался с этим, но я немного запнулся на ней.
Итак, есть задача. В 1С УТ 8.3 вывести общий журнал операций включающий в себя несколько типов документов: 1. Списание безналичных денежных средств. 2. Поступление безналичных денежных средств. 3. Документы закупки. 4. Склад - Внутренние документы. 5. Документы продажи. 6. Заказы клиентов. Причем последние два в разрезе определенных пользователей в данном случае авторов документов. Сразу оговорюсь, делаю все постепенно, по этому пока в запросе только одна таблица. Вопрос достаточно простой, в таблице списание безналичных средств есть как контрагенты юридические лица, так подотчетники Требуется, чтобы поля «СписаниеБезналичныхДенежныхСредств.Подо тчетноеЛицо» и «СписаниеБезналичныхДенежныхСредств.Конт рагент.НаименованиеПолное» попадали в одну колонку «Контрагент». Естественно по порядку в соответствие с теми полями к которым имеют отношения. Не получается это сделать. Пытался по разному, через «Объединение», но там приходилось делать второй точно такой же запрос, исключая только поле «СписаниеБезналичныхДенежныхСредств.Конт рагент.НаименованиеПолное» и все поля объединять. На выходе получаю какую-то абракадабру, половина столбцов пустая, в других заполнено только одно или несколько значений, остальные пустые. Каким образом это можно реализовать? Скриншоты все прикладываю. Два скриншота кода и формы обработки. Также приложены скриншоты настроек в конструкторе запроса, всех разделов, которые затронуты на данный момент.
0
|
|
| 16.12.2025, 08:14 | |
|
Ответы с готовыми решениями:
38
Как получить значение строки (состоящей из нескольких или одной колонок) таблицы на форме 1С:Предприятие 8.3?
|
|
Модератор
|
|
| 17.12.2025, 16:26 | |
|
понял. ну тогда +- норм. бояться "больших" запросов не надо. тем более таких, который Вы привели. никаких там соединений левых внутренних с неведомой зверушкой нет. перечисляем необходимые поля, на закладке объединение если механизм сам не связал - помогаем ему. всё.
1
|
|
|
2 / 2 / 2
Регистрация: 08.06.2014
Сообщений: 91
|
|
| 17.12.2025, 17:00 [ТС] | |
|
А ничего, что столбцов в таблице, где идет объединение может быть и 20 и 30? У меня их 10 и уже плохо читаются наименования.
0
|
|
|
7175 / 1777 / 648
Регистрация: 16.01.2015
Сообщений: 7,346
|
||
| 17.12.2025, 17:42 | ||
|
Берите данные из регистров а не из документов. Например Движение денежных средств даст и приходы и расходы по расч счетам, а Выручка и сбестоимость продаж учтет все документы прихода и расхода по товарам и т.д. В итоге получите запрос к 4-5 регистрам максимум (может и меньше) и выбор из виртуальных таблиц, что работает на порядок быстрей. Хотя и такой вариант при большом периоде и количества доков, может нехило подвесить систему. Не по теме: ЗЫ Как-то выполнял работу фирме на ЕРП, у которых отчет по валовой прибыли за месяц выполнялся стандартно более суток. Ваш запрос объемнее
2
|
||
|
Модератор
|
|
| 17.12.2025, 18:55 | |
|
дополню коллегу polax . я бы посмотрел на движения всех вышеперечисленных документов и определился с регистрами, по которым они делают движения. и да, брал бы оттуда. но если Вы утверждаете, что никаких движений не делается (а вы утверждаете?) то иногда в редких случаях можно брать из документов. но всякие там суммы и контрагенты должны быть не в документе, ибо такова философия 1С
1
|
|
|
2 / 2 / 2
Регистрация: 08.06.2014
Сообщений: 91
|
||||||
| 18.12.2025, 06:58 [ТС] | ||||||
|
Если я правильно понял, то если много документов, то лучше создать дополнительный регистр сведений через расширение. Затем делаем его подчиненным регистраторам нужных мне документов, к примеру "Реализация товаров и услуг", "Поступление товаров" и т.д. Документы тоже добавляем в расширение и там прописываем алгоритм регистрации документа в регистр, при проведении.
Тогда не будет запрашиваться много различных документов, обращения будут к одному регистру. И не нужно будет городить огород из запросов. Соответственно программа будет работать быстрее, как Вы мне и сказали. Еще раз благодарю за советы и объяснения! P.S. Обычно алгоритм регистрации какого-либо документа в регистр делаю сначала через конструктор, потом если требуется редактирую уже руками. Добавлено через 1 час 20 минут Попутно возник еще один вопрос. Сразу оговорюсь, что если выполнять несколько запросов последовательно и выгружать данные во временную таблицу, то каждый следующий запрос затрет результат предыдущего. Равно каки если их выгружать последовательно в табличную часть документа. Такимс образом, мне понадобился еще документ добавить в запрос - "Таможенная декларация". Чтобы не делать уже совсем много запросов в одном, я сделал отдельный запрос на получения данных по этому документу в табличную часть обработки. Все поля заполняются, но почему-то поле "ТипДокумента" не заполняется, хоть тресни. Вот код:
P.S. Какой поставить тэг на код, чтобы он был виден лучше? А то мне правили сообщения, указав на это, а я не пойму какой конкретно тэк ставить?
0
|
||||||
|
Модератор
|
||||||
| 18.12.2025, 08:33 | ||||||
|
возможно потому, что ЗаполнитьЗначенияСвойств заполняет только то, что совпадает по имени. сам он догадаться, что в колонку на форме под именем "контрагент" надо запихнуть "ссылка" оно не может
и в таком случае не надо обходить выборку ещё раз и тратить драгоценное время
0
|
||||||
|
2 / 2 / 2
Регистрация: 08.06.2014
Сообщений: 91
|
|
| 18.12.2025, 08:48 [ТС] | |
|
Так с авторами то все нормально, не приходит ссылка в столбец "ТипДокумента". Сейчас по пробовал еще с Заказом клиента. Результат - тоже самое. Колонка "ТипДокумента" - пустая. Остальные все заполнены. При этом первый запрос отрабатывает все нормально. Почему так? Не могу понять, все везде правильно, ссылка не приходит? При этом в отладке все попадает во "ВременнаяТаблица".
Если делать условие, как Вы предлагаете, мне в каждом запросе по отдельности надо это прописывать. А их у меня двенадцать штук. А так только один раз в коде. P.S. Я могу конечно пробежаться циклом по таблице и заполнить эту колонку, но не вижу смысла огород городить, когда есть штатный механизм с Псевдонимами.
0
|
|
|
Модератор
|
|
| 18.12.2025, 09:05 | |
|
мы на разных языках говорим.
если вы настаиваете на 12-ти запросах, то необходимо это вынести в функцию передавать, например, текст запроса. получать таблицу значений или даже там её и заполнять просто неправильно получать данные из запроса, а потом опять обходить результат и делать отбор. запрос для того и запрос, чтобы можно было группировать, отбирать, соединять. а построитель сам разберётся, как ему лучше оптимизировать это
0
|
|
|
2 / 2 / 2
Регистрация: 08.06.2014
Сообщений: 91
|
|
| 18.12.2025, 09:21 [ТС] | |
|
Да, я планирую вынести это в отдельную функцию и там обработать. Вопрос, почему не заполняется "ТипДокумента" со второго запроса?
Добавлено через 9 минут Причем, если я эту колонку копирую из второй таблицы, тогда она заполняется из второго запроса, который туда выгружается, но с первого опять же не встает. Заколдованный круг какой-то.
0
|
|
|
Модератор
|
||||||
| 18.12.2025, 10:02 | ||||||
|
если настаиваете и не можете разобраться (такое бывает, это не наезд), то можно написать так, дополнив код:
п.с. всё можно отладить, остановившись отладчиком и посмотрев, что хранится в нов строке и в строке
1
|
||||||
|
2 / 2 / 2
Регистрация: 08.06.2014
Сообщений: 91
|
||||||
| 18.12.2025, 11:16 [ТС] | ||||||
|
Все знать не возможно и у всех нас бывают свои вопросы и не понимание каких-то аспектов разных наук, в данном случае встроенного языка 1С. Это совершенно нормально, по этому никакого наезда нет и быть не может.
Я в принципе Вам всем тут благодарен, потому что Вы отзываетесь и пытаетесь помочь! И спасибо за отличный ресурс (Этот Форум), который позволяет это сделать!Теперь к нашему вопросу. Я тоже грешил на название, даже пересоздавал реквизит в табличной части и программа мне сразу писала, что реквизит "ТипДокумента" используется в коде и давала мне две ссылки на первый запрос и второй. Т.е. тут все хорошо. Ваш вариант по пробовал - тоже самое. Посмотрел отладчиком эту часть кода:
0
|
||||||
|
Модератор
|
||
| 18.12.2025, 11:59 | ||
|
а тут вы получаете овощи и говорите - запихни в ящик с фруктами картошку ессно, что она туда не пихается.
0
|
||
|
2 / 2 / 2
Регистрация: 08.06.2014
Сообщений: 91
|
|
| 18.12.2025, 13:56 [ТС] | |
|
Так все остальное то попадает без проблем. Колонок то в переменной "ВременнаяТаблица" больше чем в "ВременнаяТаблица2", но те что есть во второй полностью совпадают с первой. Это я к тому, что колонки все копируются с первой в переменную "НоваяВременнаяТаблица".
И все остальное приходит - еще пять колонок. Добавлено через 1 час 35 минут Да, хотел отменить еще один момент, относительно Регистра Сведений. Да, его можно создать, но чтобы документы являющиеся регистраторами этого регистра, туда попадали необходимо их все перепровести. А это не реально так взять и к примеру за год перепровести. Все полетит, причем в двух базах, в УТ и Бухгалтерии, поскольку у нас связка. Другой вопрос, это можно сделать на будущее и потихоньку, своим чередом они будут туда попадать.
0
|
|
|
7175 / 1777 / 648
Регистрация: 16.01.2015
Сообщений: 7,346
|
||
| 18.12.2025, 14:01 | ||
|
0
|
||
|
2 / 2 / 2
Регистрация: 08.06.2014
Сообщений: 91
|
|
| 19.12.2025, 10:27 [ТС] | |
|
Запрос все из регистра сведений "Реестр документов", там есть все. Теперь код стал гораздо меньше и работать стало быстрее. Все оптимизировал и разбил все по функциям и процедурам. Спасибо большое!
0
|
|
| 19.12.2025, 11:52 | |
|
Не по теме: ура. наконец-то. молодец. мои поздравления. половина работы сделана. теперь осталось уйти от процедур и функций и сразу получать из запроса.
0
|
|
|
2 / 2 / 2
Регистрация: 08.06.2014
Сообщений: 91
|
|
| 19.12.2025, 12:27 [ТС] | |
|
Да, мне знакомый программист объяснил, что лучше все условия делать в запросе. (Как и Вы выше). А если запросов несколько и сделаны объединения полей, тогда все выгружается все во временную таблицу (классическая временная таблица в запросе) и там настраивается условие. Тогда не надо делать отдельное условие в каждом запросе. Еще он мне показал, как это делается через СКД, чтобы было еще проще.
1
|
|
| 19.12.2025, 12:27 | |
|
Сделать запрос на объединение двух регистров накопления Объединение двух запросов в отчете Объединение две формы в одном окне Объединение двух процедур в одну Как зафиксировать область просмотра колонок(1c7.7), т.е. как закрепить столбец у справочника... Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|