|   |   | 
| 
 | v7: ОбработкаОжидания() и Таблица | ☑ | ||
|---|---|---|---|---|
| 0
    
        kupec 18.01.23✎ 09:54 | 
        Доброго дня. Ситуацию следующая....Есть обработка, при открытии запускается режим мониторинга, при выполнении определенных условий формируется таблица, сохраняется в html и отправляется адресату, таблица привязана к обработке. При ручной отправке данных, все отрабатывает на ура. При автоматическом режиме (срабатывание обработки) ругается на то, что файл "НазваниеТаблицы" не найден. Вылезает окошко, с кнопкой ОК, соответственно вся обработка встает. Куда посмотреть? Почему обработка не видит таблицу, которая хранится в файле ERT этой обработки? Именно при срабатывании ОбработкаОжидания()     | |||
| 1
    
        Bigbro 18.01.23✎ 10:34 | 
        <telepat mode on>
 ну обработка ожидания у вас из глобальника работает, видимо и таблицу в общих таблицах ищет, если не прописано другое. <telepat mode off> | |||
| 2
    
        kupec 18.01.23✎ 10:36 | 
        Обработка ожидания в самой ERT     | |||
| 3
    
        Builder 18.01.23✎ 10:52 | 
        (2) Кусок кода покажи где таблицу вызываешь.     | |||
| 4
    
        kupec 18.01.23✎ 11:00 | 
        Функция ПроверкаЗакрытие()
 ДатаНачало=ТекущаяДата()-30;ДатаКонец=ТекущаяДата(); Т=СоздатьОбъект("Таблица"); Т.ИсходнаяТаблица("ЗакрытиеСмены"); Т.ВывестиСекцию("Шапка");НПП=0; Док=СоздатьОбъект("Документ.ЗакрытиеСменыНаККМ"); Док.ВыбратьДокументы(ДатаНачало,ДатаКонец); Пока Док.ПолучитьДокумент()=1 Цикл Если Док.Проведен()=0 Тогда Продолжить; КонецЕсли; Если Док.ДатаДок<Дата("01.01.2023") Тогда Продолжить; КонецЕсли; Если Док.КартаККМ=Док.Банк Тогда Продолжить; КонецЕсли; НПП=НПП+1;Т.ВывестиСекцию("Строка"); КонецЦикла; Если НПП=0 Тогда Т.ВывестиСекцию("СтрокаОК"); КонецЕсли; Т.ТолькоПросмотр(1);Т.Опции(0,0,3,6); Т.ПараметрыСтраницы(1,,,,,,,,,1); ИмяФайла="C:\from1C7.7.pdf";УдалитьФайл(ИмяФайла); Т.Записать(КаталогВременныхФайлов()+"telo.html",2); Если Сохранить_В_ПДФ(1,Т,ИмяФайла)=0 Тогда УдалитьФайл(ИмяФайла);Возврат 6; КонецЕсли; Если ОтправитьПисьмо(ПолучитьАдресаДляОтправки(),ИмяФайла,"Статистика закрытий смен (эквайринг) "+ТекущаяДата())=0 Тогда Возврат 2; КонецЕсли; Возврат 1; КонецФункции | |||
| 5
    
        kupec 18.01.23✎ 11:01 | 
        Пордон, не то отправил     | |||
| 6
    
        kupec 18.01.23✎ 11:02 | 
        //создаем таблицу
 Таб=СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("ВозвратПоставщику"); Таб.ВывестиСекцию("Шапка"); ДокументВозврат.ВыбратьСтроки(); Пока ДокументВозврат.ПолучитьСтроку()=1 Цикл Таб.ВывестиСекцию("Строка"); КонецЦикла; Таб.ВывестиСекцию("Подвал"); //отправляем письмо Если ОтправитьПисьмо(ДокументВозврат,КаталогТемп+"\"+ИмяФайла+".xml",Таб)=0 Тогда Возврат; КонецЕсли; | |||
| 7
    
        Builder 18.01.23✎ 11:29 | 
        (6) Ну ХЗ, так вроде все норм.
 Точно этот кусок кода в этой же обработке? Попробуй что ли вынести таблицу в файл, проверь как будет работать. | |||
| 8
    
        kupec 18.01.23✎ 11:30 | 
        (7) да точно все в этой обработке, руками же формируется по кнопке, а вот по автоматическому срабатыванию не хочет     | |||
| 9
    
        kupec 18.01.23✎ 11:31 | 
        Делал и через встроенную ОбработкуОжидания и через Формекс....     | |||
| 10
    
        Андрей_Андреич naïve 18.01.23✎ 12:17 | 
        (9) Внешняя обработка? Из разряда маразма - не может обработкаожидания открывать другой ert (допустим с тем же именем но в другом каталоге)?     | |||
| 11
    
        kupec 18.01.23✎ 15:19 | 
        Обработка внешняя, файл открыть - открываю обработку. В ней обработкаожидания     | |||
| 12
    
        kupec 18.01.23✎ 15:20 | 
        Где там сказано про открытие обработкойожидания другого отчета? Сам придумал?     | |||
| 13
    
        Злопчинский 18.01.23✎ 15:53 | 
        сделай таблицу ТАБ внешним макетом - будет работать стопудово
 или попробуй Таб объявить глобальной в обработке | |||
