Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Цикл не корректно обрабатывает команды          
shkoda Подменю пользователя
сообщение 29.12.15, 1:26
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 18
Спасибо сказали: 1 раз
Рейтинг: 0

Всем здрасте!

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

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

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


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

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

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


Вес спасибо! icon_beer17.gif

sava1 Подменю пользователя
сообщение 29.12.15, 7:48
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2688
Из: Проскуров
Спасибо сказали: 681 раз
Рейтинг: 659.7

Цитата(shkoda @ 29.12.15, 1:26) *
внешняя форма получает список с номерами документов

НЕ получает - в списке только один документ. А так с циклом все нормально.

nysysimara Подменю пользователя
сообщение 29.12.15, 8:51
Сообщение #3

Оратор
Иконка группы
Группа: Местный
Сообщений: 312
Из: Бердянск
Спасибо сказали: 110 раз
Рейтинг: 0

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

либо посмотрите отладчиком, что там за данные в ТабЗнач


Signature
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП)
1С Предприятие 8.3: Бух.предприятия 3.0 + самописка
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Кроме высшего образования, нужно иметь хотя бы среднее соображение

Vofka Подменю пользователя
сообщение 29.12.15, 9:04
Сообщение #4

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8

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

shkoda Подменю пользователя
сообщение 30.12.15, 9:56
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 18
Спасибо сказали: 1 раз
Рейтинг: 0

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 *,
да нет же, получает
просто по одному документу за один проход)

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.04.24, 2:25
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!