Всем доброго времени суток.
Столкнулся со следующей задачей.
Конечная цель - поменять местами несколько раз определенные колонки в таблице значений.
Для этого использую метод Сдвинуть(<Колонка>, <Смещение>).
Есть следующая проблема: колонки перемешиваются только в коллекции колонок таблицы значений.
По окончанию функции расположение колонок внутри самой таблицы значений не меняется.
Код прилагаю ниже, скрины с отладчика по окончанию функции также.
Буду благодарен за любые пояснения.
Столкнулся со следующей задачей.
Конечная цель - поменять местами несколько раз определенные колонки в таблице значений.
Для этого использую метод Сдвинуть(<Колонка>, <Смещение>).
Есть следующая проблема: колонки перемешиваются только в коллекции колонок таблицы значений.
По окончанию функции расположение колонок внутри самой таблицы значений не меняется.
Код прилагаю ниже, скрины с отладчика по окончанию функции также.
Буду благодарен за любые пояснения.
Функция ПеремешатьКолонкиТЗ(БазоваяСетка)
Таблица = БазоваяСетка;
//-Строка для оживления переменной
//Таблица = Новый ТаблицаЗначений;
Счетчик = 0;
Для каждого Колонка Из Таблица.Колонки Цикл
Если Счетчик = 0 ИЛИ Счетчик = 3 ИЛИ Счетчик = 6 Тогда
Число = Новый ГенераторСлучайныхЧисел;
Число = Число.СлучайноеЧисло(0,2);
Таблица.Колонки.Сдвинуть(Счетчик,Число);
КонецЕсли;
Счетчик = Счетчик + 1;
КонецЦикла;
Возврат Таблица;
КонецФункции
ПоказатьПрикрепленные файлы:
По теме из базы знаний
- Универсальный конструктор отчетов (Новейший отчет) для 1C 7.7
- Gant 1C 2.* - диаграмма Ганта с таблицей + Планировщик + Отчет (8.1, на управляемой форме/Такси 8.2, 8.3)
- Создаем универсальный механизм отбора и сортировки для управляемых форм
- Автоматическая подстановка уничтожений временных таблиц в текст запроса
- (Не) Строгая типизация 1С
Найденные решения
(7)
А когда он показывает коллекцию колонок - он тоже показывает её в соответствии с индексами колонок ( в том виде, в котором ты натасовал эти индексы). Об этом твой второй скриншот.
Все работает прекрасно.
Почему отладчик не показывает изменения при перетасовке колонок в ТЗ?
Потому что он показывает коллекцию строк. И именно её он показывает в соответствии с индексами строк.
А когда он показывает коллекцию колонок - он тоже показывает её в соответствии с индексами колонок ( в том виде, в котором ты натасовал эти индексы). Об этом твой второй скриншот.
Все работает прекрасно.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Функция возвращает ТЗ с колонками ровно в том порядке, что был изначально ("Колонка1", "Колонка2" и тд.), если верить отладчику. Я скрины приложил.
Но если посмотреть возвращаемое значение Таблица.Колонки - там видно, что порядок колонок изменен. Т.е. функция отрабатывает, но не так как нужно.
Но если посмотреть возвращаемое значение Таблица.Колонки - там видно, что порядок колонок изменен. Т.е. функция отрабатывает, но не так как нужно.
(6) Я не профессиональный программист, 1С - мое хобби. С того, наверное, и уверовал.
Если я меняю данные - я ожидаю это увидеть, контролировать это. И всегда для этих целей использовал отладчик. Проблем с этим не было.
Если колонки добавить, строки, значения- это все можно отследить.
Почему отладчик не показывает изменения при перетасовке колонок в ТЗ?
Если я меняю данные - я ожидаю это увидеть, контролировать это. И всегда для этих целей использовал отладчик. Проблем с этим не было.
Если колонки добавить, строки, значения- это все можно отследить.
Почему отладчик не показывает изменения при перетасовке колонок в ТЗ?
(7)
А когда он показывает коллекцию колонок - он тоже показывает её в соответствии с индексами колонок ( в том виде, в котором ты натасовал эти индексы). Об этом твой второй скриншот.
Все работает прекрасно.
Почему отладчик не показывает изменения при перетасовке колонок в ТЗ?
Потому что он показывает коллекцию строк. И именно её он показывает в соответствии с индексами строк.
А когда он показывает коллекцию колонок - он тоже показывает её в соответствии с индексами колонок ( в том виде, в котором ты натасовал эти индексы). Об этом твой второй скриншот.
Все работает прекрасно.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот