1С запрос соединить две строки

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

Соединение в запросах в языке 1С 8.3, 8.2 (в примерах)

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю).

Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:

Цитата из справки 1С:
"По умолчанию при объединении запросов полностью одинаковые строки в результате запроса, сформированные РАЗНЫМИ запросами, заменяются одной. Если требуется, чтобы были оставлены разные строки, необходимо указать ключевое слово ВСЕ."

Конструкция ОБЪЕДИНИТЬ и ОБЪЕДИНИТЬ ВСЕ объединяет два результата запроса в один.
Пример запроса для вывода всех документов Приход и Расход:
Код 1C v 8.х

Конструкция ОБЪЕДИНИТЬ — соединяет два результата и группирует повторяющие строки,
А конструкция ОБЪЕДИНИТЬ ВСЕ — НЕ группирует автоматически строки результата.

Подробнее:
Порядок следования определяется порядком в списке полей в предложении ВЫБРАТЬ.
Количество полей можно изменить добавлением пустого фиктивного поля:
Код 1C v 8.х

До некоторой степени, операции объединения и соединения прямо противоположны: при соединении у источников обязательно должен быть ключ (при объединении наличие ключа абсолютно не имеет значения), при соединении количество полей может быть произвольным (при объединении количество нолей должно совпадать и поля должны следовать в одном и то же порядке), при соединении природа данных в источниках может быть различна (при объединении связываются однотипные данные).

Читайте также:  Как делать воспоминания на iphone

Смысл механизма
При объединении, фактически, выполняются два запроса, а потом их результаты объединяются в один общий. Конструкция ОБЪЕДИНИТЬ ВСЕ оставит в итоговом запросе только неповторяющиеся записи (то есть, результат её действия аналогичен использованию фразы РАЗЛИЧНЫЕ после выполнения объединения).

Назначение псевдонимов, упорядочивание и расчёт итогов выполняются после объединения и действуют на результирующую таблицу.

Нужно сделать строку из полей: поле1+поле2+поле3. Но тип значений в полях не везде "строка"

Рассмотрим все варианты как соединить строку с другими типами:

1 вариант нужно просто преобразовать число в строку в запросе

используйте Представление(Ваше_числовое_поле) — только это все равно не строка т.к. со строкой не сможете далее объединить.

Плохо то, что все равно дальше объединить со строкой не получится. Всегда будет ошибка.

Почитав немного темы с теми же проблемами не увидел ничего внятного кроме извращений.

И реализовал так:

В запросе вообще не трогаем поля. Для объединения используем раздел вычисляемые поля. Все становится очень просто и понятно.

Вот и все решение. Просто форматируем исходный тип данных в строку, можно даже использовать "Формат" чтобы сделать нужный вид(например убрать разделители как в примере).

Оцените статью
Добавить комментарий

Adblock
detector