|   |   | 
| 
 | Строковое представление списка значений | ☑ | ||
|---|---|---|---|---|
| 0
    
        Гипервизор 12.08.15✎ 23:35 | 
        Дано: ТЗ как входной параметр, какие колонки-заранее не знаем, в строках возможны дубли. Пробуем от них избавиться:
 лМойСписок = Новый СписокЗначений;
Однако это работает когда СтрДлина(лКолонка.Имя) < 26И тогда может получиться, например, такое: "Номенклатура, ХарактеристикаНоменклатур..., ЕдиницаИзмерения" Собственно, добрался до вопроса: это такое ограничение платформы в 25 символов для представления? 26-й символ не осилить, но "..." - вполне. Где-то это документировано? | |||
| 1
    
        RomanYS 13.08.15✎ 00:16 | 
        задокументировано:
 "Преобразование к строке значений остальных типов производится по мере возможности и обычно содержит читабельное представление значения." | |||
| 2
    
        Провинциальный 1сник 13.08.15✎ 04:04 | 
        Завязываться на представление - плохой стиль программирования.     | |||
| 3
    
        Гипервизор 13.08.15✎ 21:10 | 
        (2) ОК, рыдаю по своему плохому стилю..
 Но может вами здесь был предложен образчик решения задачи высоким штилем? Надо же, нет. Тогда может вами был дан ответ по существу вопроса? И снова нет. Понятно, ответ ваш из серии "пришло в голову и распирало". | |||
| 4
    
        ДенисЧ 13.08.15✎ 21:11 | 
        ПРишло в голову и распёрло (как по заказу)
 А занафейхоа вообще список значений представлять в строковом виде? | |||
| 5
    
        Defender aka LINN 13.08.15✎ 21:14 | 
        (3) А может где-то была озвучена острая необходимость такого представления?     | |||
| 6
    
        Dен 13.08.15✎ 22:20 | 
        (0) Вот, не Ваше?:
 https://partners.v8.1c.ru/forum/topic/1391438 Господа, Вы когда нибудь задумываетесь нафига придумали типы данных? Нафига их компилятары по максимуму потыются отслеживать, проверять, выдавать предупреждения, ошибки? Что использовать неяное преобразование типов - это поиск проблем на свою голову. | |||
| 7
    
        mistеr 13.08.15✎ 22:36 | 
        (0) Условия задачи сразу выдают быдлокодера. В консерватории править нужно. То есть подавать на вход нормальные данные.     | |||
| 8
    
        Dен 13.08.15✎ 22:46 | 
        Все документировано, выдержка из синтакс-помощника:
 Строка (String) Синтаксис: Строка(<Значение>) Параметры: <Значение> (обязательный) Тип: Произвольный. Исходное значение. Возвращаемое значение: Тип: Строка. Полученное значение. Описание: Преобразует полученный параметр в значение типа Строка. При преобразовании к строке числа формируется его полное представление в стандартном виде, соответствующем национальным установкам. Преобразование значений типа Булево зависит от национальных установок и содержит строковое представление этих значений. При преобразовании к строке даты формируется ее полное представление в стандартном читабельном виде, соответствующем национальным установкам. Преобразование к строке значений остальных типов производится по мере возможности и обычно содержит читабельное представление значения. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). Пример: Сообщить(Строка(Количество) + " единиц товара на складе не обнаружено"); "Преобразование к строке значений остальных типов производится по мере возможности и обычно содержит читабельное представление значения." | |||
| 9
    
        Гипервизор 18.08.15✎ 20:12 | 
        (7) Уважаемый НЕбыдлокодер!
 Я рад за вас, если вы всегда можете отфутболить задачу с пометкой "Как челобитную царю подаете? Подать мне кошерные данные!". Увы, мне часто приходится работать с тем, что есть. | |||
| 10
    
        Ненавижу 1С гуру 18.08.15✎ 20:22 | 
        а если так:
 лПредставлениеСписка = ""; Для Каждого лКолонка Из лВходнаяТЗ.Колонки Цикл лПредставлениеСписка = ?(ЗначениеЗаполнено(лПредставлениеСписка,",","")); КонецЦикла; лВходнаяТЗ.Свернуть(лПредставлениеСписка); | |||
| 11
    
        Ненавижу 1С гуру 18.08.15✎ 20:23 | 
        +(10) точнее так:
 лПредставлениеСписка = лПредставлениеСписка+?(ЗначениеЗаполнено(лПредставлениеСписка,",","")); | |||
| 12
    
        Ненавижу 1С гуру 18.08.15✎ 20:24 | 
        +(11) окончательно пьян:
 лПредставлениеСписка = лПредставлениеСписка+?(ЗначениеЗаполнено(лПредставлениеСписка,",",""))+лКолонка.Имя; | |||
| 13
    
        Провинциальный 1сник 19.08.15✎ 08:04 | 
        (3) Создание строки перебором элементов списка. Очевидное решение.
 А использовать недокументированные методы рискованно. Завтра в очередном релизе 1с поменяет разделитель в строковом представлении с точки на запятую - и всё, ваш алгоритм не работает. | |||
| 14
    
        ЧеловекДуши 19.08.15✎ 08:50 | 
        (0) У ТЗ, нет дублей в колонках :)
 в 1С 7.7 можно было не указывать название колонки, что и могло вызвать дублирование. Но в 8-ке уже каждая колонка должна содержать уникальное имя :) | |||
| 15
    
        ЧеловекДуши 19.08.15✎ 08:52 | 
        + (14) Если подходить к делу грамотно. То в Список нужно помещать не только колонки, но и Представление из набора метаданных. А не как вы, поместили названия реквизитов, и довольны :)     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |