Имя: Пароль:
1C
1С v8
Не получается цикл
, ,
0 НАТалья Голубева
 
18.08.17
12:40
Здравствуйте.. че то у меня цикл не срабатывает...

СТЧ = ЭлементыФормы.Товары.ТекущиеДанные;     

    Запрос = Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    |    Штрихкоды.Штрихкод,
    |    Штрихкоды.Владелец.Ссылка КАК Товар,
    |    Штрихкоды.ХарактеристикаНоменклатуры
    |ИЗ
    |    РегистрСведений.Штрихкоды КАК Штрихкоды" ;
    Результат = Запрос.Выполнить();
    ТЗ=Результат.Выгрузить();
    ВыборкаДетальныеЗаписи = Результат.Выбрать();

//ТабРез=Результат.Выгрузить();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Если    СТЧ.Номенклатура=ВыборкаДетальныеЗаписи.Товар Тогда
        Если  СТЧ.ХарактеристикаНоменклатуры=ВыборкаДетальныеЗаписи.ХарактеристикаНоменклатуры Тогда
            НоваяСтрока=Товары.Добавить();
            НоваяСтрока.Номенклатура=ВыборкаДетальныеЗаписи.Товар;
            НоваяСтрока.ХарактеристикаНоменклатуры = ВыборкаДетальныеЗаписи.ХарактеристикаНоменклатуры;
            НоваяСтрока.Штрихкода = ВыборкаДетальныеЗаписи.Штрихкод;
        КонецЕсли
    КонецЕсли        
КонецЦикла;
1 ok_sys
 
18.08.17
12:41
над убрать Выгрузить()
2 2S
 
18.08.17
12:44
(1) да ну?
3 2S
 
18.08.17
12:44
ТЗ.КоличествоСтрок() что покажет?
5 catena
 
18.08.17
12:47
А какие душевные терзания мешают условия из ЕСЛИ применить прямо в запросе?
6 Vaflya
 
18.08.17
12:48
что значит не срабатывает?
7 lera01
 
18.08.17
12:55
(0) То есть вы делаете нехилую по размерам выборку, перебираете ее и, если у вас в Товарах есть строка с номенклатурой и характеристикой и в выборке такое сочетание тоже есть, вы в товары еще одну строку добавляете?
9 Гипервизор
 
18.08.17
12:59
(0) Вы что-то заполнили, а изменения записать забыли.
10 НАТалья Голубева
 
18.08.17
13:00
Цикл при первом совпадении в наименовании добавляет новую строку и прекращает добавлять штрихкода

А по поводу добавления строк... да согласна Это я поправлю
11 НАТалья Голубева
 
18.08.17
13:04
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Если    СТЧ.Номенклатура=ВыборкаДетальныеЗаписи.Товар Тогда
        Если  СТЧ.ХарактеристикаНоменклатуры=ВыборкаДетальныеЗаписи.ХарактеристикаНоменклатуры Тогда
              СТЧ.Штрихкода = ВыборкаДетальныеЗаписи.Штрихкод;
        КонецЕсли
    КонецЕсли        
КонецЦикла;
12 h-sp
 
18.08.17
13:04
(10) СТЧ = ЭлементыФормы.Товары.ТекущиеДанные  это у вас текущая строчка. Там одна номенклатура в ней. Поэтому всё правильно работает. Программа умная.
13 НАТалья Голубева
 
18.08.17
13:05
Поняла
14 lera01
 
18.08.17
13:09
Есть два варианта: Один запрос с ограничением по номенклатуре и характеристикам по данным табличной части, перебор строк с обращением к результату запроса для поиска штрихкодов и второй вариант - запрос в цикле по строкам к регистру для получения штрихкода и заполнения этой вашей штрихкоды в строке.
15 НАТалья Голубева
 
18.08.17
13:33
Всем спасибо... Переписала код..получилось
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.