Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Як оновити значення поля форми ?
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
alex-l1904
Конфа Business automation software for accounting, edition 2.1 (2.1.22.2) Платформа 8.3.15.1700

Зовнішня обробка. На формі треба відобразити поточний стан. Створив реквізит обробки, який заповнюю, але не працює...

Треба спочатку вивести "Знайдено <кількість> документів. Видалення...",
а потім "Знайдено <кількість> документів. Видалення...
Готово. "
Виводить тільки коли вже готово...

Если Объект.ДатаНач <= Объект.ДатаКон Тогда
            Объект.ИнфСтрока = "";
            КолвоДок = ПолучитьКоличествоДокументовНаУдалениеВПериоде();
            
            Объект.ИнфСтрока = "Знайдено "+Строка(КолвоДок) +" документів. Видалення...";
            //тут не працює !
            Элементы.ИнфСтрока.ОбновитьТекстРедактирования();
            
            ЭтаФорма.ОбновитьОтображениеДанных();
            
            ВызовСервернойПроцедурыУдаления();
                         
            Объект.ИнфСтрока = Объект.ИнфСтрока + Символы.ПС+"Готово."
            //тільки після цього працює
        Иначе
            Объект.ИнфСтрока = "Помилка періода. Дата початку більше дати закінчення!"
        КонецЕсли;
denis84
alex-l1904 @ Сегодня, 11:41 необходимо зарегистрироваться для просмотра ссылки ,
&НаСервере
Процедура ОтборЗаказовНаСервере()
    Данные_            = РеквизитФормыВЗначение("СписокДокументов");    
    Данные_.Очистить();
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ЗаказПокупателя.Ссылка КАК Ссылка,
        |    ЗаказПокупателя.Дата КАК Дата,
        |    ЗаказПокупателя.Номер КАК Номер,
        |    ЗаказПокупателя.Ответственный КАК Ответственный
        |ИЗ
        |    Документ.ЗаказПокупателя КАК ЗаказПокупателя
        |ГДЕ
        |   Дата МЕЖДУ &НачДата И &КонДата
        |    И
        |    ЗаказПокупателя.Ответственный В(&Список)
        |
        |СГРУППИРОВАТЬ ПО
        |    ЗаказПокупателя.Ссылка,
        |    ЗаказПокупателя.Дата,
        |    ЗаказПокупателя.Номер,
        |    ЗаказПокупателя.Ответственный
        |
        |УПОРЯДОЧИТЬ ПО
        |    Ссылка";
        
        Запрос.УстановитьПараметр("НачДата", Период.ДатаНачала);
        Запрос.УстановитьПараметр("КонДата", Период.ДатаОкончания);
        Запрос.УстановитьПараметр("Список",  СписокСотрудников);

        РезультатЗапроса = Запрос.Выполнить();
        
        ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
        
        сч = 0;
        Запрос2 = Новый Запрос;
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            Запрос2.Текст = "ВЫБРАТЬ
                            |    СвязанныеДокументы.Ссылка КАК Ссылка,
                            |    СвязанныеДокументы.Ссылка.Ответственный КАК СсылкаОтветственный
                            |ИЗ
                            |    КритерийОтбора.СвязанныеДокументы(&ЗначениеКритерияОтбора) КАК СвязанныеДокументы
                            |ГДЕ
                            |    ТИПЗНАЧЕНИЯ(СвязанныеДокументы.Ссылка) = ТИП(Документ.Расходнаянакладная)
                            |    И СвязанныеДокументы.Ссылка.Ответственный <> &ОтвественныйРасходной";
            
            Запрос2.УстановитьПараметр("ЗначениеКритерияОтбора", ВыборкаДетальныеЗаписи.Ссылка);
            Запрос2.УстановитьПараметр("ОтвественныйРасходной" , ВыборкаДетальныеЗаписи.Ссылка.Ответственный);
            
            РезультатЗапроса2 = Запрос2.Выполнить();
            ВыборкаСвязанных = РезультатЗапроса2.Выбрать();
            Пока ВыборкаСвязанных.Следующий() Цикл
                
                Тек                                    = Данные_.Добавить();
                сч = сч + 1;
                Тек.НомПП                            = сч;
                Тек.ЗаказПокупателя                    = ВыборкаДетальныеЗаписи.Ссылка;
                Тек.ОтветственныйЗаказаПокупателя    = ВыборкаДетальныеЗаписи.Ссылка.Ответственный;
                Тек.РасходнаяНакладная                = ВыборкаСвязанных.Ссылка;
                Тек.ОтветственныйРасходнойНакладной    = ВыборкаСвязанных.Ссылка.Ответственный;
            КонецЦикла;    
        КонецЦикла;
        КвоДокументов = Данные_.Количество();
        ЗначениеВРеквизитФормы(Данные_,"СписокДокументов");        
КонецПроцедуры


КвоДокументов реквизит и на форме ввиде поля надписи
alex-l1904
створив реквізит форми ИнфСтрокаФормы

Цитата(denis84 @ 17.04.23, 12:01) необходимо зарегистрироваться для просмотра ссылки
ТекОб            = РеквизитФормыВЗначение("ИнфСтрокаФормы");  


у тут помилка
ВнешняяОбработка.УдалениеДокументовПериод.Форма.Форма.Форма(65)}: Помилка при виклику методу контексту (РеквизитФормыВЗначение)
ТекОб = РеквизитФормыВЗначение("ИнфСтрокаФормы");
через:
Неприпустиме значення параметру (параметр номер '1')
alex-l1904
в довідці про ОбновитьОтображениеДанных є " В веб-клиенте обновление элементов управления происходит не сразу, а после окончания выполнения кода на встроенном языке."

Мені здається, що так працює не тільки у веб, а і у тонкому
denis84
alex-l1904 @ Сегодня, 12:22 необходимо зарегистрироваться для просмотра ссылки ,
Цитата(alex-l1904 @ 17.04.23, 12:22) необходимо зарегистрироваться для просмотра ссылки
створив реквізит форми ИнфСтрокаФормы

це тільки реквізит форми, не реквізит обєкту?
alex-l1904
поки вирішив зробити трохи по іншому

ИнфСтрокаФормы = "Знайдено "+Строка(КолвоДок) +" документів. Видалення...";
    Состояние(ИнфСтрокаФормы);


так працює (хоч не зовсім те що треба)

denis84 @ Сегодня, 13:41 необходимо зарегистрироваться для просмотра ссылки ,
вже робив із реквізитом форми і об'єкта... те саме
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.