Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Цикл не корректно обрабатывает команды
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
shkoda
Всем здрасте!

Собственно, беда - при проходе Цикла в переменную Параметр загоняются НомерДокумента
и передаётся на обработку во внешнюю форму

в идеале внешняя форма получает список с номерами документов и "перепроводит" их
но в реальности "перепроводит" только самое первое что получает - только один документ и только первый

как быть?
как заставить этот цикл отрабатывать каждый раз при проходе и передаче параметра?


Процедура Перенести()

    ТабЗнач.ВыбратьСтроки();
        Пока ТабЗнач.ПолучитьСтроку() = 1 Цикл
            Если
            (СокрЛП(ТабЗнач.Статус) =  "Редактирован")
            И
            (СокрЛП(ТабЗнач.Выбрать) = "Да")
            Тогда
                НомерПриказа = Сред(ТабЗнач.Документ,19,9);
                
                    Если ФС.СуществуетФайл("\\123\123\ExtForms\123\!TEST\123.ert") = 1 Тогда
                    Параметр = СоздатьОбъект("СписокЗначений");
                    Параметр.ДобавитьЗначение(НачДата,"НачДата");
                    Параметр.ДобавитьЗначение(КонДата,"КонДата");
                    Параметр.ДобавитьЗначение(НомерПриказа,"НомерДок");
                    ОткрытьФорму("Отчет",Параметр,"\\123\123\ExtForms\123\!TEST\123.ert");    
                    Иначе
                    Предупреждение("Не найден файл обработки ........!!!");
                    КонецЕсли;
            КонецЕсли;
        КонецЦикла;

КонецПроцедуры


Вес спасибо! icon_beer17.gif
sava1
Цитата(shkoda @ 29.12.15, 1:26) необходимо зарегистрироваться для просмотра ссылки
внешняя форма получает список с номерами документов

НЕ получает - в списке только один документ. А так с циклом все нормально.
nysysimara
shkoda @ Сегодня, 1:26 необходимо зарегистрироваться для просмотра ссылки,
на время отладки добавте просмотр вашей ТабЗнач
ТабЗнач.ВыбратьСтроку();
ТабЗнач.ВыбратьСтроки();
Пока и т.д.

либо посмотрите отладчиком, что там за данные в ТабЗнач
Vofka
shkoda @ Сегодня, 1:26 необходимо зарегистрироваться для просмотра ссылки,
Вы же список значений создаете внутри цикла и там же его передаете в обработку. То есть у вас в списке будет всегда только один документ. Полагаю, что надо ПЕРЕД циклом создать объект, наверное, ТаблицаЗначений с колонками НачДата, КонДата, НомерДок. Заполнить эту таблицу ВНУТРИ цикла и передать в обработку ПОСЛЕ цикла. В обработке, естественно, обрабатывать входящий параметр уже не как СписокЗначений, а как ТаблицуЗначений.
shkoda
Vofka @ Вчера, 9:04 необходимо зарегистрироваться для просмотра ссылки,
пробовал и так и сяк
в итоге получилось вот таким способом

Процедура Перенести()

    ТабЗнач.ВыбратьСтроки();
        Пока ТабЗнач.ПолучитьСтроку() = 1 Цикл
            Если
            (СокрЛП(ТабЗнач.Статус) =  "Редактирован")
            И
            (СокрЛП(ТабЗнач.Выбрать) = "Да")
            Тогда
                    НомерПриказа = Сред(ТабЗнач.Документ,19,9);
                    
                    Если ФС.СуществуетФайл("\\123\123\ExtForms\123\!TEST\123.ert") = 1 Тогда
                
                    Параметр = СоздатьОбъект("СписокЗначений");
                    Параметр.ДобавитьЗначение(НачДата,"НачДата");
                    Параметр.ДобавитьЗначение(КонДата,"КонДата");
                    Параметр.ДобавитьЗначение(НомерПриказа,"НомерДок");
                    
                    ОткрытьФормуМодально("Отчет",Параметр,"\\123\123\ExtForms\123\!TEST\123.ert");
                    Иначе
                    Предупреждение("Не найден файл обработки ........!!!");    
                КонецЕсли;
            КонецЕсли;
        КонецЦикла;
КонецПроцедуры


nysysimara @ Вчера, 8:51 необходимо зарегистрироваться для просмотра ссылки,
отладчик многое интересное показал, решилось все применением ОткрытьФормуМодально - при этом не появляется ГрупповойКонтекст в возврате

sava1 @ Вчера, 7:48 необходимо зарегистрироваться для просмотра ссылки,
да нет же, получает
просто по одному документу за один проход)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.