| 14
    
        kupec 19.01.23✎ 12:49 | 
        Пробую объявить переменную, по результату отпишусь     | |||
| 15
    
        Андрей_Андреич naïve 19.01.23✎ 12:50 | 
        (14) И при открытии 
 Таб=СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("ВозвратПоставщику"); | |||
| 16
    
        ЯнСмит 21.01.23✎ 13:43 | 
        А сформированная таблица перед отправкой сохраняется в файл, что я не увидел этого ...     | |||
| 17
    
        kupec 21.01.23✎ 16:53 | 
        (16) никуда не сохраняется, Таб.ИсходнаяТаблица("ВозвратПоставщику"); вот на этом моменте ругается     | |||
| 18
    
        kupec 21.01.23✎ 16:53 | 
        (13) добавил, не прокатило.....опять ругается     | |||
| 19
    
        Злопчинский 21.01.23✎ 18:23 | 
        (18) внешним макетом пробовал?     | |||
| 20
    
        Bigbro 23.01.23✎ 04:56 | 
        мало кода.
 надо проверить на шуточки - скопировать имя таблицы. может кто-то веселый букву о на английскую поменял например. гадать можно долго. | |||
| 21
    
        Злопчинский 23.01.23✎ 07:46 | 
        (20) это известная трабла.
 причина - хз. где-то теряется контекст обработки. почему-где - хз. это Ёпрст только внятно мог изложить. с внешним макетом - все норм работает. | |||
| 22
    
        Харлампий Дымба 23.01.23✎ 10:32 | 
        (21)+
 Сам натыкался пару раз - решал просто создавая нужный макет в общих таблицах. В числе советов по исправлению, насколько я помню, были ещё ковыряния в меню Действия-Свойства формы. Но мне на помогло, так что заморачиваться не стал. | |||
| 23
    
        alyuev 23.01.23✎ 11:19 | 
        А если макет сделать внешним файлом?     | |||
| 24
    
        Djelf 23.01.23✎ 11:50 | 
        Объяснение бага в 30м посте от АЛьФ Таблица.ИсходнаяТаблица(...), Вызов из другого модуля.     | |||
| 25
    
        Bigbro 23.01.23✎ 11:55 | 
        (24) класс) век живи век учись)     | |||
| 26
    
        Злопчинский 23.01.23✎ 12:33 | 
        (23) я об этом давно посоветовал.     | |||
| 27
    
        Злопчинский 23.01.23✎ 12:38 | 
        (24) малость непонятно что имеет в виду альф под телом модуля. Код модуля после процедур или вообще весь модуль формы?     | |||
| 28
    
        Djelf 23.01.23✎ 12:43 | 
        (27) Не суть важно, главно что не работает ;)
 Впрчем АЛьФ же доработал Твблица.ИсходнаяТаблица(Имя, [Путь]) Где в описании указано: "Если строка пути начинается не с 'MD.', то она воспринимается как путь к файлу внешнего отчета и исходная таблица ищется в этом файле. Необязательный параметр. По умолчанию - пустая строка." Не проверял. | |||
| 29
    
        Bigbro 23.01.23✎ 12:45 | 
        зато понятна схема. 
 - внизу модуля таблиц еще нет кроме глобальных - в ПриОткрытии() таблицы уже есть в запускаемой обработке та же схема. | |||
| 30
    
        Злопчинский 23.01.23✎ 12:52 | 
        (29) пофиг. совершенно нормальные обработки. Таб определялась в ПриОткрытии. Не пашет. Иногда. Как в (0).     | |||
| 31
    
        Bigbro 23.01.23✎ 12:54 | 
        сдаюсь. на такие грабли не наступал, всю жизнь таб определяю и формирую в самом конце когда все действия с базой завершены, остался вывод таблицы. наверное потому и не наступал)     | |||
| 32
    
        Злопчинский 23.01.23✎ 12:59 | 
        (31) Обходя грабли ms лишаешься бесценного опыта! ;-)     | |||
| 33
    
        kupec 24.01.23✎ 20:45 | 
        Я сделал так, при открытии
 Т=СоздатьОбъект("Таблица"); Т.ИсходнаяТаблица("МояТаблица"); Т - переменная в текущей обработке. При формировании таблицы из процедуры делаю так Т.Очистить(); 2 дня, все работает | |||
| 34
    
        Злопчинский 24.01.23✎ 21:07 | 
        (33) ну так это я еще в (13) предлагал     | |||
| 35
    
        kupec 25.01.23✎ 11:58 | 
        (34) я переменную добавил, но все равно слетало. А вот когда в при открытии переделал создание объекта и позиционирование на выбранную таблицу с чисткой таблицы в процедуре стало работать. Выбор таблицы при открытии 1 раз.     | |||
| 36
    
        uno-group 25.01.23✎ 15:59 | 
        Зависит от того когда и откуда запускается обработка.
 Если это вызвать внизу модуля //---------- Печать(); То будет ругаться так как формы еще физически не существует. Если сделать из При открытии то будет работать. Процедура ПриОткрытии() Печать(); КонецПроцедуры. | |||
| 37
    
        kupec 01.02.23✎ 11:36 | 
        это работает после открытия и создания формы. Не работает именно когда происходит срабатывание обработки ожидания     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |