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

09.09.19

Разработка - Запросы

Поставили задачу: "Получить в одно поле, всю таблицу товаров документа "Реализации товаров и услуг" через запятую". Поля таблицы товаров интересны заказчику были только наименование, количество и единица измерения. Конечно данный вариант проще сделать в обработке результата или в выражениях СКД, но моё мнение, что в запросе результат будет получен быстрее. Механизм не универсальный, в данном примере рассматривается таблица максимум с 20-ью строками и количество с типом Число (8,3). Комплексная Автоматизация 1.1

Добрый день.

Если кому-то потребуется некую табличную часть в запросе преобразовать в одно строковое поле, которое будет содержать перечисление всех строк таблицы, тогда вам будет интересно это прочитать. Не спорю, что возможно это "жесть".

Первая трудность - Нельзя в запросе преобразовать Число в Строку

В запросе 1С, нельзя сложить в одну строку значения типа Строка и Число, точнее нет возможности преобразовать Число в Строку. Благодаря данному сайту нашел отличное относительно универсальное решение - //infostart.ru/public/331805/ , единственное, что я добавил это убрал нули, т.е. приведенный запрос из 0,5 типа Числа(8,3) вернул бы строку 00000000,500.

Вторая трудность - Строки в столбцы

Трудность была относительной, опять же прочитав где-то в комментариях форума выше упомянутого автора ildarovich про необходимость использовать номер строки, решение пришло само собой. Но решение получилось так же не совсем универсальным. Если с числом ещё понятно, что оно определяется в конфигураторе, то ограничение на количество строк определить не возможно, товаров ведь может быть вбито хоть +100500... проверил, за шесть лет работы компании, максимальное количество строк в таблице товаров было 22 один раз, другие разы не превышало16 и крайне редко... Пришел к мнению, что пока сделаю на 20 строк.

Второй вариант запроса:

(Данный вариант был скорректирован и осмыслен после написания статьи, оптимизация, спасибо всем за советы :))

ВЫБРАТЬ
    РеализацияТоваровУслугТовары.Ссылка,
    РеализацияТоваровУслугТовары.Номенклатура,
    ПОДСТРОКА("0123456789", РеализацияТоваровУслугТовары.Количество / 100000 + 1, 1) 
    + ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РеализацияТоваровУслугТовары.Количество * 0.0006)) / 6 + 1, 1) 
    + ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РеализацияТоваровУслугТовары.Количество * 0.006)) / 6 + 1, 1) 
    + ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РеализацияТоваровУслугТовары.Количество * 0.06)) / 6 + 1, 1) 
    + ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РеализацияТоваровУслугТовары.Количество * 0.6)) / 6 + 1, 1) 
    + ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РеализацияТоваровУслугТовары.Количество * 6)) / 6 + 1, 1) 
    + "," 
    + ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РеализацияТоваровУслугТовары.Количество * 60)) / 6 + 1, 1) 
    + ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РеализацияТоваровУслугТовары.Количество * 600)) / 6 + 1, 1) 
    + ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РеализацияТоваровУслугТовары.Количество * 6000)) / 6 + 1, 1) КАК КоличествоСтрокой,
    РеализацияТоваровУслугТовары.Количество,
    РеализацияТоваровУслугТовары.ЕдиницаИзмерения,
    РеализацияТоваровУслугТовары.НомерСтроки
ПОМЕСТИТЬ ЧислоВСтроку
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ГДЕ
    РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
    И РеализацияТоваровУслугТовары.Ссылка.Проведен = ИСТИНА
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    ЧислоВСтроку.Ссылка,
    ЧислоВСтроку.Номенклатура.Наименование + " " + ВЫБОР
        КОГДА ЧислоВСтроку.КоличествоСтрокой = "000000,000"
            ТОГДА ""
        ИНАЧЕ ВЫБОР
                КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 1, 6) = "000000"
                    ТОГДА "0"
                КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 1, 5) = "00000"
                    ТОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 6, 1)
                КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 1, 4) = "0000"
                    ТОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 5, 2)
                КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 1, 3) = "000"
                    ТОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 4, 3)
                КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 1, 2) = "00"
                    ТОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 3, 4)
                КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 1, 1) = "0"
                    ТОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 2, 5)
                ИНАЧЕ ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 1, 6)
            КОНЕЦ + ВЫБОР
                КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 8, 3) = "000"
                    ТОГДА ""
                ИНАЧЕ "," + ВЫБОР
                        КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 9, 2) = "00"
                            ТОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 8, 1)
                        КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 10, 1) = "0"
                            ТОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 8, 2)
                        ИНАЧЕ ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 8, 3)
                    КОНЕЦ
            КОНЕЦ
    КОНЕЦ + " " + ЧислоВСтроку.ЕдиницаИзмерения.Наименование КАК НоменклатураКоличествоЕдиница,
    ЧислоВСтроку.Номенклатура,
    ЧислоВСтроку.Количество,
    ЧислоВСтроку.ЕдиницаИзмерения,
    ЧислоВСтроку.НомерСтроки
ПОМЕСТИТЬ НКЕ
ИЗ
    ЧислоВСтроку КАК ЧислоВСтроку
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    НКЕ.Ссылка,
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 1 ТОГДА НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) +
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 2 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 3 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 4 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 5 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 6 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 7 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 8 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 9 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 10 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 11 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 12 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 13 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) +
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 14 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 15 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 16 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 17 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) +
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 18 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 19 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 20 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 21 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) +
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 22 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 23 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 24 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
    МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 25 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) +
    МАКСИМУМ(".") КАК ТаблицаТоварыВСтроку
ИЗ
    НКЕ КАК НКЕ

СГРУППИРОВАТЬ ПО
    НКЕ.Ссылка

 

Первый вариант запроса:

Магия жести

 

запросы табличная часть таблица

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    122113    670    389    

714

Для чего используют конструкцию запроса "ГДЕ ЛОЖЬ" в СКД на примере конфигурации 1С:ERP

Запросы СКД Платформа 1С v8.3 Запросы Система компоновки данных 1С:ERP Управление предприятием 2 Бесплатно (free)

В типовых конфигурациях разработчики компании 1С иногда используют в отчетах, построенных на СКД, такую конструкцию, как "ГДЕ ЛОЖЬ". Такая конструкция говорит о том, что данные в запросе не будут получены совсем. Для чего же нужен тогда запрос?

13.02.2024    5746    KawaNoNeko    23    

23

Набор-объект для СКД по тексту или запросу

Запросы СКД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Есть список полей в виде текста, или запрос - закидываем в набор СКД.

1 стартмани

31.01.2024    2000    2    Yashazz    0    

29

Запрос 1С copilot

Инструментарий разработчика Запросы Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Пишем на человеческом языке, что нам надо, и получаем текст запроса на языке 1С. Используются большие языковые модели (LLM GPT) от OpenAI или Яндекс на выбор.

5 стартмани

15.01.2024    6284    31    mkalimulin    25    

50

PrintWizard: поддержка представлений ЗУП в конструкторе

Инструментарий разработчика Запросы Платформа 1С v8.3 Бесплатно (free)

Одной из интересных задач, стоящих в процессе разработки, была поддержка механизма представлений в ЗУП. Но не просто возможность исполнения запросов с ними. Основная проблема была в том, чтобы с ними было удобно работать, а именно: создавать, модифицировать и отлаживать. Кратко о том, что в итоге получилось...

14.12.2023    1742    vandalsvq    7    

29

Объектная модель запроса "Схема запроса" 2

Запросы Платформа 1С v8.3 Запросы Конфигурации 1cv8 Бесплатно (free)

Далеко уже не новый тип данных "Схема запроса". Статья о том, как использовать его "попроще". Примеры создания текста запроса с нуля и изменение имеющегося запроса.

06.12.2023    5388    user1923546    26    

43

Начните уже использовать хранилище запросов

HighLoad оптимизация Запросы

Очень немногие из тех, кто занимается поддержкой MS SQL, работают с хранилищем запросов. А ведь хранилище запросов – это очень удобный, мощный и, главное, бесплатный инструмент, позволяющий быстро найти и локализовать проблему производительности и потребления ресурсов запросами. В статье расскажем о том, как использовать хранилище запросов в MS SQL и какие плюсы и минусы у него есть.

11.10.2023    16181    skovpin_sa    14    

98
Отзывы
1. ixijixi 1775 09.06.17 11:03 Сейчас в теме
Что-то правда реальная жесть... Не проще вот так было?
МАКСИМУМ(ВЫБОР ТЧ.НомерСтроки КОГДА 1 ТОГДА ТЧ.Номенклатура ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР ТЧ.НомерСтроки КОГДА 2 ТОГДА "; " + ТЧ.Номенклатура ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР ТЧ.НомерСтроки КОГДА 3 ТОГДА "; " + ТЧ.Номенклатура ИНАЧЕ "" КОНЕЦ) +
	МАКСИМУМ(ВЫБОР ТЧ.НомерСтроки КОГДА 4 ТОГДА "; " + ТЧ.Номенклатура ИНАЧЕ "" КОНЕЦ) КАК Номенклатура
user1316759; tolyan_ekb; AleksKol; shalimski; psih12; rpgshnik; +6 Ответить
2. Dream_kz 129 09.06.17 11:09 Сейчас в теме
ВычислитьВыражениеСГруппировкойМассив() - проще и быстрее.
Interrupted; echo77; +2 Ответить
17. rpgshnik 3631 15.06.17 10:49 Сейчас в теме
(1) Сегодня выдалась минутка и решил оптимизировать)))
Вам конечно отдельное спасибо, не знал о такой возможности использовать "Максимум".

Запрос вышел более лаконичный, так же некоторые другие моменты сократил:

ВЫБРАТЬ
	РеализацияТоваровУслугТовары.Ссылка,
	РеализацияТоваровУслугТовары.Номенклатура,
	ПОДСТРОКА("0123456789", РеализацияТоваровУслугТовары.Количество / 100000 + 1, 1) 
	+ ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РеализацияТоваровУслугТовары.Количество * 0.0006)) / 6 + 1, 1) 
	+ ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РеализацияТоваровУслугТовары.Количество * 0.006)) / 6 + 1, 1) 
	+ ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РеализацияТоваровУслугТовары.Количество * 0.06)) / 6 + 1, 1) 
	+ ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РеализацияТоваровУслугТовары.Количество * 0.6)) / 6 + 1, 1) 
	+ ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РеализацияТоваровУслугТовары.Количество * 6)) / 6 + 1, 1) 
	+ "," 
	+ ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РеализацияТоваровУслугТовары.Количество * 60)) / 6 + 1, 1) 
	+ ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РеализацияТоваровУслугТовары.Количество * 600)) / 6 + 1, 1) 
	+ ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РеализацияТоваровУслугТовары.Количество * 6000)) / 6 + 1, 1) КАК КоличествоСтрокой,
	РеализацияТоваровУслугТовары.Количество,
	РеализацияТоваровУслугТовары.ЕдиницаИзмерения,
	РеализацияТоваровУслугТовары.НомерСтроки
ПОМЕСТИТЬ ЧислоВСтроку
ИЗ
	Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ГДЕ
	РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
	И РеализацияТоваровУслугТовары.Ссылка.Проведен = ИСТИНА
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ЧислоВСтроку.Ссылка,
	ЧислоВСтроку.Номенклатура.Наименование + " " + ВЫБОР
		КОГДА ЧислоВСтроку.КоличествоСтрокой = "000000,000"
			ТОГДА ""
		ИНАЧЕ ВЫБОР
				КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 1, 6) = "000000"
					ТОГДА "0"
				КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 1, 5) = "00000"
					ТОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 6, 1)
				КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 1, 4) = "0000"
					ТОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 5, 2)
				КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 1, 3) = "000"
					ТОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 4, 3)
				КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 1, 2) = "00"
					ТОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 3, 4)
				КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 1, 1) = "0"
					ТОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 2, 5)
				ИНАЧЕ ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 1, 6)
			КОНЕЦ + ВЫБОР
				КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 8, 3) = "000"
					ТОГДА ""
				ИНАЧЕ "," + ВЫБОР
						КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 9, 2) = "00"
							ТОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 8, 1)
						КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 10, 1) = "0"
							ТОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 8, 2)
						ИНАЧЕ ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 8, 3)
					КОНЕЦ
			КОНЕЦ
	КОНЕЦ + " " + ЧислоВСтроку.ЕдиницаИзмерения.Наименование КАК НоменклатураКоличествоЕдиница,
	ЧислоВСтроку.Номенклатура,
	ЧислоВСтроку.Количество,
	ЧислоВСтроку.ЕдиницаИзмерения,
	ЧислоВСтроку.НомерСтроки
ПОМЕСТИТЬ НКЕ
ИЗ
	ЧислоВСтроку КАК ЧислоВСтроку
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	НКЕ.Ссылка,
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 1 ТОГДА НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) +
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 2 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 3 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 4 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 5 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 6 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 7 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 8 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 9 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 10 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 11 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 12 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 13 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) +
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 14 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 15 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 16 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 17 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) +
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 18 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 19 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 20 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 21 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) +
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 22 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 23 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 24 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 25 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) +
    МАКСИМУМ(".") КАК ТаблицаТоварыВСтроку
ИЗ
	НКЕ КАК НКЕ

СГРУППИРОВАТЬ ПО
	НКЕ.Ссылка
Показать
Bukaska; ixijixi; +2 Ответить
Остальные комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. ixijixi 1775 09.06.17 11:03 Сейчас в теме
Что-то правда реальная жесть... Не проще вот так было?
МАКСИМУМ(ВЫБОР ТЧ.НомерСтроки КОГДА 1 ТОГДА ТЧ.Номенклатура ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР ТЧ.НомерСтроки КОГДА 2 ТОГДА "; " + ТЧ.Номенклатура ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР ТЧ.НомерСтроки КОГДА 3 ТОГДА "; " + ТЧ.Номенклатура ИНАЧЕ "" КОНЕЦ) +
	МАКСИМУМ(ВЫБОР ТЧ.НомерСтроки КОГДА 4 ТОГДА "; " + ТЧ.Номенклатура ИНАЧЕ "" КОНЕЦ) КАК Номенклатура
user1316759; tolyan_ekb; AleksKol; shalimski; psih12; rpgshnik; +6 Ответить
3. rpgshnik 3631 09.06.17 11:22 Сейчас в теме
17. rpgshnik 3631 15.06.17 10:49 Сейчас в теме
(1) Сегодня выдалась минутка и решил оптимизировать)))
Вам конечно отдельное спасибо, не знал о такой возможности использовать "Максимум".

Запрос вышел более лаконичный, так же некоторые другие моменты сократил:

ВЫБРАТЬ
	РеализацияТоваровУслугТовары.Ссылка,
	РеализацияТоваровУслугТовары.Номенклатура,
	ПОДСТРОКА("0123456789", РеализацияТоваровУслугТовары.Количество / 100000 + 1, 1) 
	+ ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РеализацияТоваровУслугТовары.Количество * 0.0006)) / 6 + 1, 1) 
	+ ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РеализацияТоваровУслугТовары.Количество * 0.006)) / 6 + 1, 1) 
	+ ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РеализацияТоваровУслугТовары.Количество * 0.06)) / 6 + 1, 1) 
	+ ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РеализацияТоваровУслугТовары.Количество * 0.6)) / 6 + 1, 1) 
	+ ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РеализацияТоваровУслугТовары.Количество * 6)) / 6 + 1, 1) 
	+ "," 
	+ ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РеализацияТоваровУслугТовары.Количество * 60)) / 6 + 1, 1) 
	+ ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РеализацияТоваровУслугТовары.Количество * 600)) / 6 + 1, 1) 
	+ ПОДСТРОКА("0123456789", СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1, 1, 1), СЕКУНДА, РеализацияТоваровУслугТовары.Количество * 6000)) / 6 + 1, 1) КАК КоличествоСтрокой,
	РеализацияТоваровУслугТовары.Количество,
	РеализацияТоваровУслугТовары.ЕдиницаИзмерения,
	РеализацияТоваровУслугТовары.НомерСтроки
ПОМЕСТИТЬ ЧислоВСтроку
ИЗ
	Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ГДЕ
	РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
	И РеализацияТоваровУслугТовары.Ссылка.Проведен = ИСТИНА
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ЧислоВСтроку.Ссылка,
	ЧислоВСтроку.Номенклатура.Наименование + " " + ВЫБОР
		КОГДА ЧислоВСтроку.КоличествоСтрокой = "000000,000"
			ТОГДА ""
		ИНАЧЕ ВЫБОР
				КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 1, 6) = "000000"
					ТОГДА "0"
				КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 1, 5) = "00000"
					ТОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 6, 1)
				КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 1, 4) = "0000"
					ТОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 5, 2)
				КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 1, 3) = "000"
					ТОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 4, 3)
				КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 1, 2) = "00"
					ТОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 3, 4)
				КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 1, 1) = "0"
					ТОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 2, 5)
				ИНАЧЕ ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 1, 6)
			КОНЕЦ + ВЫБОР
				КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 8, 3) = "000"
					ТОГДА ""
				ИНАЧЕ "," + ВЫБОР
						КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 9, 2) = "00"
							ТОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 8, 1)
						КОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 10, 1) = "0"
							ТОГДА ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 8, 2)
						ИНАЧЕ ПОДСТРОКА(ЧислоВСтроку.КоличествоСтрокой, 8, 3)
					КОНЕЦ
			КОНЕЦ
	КОНЕЦ + " " + ЧислоВСтроку.ЕдиницаИзмерения.Наименование КАК НоменклатураКоличествоЕдиница,
	ЧислоВСтроку.Номенклатура,
	ЧислоВСтроку.Количество,
	ЧислоВСтроку.ЕдиницаИзмерения,
	ЧислоВСтроку.НомерСтроки
ПОМЕСТИТЬ НКЕ
ИЗ
	ЧислоВСтроку КАК ЧислоВСтроку
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	НКЕ.Ссылка,
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 1 ТОГДА НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) +
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 2 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 3 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 4 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 5 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 6 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 7 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 8 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 9 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 10 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 11 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 12 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 13 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) +
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 14 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 15 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 16 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 17 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) +
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 18 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 19 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 20 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 21 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) +
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 22 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 23 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 24 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) + 
	МАКСИМУМ(ВЫБОР НКЕ.НомерСтроки КОГДА 25 ТОГДА "; " + НКЕ.НоменклатураКоличествоЕдиница ИНАЧЕ "" КОНЕЦ) +
    МАКСИМУМ(".") КАК ТаблицаТоварыВСтроку
ИЗ
	НКЕ КАК НКЕ

СГРУППИРОВАТЬ ПО
	НКЕ.Ссылка
Показать
Bukaska; ixijixi; +2 Ответить
18. kasper076 101 15.06.17 11:53 Сейчас в теме
(1) При разрядности числа 10 знаков, 3 после запятой
ПОДСТРОКА(Ц, СЕКУНДА(ДОБАВИТЬКДАТЕ(О, СЕКУНДА, &Число * 6000)) / 6 + 1, 1)
выдает пустую строку.
Из-за того, что получается слишком большое число &Число * 6000.
19. rpgshnik 3631 19.06.17 12:23 Сейчас в теме
(18) вы правы, по всей видимости потолок для числа (7,3) из-за предела дат в 1С... до 3999 года
В данному случае это выходит крайне заоблачное количество и моим задачам вполне хватает
20. kasper076 101 19.06.17 14:37 Сейчас в теме
(19) Тут объяснили, как решит проблему.
rpgshnik; +1 Ответить
22. rpgshnik 3631 20.06.17 03:53 Сейчас в теме
2. Dream_kz 129 09.06.17 11:09 Сейчас в теме
ВычислитьВыражениеСГруппировкойМассив() - проще и быстрее.
Interrupted; echo77; +2 Ответить
4. ixijixi 1775 09.06.17 12:01 Сейчас в теме
(2) Ну так ведь автор оговорился, что хочет решить задачу чистым запросом.
rpgshnik; +1 Ответить
5. Dream_kz 129 09.06.17 12:06 Сейчас в теме
(4) Мотивируясь, что будет быстрее

что в запросе результат будет получен быстрее
6. alex-l19041 8 09.06.17 12:20 Сейчас в теме
(5) такой (!) запрос... будет ли быстрее ?
8. Dream_kz 129 09.06.17 12:22 Сейчас в теме
(6) Это мнение автора, не моё)
7. Serj1C 483 09.06.17 12:20 Сейчас в теме
Для 20 строк разница во времени не будет заметна. А для 1000, этот алгоритм уже не отработает.
Многие бы поспорили с вашим мнением, что запросом будет быстрее. А сколько времени вы отлаживали этот запрос? Это время гораздо дороже стоит...
10. rpgshnik 3631 09.06.17 16:56 Сейчас в теме
(7) я больше времени искал как число сделать в строку. Отладка была равна скорости набора текста.

Выражениями в скд делал, здесь больше вопрос и интерес стоял к реализации в запросе разом, давно думал про такое. Некая попытка лжецикла...
11. Serj1C 483 11.06.17 10:00 Сейчас в теме
(10) вместо одного цикла на уровне приложения 1С вы породили 20+ циклов на уровне СУБД...
dj_serega; корум; kiruha; wolfsoft; dnikolaev; +5 Ответить
12. kiruha 388 14.06.17 16:27 Сейчас в теме
Бедный майкрософт . Пишут
-- Syntax for SQL Server and Azure SQL Database

WHILE Boolean_expression
{ sql_statement | statement_block | BREAK | CONTINUE }

видать не знают что правильные программисты пишут все в запросе
rpgshnik; +1 Ответить
13. v3rter 14.06.17 17:47 Сейчас в теме
Высокое искусство, однако. Эстетично, непрактично, но звездану за искусство )
rpgshnik; +1 Ответить
14. lvictor58 135 14.06.17 21:38 Сейчас в теме
Или я в написании запросов полный профан, или автор что-то курнул, чтобы сотворить подобное...
dj_serega; rpgshnik; DrAku1a; +3 Ответить
15. DrAku1a 1679 15.06.17 02:59 Сейчас в теме
(14) Однозначно курнул. Но всё-же звездану ему.
dj_serega; rpgshnik; +2 Ответить
16. mort64ram 24 15.06.17 06:17 Сейчас в теме
Плюс за картинку публикации, проорал
rpgshnik; +1 Ответить
21. пользователь 19.06.17 16:10
Сообщение было скрыто модератором.
...
23. пользователь 21.06.17 10:03
Сообщение было скрыто модератором.
...
24. user753110 21.06.17 12:40 Сейчас в теме
Здравствуйте! Очень рад что откликнулись на мой вопрос. Спасибо за вашу помощь очень вам благодарен
25. vano-ekt 123 04.08.17 13:43 Сейчас в теме
плюс за Сашу :-D
за жесть - воздержусь
dj_serega; rpgshnik; +2 Ответить
29. dj_serega 390 09.10.17 15:24 Сейчас в теме
26. German_Tagil 42 10.09.17 20:48 Сейчас в теме
27. Светлый ум 406 08.10.17 11:44 Сейчас в теме
Оформление статьи достойно звезды
rpgshnik; +1 Ответить
28. rpgshnik 3631 08.10.17 11:45 Сейчас в теме
30. nvv1970 22.10.17 12:15 Сейчас в теме
Инфостарт изобилует большим количеством решений, где алгоритм ради алгортима. Есть масса коротких и простых решений, но вот на радость публике решение с помощью серпа и молота... потому что это возможно. Ну да так тоже можно. Но зачем???? ДАЖЕ если вы выиграете какие-то наносекунды, то баланс между производительностью и сложностью (или даже возможностью) модификации/сопровождения кода не соблюден. При первой же возможности все будет закомменчено.
Почему было не решить эту задачу с помощью СКД? Можно и в строку преобразовать и в массив загнать. Все крайне просто и элегантно. И кода, кроме программного выполнения самого СКД, считай нет. Все в схеме с минимумом настроек.
Автор в заголовке пишет, что то же это понимает, но к чему такие публикации, какая польза? Нужен отдельный раздел "смотрите как я умею".
Tyler Durden; IVC_goal; +2 Ответить
31. rpgshnik 3631 23.10.17 09:11 Сейчас в теме
32. DenisCh 23.10.17 09:22 Сейчас в теме
Я бы сделал ещё проще.... Строку в документ и при записи туда формировать строку в нужном виде ))))
ILNIK; Vova_Di; +2 Ответить
Оставьте свое сообщение