Версия для печати темы (https://pro1c.org.ua/index.php?s=be454779ea964c3a4c3a5ba0f55ac69d&showtopic=40443)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Не работает метод Сдвинуть()

Автор: Insider12 21.09.17, 8:09

1С:Предприятие 8.3 (8.3.10.2561)
Управление производственным предприятием, редакция 1.4

Приветствую, я добавляю программно свою колонку в методе ПриОткрытии() модуля формы, вот так:

    НоваяКолонка = ЭлементыФормы.Товары.Колонки.Добавить("ЦенаСНаценкой", "Цена с наценкой");
    НоваяКолонка.УстановитьЭлементУправления(Тип("ПолеВвода"));
    НоваяКолонка.Данные = "ЦенаСНаценкой";
    ЭлементыФормы.Товары.Колонки.Сдвинуть(ЭлементыФормы.Товары.Колонки["ЦенаСНаценкой"], -10);


Эта колонка добавляется, но только в конец, то есть метод Сдвинуть не отрабатывает,
Если же я, например, пишу тут-же такое с любой другой колонкой, например:
ЭлементыФормы.Товары.Колонки.Сдвинуть(ЭлементыФормы.Товары.Колонки["Сумма"], -10);

То колонка сумма перемещается влево, как и ожидается.

Тип данных в отладчике одинаков у таких, по разному ведущих себя, колонок - "КолонкаТабличногоПоля".
Вообщем, в чем может быть дело?

Автор: Petre 21.09.17, 8:25

Insider12 @ Сегодня, 9:09 * ,
8.3.10.2561 без совместимости - все работает.

Автор: Insider12 21.09.17, 8:34

Petre @ Сегодня, 9:25 * ,
Ну не хотелось бы удалять совместимость, это уже прям явное изменение конфы

Автор: Petre 21.09.17, 8:35

Insider12 @ Сегодня, 9:34 * ,
Какая совместимость? Какая версия платформы?

Автор: daveal 21.09.17, 8:58

Попробуйте явно Колонки.Вставить в нужную позицию

Автор: Insider12 21.09.17, 9:37

daveal @ Сегодня, 9:58 * ,
Да я эту колонку создаю программно, (правда реквизит в табличную часть в дерево конфигуратора все же добавляю руками) поэтому форму я не трогаю вообще, а то привязки послетают, будет все съеживаться.

daveal @ Сегодня, 9:58 * ,
аа, может быть я не так вас понял, если вы имеете ввиду код, то не могли бы привести примерно как в моем случае метод Вставить() использовать?

Автор: daveal 21.09.17, 14:33

Insider12,

НоваяКолонка = ЭлементыФормы.Товары.Колонки.Вставить(5, "Цена с наценкой");
НоваяКолонка.Имя = "ЦенаСНаценкой";
НоваяКолонка.УстановитьЭлементУправления(Тип("ПолеВвода"));
НоваяКолонка.Данные = "ЦенаСНаценкой";

Вместо 5 нужный Индекс

Автор: Insider12 22.09.17, 7:51

Вот так решилось:
Вместо

НоваяКолонка = ЭлементыФормы.Товары.Колонки.Добавить("ЦенаСНаценкой", "Цена с наценкой");

Сделал
НоваяКолонка = ЭлементыФормы.Товары.Колонки.Вставить(10, "ЦенаСНаценкой");
НоваяКолонка.ТекстШапки = "Цена с наценкой";
НоваяКолонка.Имя = "ЦенаСНаценкой";

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua