8.х Вывод всех строк таблицы через запятую в строку

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Snegur, 24 дек 2017.

  1. TopicStarter Overlay
    Snegur
    Offline

    Snegur Опытный в 1С

    Регистрация:
    20 июн 2016
    Сообщения:
    247
    Симпатии:
    0
    Баллы:
    26
    Добрый день
    Подскажите как вывести из таблицы значений все значения колонки "наименование ", через запятую в одну строку ?
    типо аналога Массив() в скд ,только для обычного макета
    или только циклом перебор ?
  2. Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    950
    Симпатии:
    23
    Баллы:
    29
    Аналогичного метода для ТаблицыЗначений нет. Думаю, перебор циклом самое простое в данном случае.
  3. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    517
    Симпатии:
    83
    Баллы:
    54
    Здравствуйте.
    Можно и без цикла, через массив.
    Примерно так:
    Код:
    Массив = ТЗ.ВыгрузитьКолонку("Наименование");
        НовСписок = Новый СписокЗначений();
        НовСписок.ЗагрузитьЗначения(Массив);
        НовСписок = СтрЗаменить(НовСписок,";",",");
        Сообщить(НовСписок);
    
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.066
    Симпатии:
    947
    Баллы:
    204
    Страшнее говнокода я еще не видел.
    Вы сами-то пробовали хотя бы с 20 значениями так сделать?
  5. Svb
    Offline

    Svb Опытный в 1С Команда форума

    Регистрация:
    12 янв 2011
    Сообщения:
    1.081
    Симпатии:
    23
    Баллы:
    29
    Вадим категоричен)
  6. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    517
    Симпатии:
    83
    Баллы:
    54
    На самом деле мне в последний момент не захотелось вставлять функцию, которая не у всех будет работать. У меня работало еще проще
    Код:
        Массив = ТЗ.ВыгрузитьКолонку("Наименование");
            НовСписок = СтрСоединить(Массив,","); 
        Сообщить(НовСписок);
    
    Основная мысль была "через массив". И делайте с ним, что хотите, безо всяких циклов.

    PS У Вадима через каждое второе сообщение упоминание о говнокоде. Очевидно, он кодит только одуванчиками. А мы тут все учимся.
  7. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.066
    Симпатии:
    947
    Баллы:
    204
    СтрСоединить() появилось в версии 8.3.9, однако.....

    Нет, я не только одуванчиками кодю, но делать СтрЗаменить() для представления СпискаЗначения - это просто апофеоз.

    Катюфка просто привыкла решать проблемы способом "затыкания дыр по мере их появления" и под каждое изменение условий переделывать код - это ее право, но не стоит следовать этому пути.

    --- Объединение сообщений, 12 янв 2018 ---
    Потому что вариант со списком значений в общем случае - нерабочий.
    Последнее редактирование: 12 янв 2018
  8. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    517
    Симпатии:
    83
    Баллы:
    54
    Еще раз повторю: программирование в 1С не является моей основной профессией. Я программирую по мере необходимости и отношусь к нему, как к творческому процессу. Мне интересно искать новые пути и нестандартные решения. Эксперименты не всегда увенчиваются успехом, но это двигатель прогресса. А ваш подход практичный и нудный до тошноты. И все равно Вы не сможете предусмотреть все возможные варианты. Вы работали в реальной фирме, где проблемы возникают в момент, когда на их решение отводятся считанные часы? Почему такой продвинутый одуванчиковый кодер не предложил выгрузить колонку в массив? Ведь это же более элегантно, чем цикл, о котором автор темы и сам прекрасно знает. А, увидев, что список обработан некорректно, почему бы не предложить другое решение, вместо того, чтобы хамить? Меня тоже смутило то, что СтрСоединить не у всех будет работать, но, с другой стороны, платформу обновлять рано или поздно надо, и к новому функционалу привыкать тоже надо, его для того и вводят разработчики. И, согласитесь, предложенный вариант просто великолепен! Горжусь собой, а Вам - мое откровенное "фи"!
  9. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.066
    Симпатии:
    947
    Баллы:
    204
    Про СтрСоединить() я только лишь заметил, что оно не будет у всех работать и этот способ действительно элегантнее цикла.
    Цикл будет работать всегда и везде.
    Основные мои претензии к вашему первому способу.

    9 женщин не смогут родить одного ребенка за 1 месяц.......

Поделиться этой страницей