Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
6002 / 3197 / 716
Регистрация: 23.11.2010
Сообщений: 10,683
1
1C 8.x

Скопировать строки

21.04.2015, 13:37. Показов 1138. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго дня.
Соорудила запрос для заполнения табличной части документа из справочника. Вроде все работает.
Но мне надо следующее реализовать.
Если в строке Периодичность = Перечисления.Периодичность.Ежеквартально, тогда скопировать строку 4 раза,
Если = Перечисления.Периодичность.Полугодие - скопировать строку 2 раза
Если = Перечисления.Периодичность.ДваМесяца - скопировать строку 6 раз
Остальные строки - без условия.
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
&НаСервере
Функция СформироватьНаСервере()
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ТемыПроверок.Наименование,
        |   ТемыПроверок.Периодичность
        |ИЗ
        |   Справочник.ТемыПроверок КАК ТемыПроверок";
    
    ТЗ = Запрос.Выполнить().Выгрузить();
    Для каждого Стр Из ТЗ Цикл
      СтрокаТЧ = Объект.ТЧ.Добавить();
      СтрокаТЧ.Тема = Справочники.ТемыПроверок.НайтиПоНаименованию(Стр.Наименование);
      СтрокаТЧ.Периодичность = Стр.Периодичность;
  КонецЦикла; 
  
    КонецФункции
Спасибо)

Добавлено через 3 минуты
Или это уже можно сделать на Клиенте?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.04.2015, 13:37
Ответы с готовыми решениями:

Скопировать второе слово каждой строки в начало следующей строки
Привет, прошу помощи! Заранее спасибо! Индивидуальное задание: Скопировать второе слово каждой...

Скопировать вторую строку с2 в конец первой строки с1.строки должны вводиться с клавиатуры
Скопировать вторую строку s2 в конец первой строки s1.строки должны вводиться с клавиатуры....

Скопировать нужные строки из одного листа на другой, но так чтобы строки копировались подряд
:'( Здравствуйте, уважаемые профессионалы!!! Осваиваю ВБА! Не могу решить "простую" задачку:...

Как автоматически скопировать данные одной ячейки первой строки в другую ячейку 2 строки
Здравствуйте!!! Дана таблица, или запрос Код |дата |Всего товара на складе |Приход товара от...

4
162 / 158 / 62
Регистрация: 28.09.2013
Сообщений: 293
21.04.2015, 16:23 2
Могу предложить следующий вариант, если я правильно понял:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Функция СформироватьНаСервере()
    Объект.ТЧ.Очистить();
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    Ссылка КАК ТемаСсылка,
                   |    Периодичность КАК ПериодичностьСсылка,
                   |    ВЫБОР
                   |        КОГДА Периодичность = &Ежеквартально ТОГДА 4
                   |        КОГДА Периодичность = &Полугодие ТОГДА 2
                   |        КОГДА Периодичность = &ДваМесяца ТОГДА 6
                   |        ИНАЧЕ 1
                   |    КОНЕЦ КАК Количество
                   |ИЗ
                   |    Справочник.ТемыПроверок";
    
    Запрос.УстановитьПараметр("Ежеквартально", Перечисления.Периодичность.Ежеквартально);
    Запрос.УстановитьПараметр("Полугодие", Перечисления.Периодичность.Полугодие);
    Запрос.УстановитьПараметр("ДваМесяца", Перечисления.Периодичность.ДваМесяца);
    
    запросРезультат = Запрос.Выполнить().Выбрать();
    
    пока запросРезультат.Следующий() цикл
        для индекс = 1 по запросРезультат.Количество цикл
            СтрокаТЧ = Объект.ТЧ.Добавить();      
      
            СтрокаТЧ.Тема = запросРезультат.ТемаСсылка;
            СтрокаТЧ.Периодичность = запросРезультат.ПериодичностьСсылка;
        конеццикла;
    КонецЦикла; 
КонецФункции
Ещё лучшим выходом (дабы не городить проверки в запросе) будет создать справочник Периодичность, вместо перечисления и добавить ему реквизит количество и выбирать сразу число.
Миниатюры
Скопировать строки  
1
6002 / 3197 / 716
Регистрация: 23.11.2010
Сообщений: 10,683
21.04.2015, 16:43  [ТС] 3
Yanush, спасибо.
А как будет если будет Справочник Периодичности, на самом деле эта самая периодичность мне нужна только в данном конкретном случае
0
162 / 158 / 62
Регистрация: 28.09.2013
Сообщений: 293
21.04.2015, 17:01 4
Цитата Сообщение от Fairuza Посмотреть сообщение
А как будет если будет Справочник Периодичности, на самом деле эта самая периодичность мне нужна только в данном конкретном случае
Просто если у вы планируете расширить в будущем возможные варианты дублирования (напр РазВНеделю 20 дублей, и т.д.) тогда лучше будет справочник Периодичность (Наименование, Количество дублей (числовой)) и в запросе вместо кучи условий "ВЫБОР КОГДА" просто выбирать это самое количество. Так как вам это необходимо на 1 раз то можно и так оставить.
1
6002 / 3197 / 716
Регистрация: 23.11.2010
Сообщений: 10,683
21.04.2015, 17:30  [ТС] 5
Спасибо еще раз, буду пытаться понять как это работает)))
0
21.04.2015, 17:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.04.2015, 17:30
Помогаю со студенческими работами здесь

Произвести/скопировать часть среза строки после знака и вставить в средину другой строки
Привет всем, нуждаюсь в помощи тех, кто с таким сталкивался, язык Python 2.7 Кратко: У нас есть...

Обработка строки. Как скопировать из строки определенный кусочек
Господа программисты. Я с очередной проблемой.... Имеем строку большой длины, а именно 42 символа....

В строку X скопировать 4 символа из строки S, начиная с середины строки
У меня есть две строки например: char S=нераовлвгера; char X; как в строку X скопировать 4...

Скопировать текст из первой строки txt1, найти его в txt2 и заменить текстом из первой строки txt3
Здравствуйте! Помогите пожалуйста в написании PHP-кода. Есть три текстовых документа - txt1,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru