Вход | Регистрация
 

надо с шагом N выбрать строки из исходной таб.значений

надо с шагом N выбрать строки из исходной таб.значений
Я
   lamme
 
30.10.19 - 12:00
Есть ТЗ.
100500 строк.

Есть значение - N(число. целое)
надо с шагом N выбрать строки из исходного ТЗ

пытаюсь сделать так

п=3; // это шаг, выбран на форме пользователем
НомерСтроки =1;
для каждого Стр из ТЗ цикл
            Стр.СписокФото = ПолучитьСписокИмен(НомерСтроки,ТЗимен);
            НомерСтроки =НомерСтроки +1;
конеццикла;

Функция ПолучитьСписокИмен (НомерСтроки,ТЗимен)

ИтСтрокаСФото ="";
    для п=1 по выбКоличествоФотона1товар цикл
        ИтСтрокаСФото = ИтСтрокаСФото +","+ТЗимен[???].Имя;
    конеццикла;
    Возврат ИтСтрокаСФото;
конецфункции
 
 
   Beduin
 
1 - 30.10.19 - 12:01
Индексы делай
   1С Ассенизатор ПРОФ
 
2 - 30.10.19 - 12:03
(0) Пишешь классно конечно =)
   lamme
 
3 - 30.10.19 - 12:05
(1)
чем поможет?
   Birmingem
 
4 - 30.10.19 - 12:07
Так из какой именно таблицы надо выбрать строки с щагом Н? Из ТЗ или ТЗимен?
В твоем коде вообще муть какая то ...
   lamme
 
5 - 30.10.19 - 12:08
ТЗ -исходная
выбрать надо из ТЗимен
   Birmingem
 
6 - 30.10.19 - 12:09
Если выбирать надо из ТЗимен, при чем тут ТЗ?
   Birmingem
 
7 - 30.10.19 - 12:09
Это в ТЗимен 100500 строк?
   Garykom
 
8 - 30.10.19 - 12:10
(0) "С шагом N" это значит каждую N-ю строку выбрать, пропуская между ними?
   Кодер
 
9 - 30.10.19 - 12:11
Скопируй ТЗ. В копии проходи сверху, считай вслух и по условию "Неа" удаляй строку. Помни, что таблица кончится неожиданно.
   1С Ассенизатор ПРОФ
 
10 - 30.10.19 - 12:11
(8) По коду ТС сложно понять
   pechkin
 
11 - 30.10.19 - 12:12
вот тут есть пример
http://catalog.mista.ru/public/76309/
   lamme
 
12 - 30.10.19 - 12:12
ТЗ - исходная таблица. Заполненная. Колонки
-Номенклатура
-СписокФото

ТЗимен - список имен файлов.
в ТЗ.СписокФото - с шагом = 3 (например) надо получить что то типа: "Имяфайла1,ИмяФайла2,ИмяФайла3" 
т.е.

для каждого Стр из ТЗ цикл
            Стр.СписокФото = ПолучитьСписокИмен(НомерСтроки,ТЗимен);
            НомерСтроки =НомерСтроки +1;
конеццикла;

В итоге
Строка1 ТЗ. СписокФото = Имяфайла1,ИмяФайла2,ИмяФайла3
Строка2 ТЗ. СписокФото = Имяфайла4,ИмяФайла5,ИмяФайла6
   lamme
 
13 - 30.10.19 - 12:15
(8)
нет
это значит из ТЗимен надо получить
Строка1,Строка2,Строка3
Строка4,Строка5,Строка6
Строка7,Строка8,Строка9
   1С Ассенизатор ПРОФ
 
14 - 30.10.19 - 12:19
(12) Ну тогда нужна еще переменная которая будет обозначать текущее положение во второй таблице. К нему будем прибавлять значение шага.

//пусть положение будет b


b = 0;


Функция ПолучитьСписокИмен(НомерСтроки,ТЗимен)
    Для b по b+n цикл
         ИтСтрокаСФото = ИтСтрокаСФото + тзимен[итератор] 
    конеццикла;
КонецФункции


типа такого про цикл не помню точный синтаксис
   Birmingem
 
15 - 30.10.19 - 12:21
(13)Теперь понятнее
Можно сделать так например:
к=0;
пока к<=ТЗимен.Количество()
 Стр1=ТЗимен.Получить(к);
 Стр2=ТЗимен.Получить(к+1);
 Стр3=ТЗимен.Получить(к+2);
 к=к+3;
КонецЦикла
   1С Ассенизатор ПРОФ
 
16 - 30.10.19 - 12:22
(14) упс b же будет меняться в цикле, тогда еще переменную.

в конце функции наше положение будет увеличено на n и в след итерации будет уже начинаться с 4 строки.
   lamme
 
17 - 30.10.19 - 12:33
Итоги
Процедура Один()
...
РазмерШага      = N;

НомерСтроки =1;
для каждого Стр из ТЗ цикл
    СтрПутейФото = ПолучитьСписокИмен(РазмерШага * (НомерСтроки - 1) + 1, РазмерШага * НомерСтроки,ТЗимен);
НомерСтроки =НомерСтроки +1;
конецпроцедуры
...
конецпроцедуры


Функция ПолучитьСписокИмен(начало, Конец,ТЗФото )
Для Счетчик = Начало -1 По Конец - 1 Цикл
        ИтСтрокаСФото                 = ИтСтрокаСФото +","+ТЗФото[Счетчик].Имя;
конеццикла
возврат ИтСтрокаСФото
конецфункции

конецфункции
   Йохохо
 
18 - 30.10.19 - 12:39
(17) рациональные числа они такие, такие что 3.1415965 а потом оп и 3.1415965(123456)
   Cyberhawk
 
19 - 30.10.19 - 12:52
Ветку закрыть за профнепригодность ТСа
   lamme
 
20 - 30.10.19 - 14:11
11
спасибо

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.