8.х Заполнение параметров макета в цикле

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

  1. TopicStarter Overlay
    Alive
    Offline

    Alive Опытный в 1С

    Регистрация:
    15 янв 2010
    Сообщения:
    141
    Симпатии:
    0
    Баллы:
    26
    Всем доброго времени суток.такая проблема. Есть серийный номер, его необходимо разделить на цифорки и заполнить их в отдельные ячейки в макете.Серийный номер может состоять из 17 цифр, соответственно ячеек может быть тоже 17. Если тупо задать каждую ячейку как отдельный параметр, то надо будет эти 17 параметров потом и заполнить. Если кто-то сталкивался с такой проблемой, подскажите пожалуйста, как компактно это все сделать.Может можно как-то заполнить параметры в цикле. Я так понимаю что обрезанные циферки тоже можно в массив загнать. Помогите!!!!!!!
  2. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.634
    Симпатии:
    946
    Баллы:
    204
    Функцией

    Вырезайте цифры которые вам нужны.

    А потом методом Табличного документа ПРисоеденить() присоединяйте области.

    Вы хотя бы макет выложили что бы мы видели что вам и куда выводить надо. К сожалению, на сайте по статистике, еще не одного телепата не зарегестрировано
  3. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    А в чем собсно проблема? Да хоть 1000 параметров....создали необходимую структуру, а потом:

    область.паразметры.заполнить(Элемент_Структуры) - параметры заполнятся по именам....

    например,есть ТаблицаЗначений. У ТЗ есть колонки: "колонка1", "колонка2".

    Если на макете в области "Область" есть параметры "колонка1" и "Колонка2", то при

    Область("Область").Параметры.Заполнить(СтрокаТаблицыЗначений)

    параметры макета заполнятся - никакого цикла не нужно.
  4. TopicStarter Overlay
    Alive
    Offline

    Alive Опытный в 1С

    Регистрация:
    15 янв 2010
    Сообщения:
    141
    Симпатии:
    0
    Баллы:
    26
    я тоже в принципе такой вариант рассматривала. просто думала может можно как-то сделать это в цикле, т.е. и обрезание и присваивание параметру.и чтобы номер параметра в цикле менялся.но такое в 1с не знаю как можно сделать.Но все равно спасибо!!!сделаю так
  5. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    Если нужно одновременно обрезать и заполнять, то тогда обращайтесь к параметру по имени:

    Область.Параметры.<НужныйПараметр> = Значение.

    В этом случае - в цикле.
  6. TopicStarter Overlay
    Alive
    Offline

    Alive Опытный в 1С

    Регистрация:
    15 янв 2010
    Сообщения:
    141
    Симпатии:
    0
    Баллы:
    26


    А вот в этом случае то я как раз и не знаю как к параметру то обращаться. параметр имеет имя Номер1, Номер2 и т.д. я думала можно как-то записать цикл от 1 там до n. и Область.Параметры.Номерn = обрезанному числу. но как записать Номерn я не знаю...надеюсь понятно написала)
  7. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.634
    Симпатии:
    946
    Баллы:
    204
    Параметры это же коллекция значений.

    Поппробуй
    Для каждого парм из Область.Параметры Цикл

    КонецЦикла;
  8. TopicStarter Overlay
    Alive
    Offline

    Alive Опытный в 1С

    Регистрация:
    15 янв 2010
    Сообщения:
    141
    Симпатии:
    0
    Баллы:
    26
    Решила воспользоваться одним и представленных вариантов, но заполнение ячеек не происходит.может что-то не так пишу?

    ОбластьШапка.Параметры.Заполнить(Выборка);

    ТаблицаЗначений = Новый ТаблицаЗначений;
    ТаблицаЗначений.Колонки.Добавить("Параметр");
    ТаблицаЗначений.Колонки.Добавить("Значение");
    н = 17;
    номер =1;
    Пока номер<= н цикл
    Значение = Сред(Выборка.СерийныйНомер,номер,1);
    НоваяСтрока = ТаблицаЗначений.Добавить();
    НоваяСтрока.Параметр = "Номер" + номер;
    НоваяСтрока.Значение = Значение;
    номер = номер +1;
    КонецЦикла;

    ОбластьШапка.Параметры.Заполнить(ТаблицаЗначений);
  9. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.634
    Симпатии:
    946
    Баллы:
    204
    Обычно таблицей значения не заполняют, а заполняют строкой из таблицы значений или строкой выборки.

    а почму вы не хотите через интексы и метод Установить

    Только я не пмню с 0 индекс начинаетмя или с 1 попробуйте

    Пока номер<= н цикл
    ОбластьШапка.Параметры.Установить(Номер," оарвполарпл");
    КонецЦикла
  10. TopicStarter Overlay
    Alive
    Offline

    Alive Опытный в 1С

    Регистрация:
    15 янв 2010
    Сообщения:
    141
    Симпатии:
    0
    Баллы:
    26
    я конечно вообще впервые вижу как это делается, но обязательно попробую. Спасибо!!!!много нового узнала))
  11. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    Рисуем макет, с вертикальной областью с параметром "Параметр1". Далее просто присоединяем область и заносим туда значение. Нечто вроде:

    Код:
    Область = Макет.ПолучитьОбласть("ОбластьШапка|Область1");
    Пока СтрДлина(СерийныйНомер) > 0 Цикл
    ПерваяЦифра = Лев(СерийныйНомер,1);
    Область.Параметры.Параметр1 = ПерваяЦифра;
    ТабДокумент.Присоединить(Область);
    СерийныйНомер = Сред(СерийныйНомер,2);
    КонецЦикла;
    
  12. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.634
    Симпатии:
    946
    Баллы:
    204

    НУ этот метод я и в самом начале предложил......
  13. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    в таком случае обращатся к параметру нужно так:

    Область.Параметры["ИмяНужногоПараметра"]
  14. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    Согласен, я просто кокретизировал немного :)
Похожие темы
  1. Tur
    Ответов:
    0
    Просмотров:
    2.268
Загрузка...

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