Имя: Пароль:
1C
 
Код выполняется только в отладке
0 AlexToo
 
27.12.16
12:51
Люди, помогите!!! Конфа КА 2.0 платформа 3.0 управляемое приложение, дописал доработку по загрузке ПДФ файлов, и тут ситуация странная если я смотрю код по отладке т.е. отладчиком прохожу код, тогда у меня ПДФ файл добавляется к документу, если же без отладки просто запустить то не добавляется, уже голову сломал что не так...
1 AlexToo
 
27.12.16
12:53
Функции по добавлению файла выполняются на клиенте, в отладке файлы вижу, всё есть.
2 Вафель
 
27.12.16
12:53
сообщить везде добавь
3 Franchiser
 
гуру
27.12.16
12:54
Добавь обработку в базу
4 Cyberhawk
 
27.12.16
12:56
Думаю, причина в контексте исполнения кода
5 Cyberhawk
 
27.12.16
12:56
Или кэше метаданных и/или клиент-серверных вызовов
6 AlexToo
 
27.12.16
12:57
(3) там и так всё в общих модулях прописанно
7 Любопытная
 
27.12.16
12:58
Или не в отладке запускается другая обработка
8 AlexToo
 
27.12.16
12:58
(4) (5) как проверить? У меня получается всё на клиенте выполняется, и есть две функции которые обращаются на сервер и возвращают значение типа булево.
9 Franchiser
 
гуру
27.12.16
12:58
Ну, почисти кеш. Вообще лучше читать файлы на сервере.
10 SergTheGreat
 
27.12.16
12:59
(0) А сам документ, после добавления к нему PDF, ты не забыл записать?
11 Cyberhawk
 
27.12.16
13:00
(8) Почистить оба кэша для начала
12 Cyberhawk
 
27.12.16
13:01
Ну и покажи на картинке, что это за "без отладки просто запустить"
13 AlexToo
 
27.12.16
13:01
(7) у меня получается есть расширение в нём в форме списка журнала документов прописана кнопка типа "Начать загрузку" с неё и начинается, затем передается на общий модуль который работает на клиенте и в нём есть пару функций который обращаются к модулю который на сервере.
14 Franchiser
 
гуру
27.12.16
13:04
какие галочки у модуля? Сервер, вызов сервера?
15 AlexToo
 
27.12.16
13:19
(12) блин не знаю как на картинке показать))) ну когда конфигуратор закрыт полностью, просто кнопку загрузить нажимаю, происходит загрузка и всё.
16 Cyberhawk
 
27.12.16
13:22
(15) Отладчик к какому сеансу подключен (когда все отрабатывает как надо)? Покажи на картинке
17 Cyberhawk
 
27.12.16
13:23
Плюс покажи на картинке диалог "О программе" из сеанса, в котором без отладчика, как ты говоришь, не работает
18 AlexToo
 
27.12.16
13:25
(17) сейчас
19 AlexToo
 
27.12.16
13:48
(16) вот о программе https://yadi.sk/i/6EDpqZ4q35Gfgm, вот отладчик: https://yadi.sk/i/aqee6BVo35GnyF
20 AlexToo
 
27.12.16
13:50
(14) у клиентского модуля в которм происходи основная работа галка "Клиент (Управляемое приложение)", у серверного модуля который выполняет пару функций галки:Сервер, Вызов сервера.
21 AlexToo
 
27.12.16
13:50
(11) кэш почистил, не помогло, так же пробовал запустить обновление информационной базы, не помогло(((
22 mxs089
 
27.12.16
13:58
попробуй переустановить 1с, мне помогало
23 ELEA26
 
27.12.16
14:00
(21) Толстым клиентом - тот же результат?
24 AlexToo
 
27.12.16
14:02
(22) да не могу я переустановить 1С.
25 AlexToo
 
27.12.16
14:02
(23) под толстым клиентам не пробовал, все пользователи под тонким работают
26 Franchiser
 
гуру
27.12.16
14:21
Серверный кеш почисти.
Покажи код который не отрабатывает
27 Franchiser
 
гуру
27.12.16
14:25
Закомментируй попытки
28 AlexToo
 
27.12.16
14:29
(26) как серверный кэш почистить?
29 AlexToo
 
27.12.16
14:33
(26) подозреваю, что не срабатывает процедура по добавлению файла к документу:
&НаКлиенте
Функция ДобавитьПДФ(Акт, ПДФ)
    
    
    
    
    Файл = Новый Файл(ПДФ);
ВладелецФайла=Акт;
ИмяСоздаваемогоФайла=файл.ИмяБезРасширения;        
ПолноеИмяФайла=ПДФ;
ИдентификаторФормы=Акт.УникальныйИдентификатор();
ОбщиеНастройки = ФайловыеФункцииСлужебныйКлиентСервер.ОбщиеНастройкиРаботыСФайлами();

        ФайловыеФункцииСлужебныйКлиентСервер.ПроверитьВозможностьЗагрузкиФайла(Файл);
        
        Если ОбщиеНастройки.ИзвлекатьТекстыФайловНаСервере Тогда
            АдресВременногоХранилищаТекста = "";
        Иначе
            АдресВременногоХранилищаТекста =
                ФайловыеФункцииСлужебныйКлиентСервер.ИзвлечьТекстВоВременноеХранилище(
                    ПолноеИмяФайла, ИдентификаторФормы);
        КонецЕсли;
    
        ВремяИзмененияУниверсальное = Файл.ПолучитьУниверсальноеВремяИзменения();
        
        //ОбновитьСостояниеОСохраненииФайлов(Объект, Файл, 1, ИмяСоздаваемогоФайла);
        ПоследнийСохраненныйФайл = Файл;
        
        ПомещаемыеФайлы = Новый Массив;
        Описание = Новый ОписаниеПередаваемогоФайла(Файл.ПолноеИмя, "");
        ПомещаемыеФайлы.Добавить(Описание);
        
        ПомещенныеФайлы = Новый Массив;
        //ПоместитьВоВременноеХранилище(ПомещаемыеФайлы);
        Если НЕ ПоместитьФайлы(ПомещаемыеФайлы, ПомещенныеФайлы, , Ложь, ИдентификаторФормы) Тогда
            ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
                СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                    НСтр("ru = 'Ошибка при помещении файла
                               |""%1""
                               |во временное хранилище.'"),
                    Файл.ПолноеИмя) );
            
        КонецЕсли;
        
        АдресВременногоХранилищаФайла = ПомещенныеФайлы[0].Хранение;
        
        ИмяБезРасширения = ?(ПустаяСтрока(ИмяСоздаваемогоФайла), Файл.ИмяБезРасширения, ИмяСоздаваемогоФайла);
        // Создание карточки Файла в базе данных.
        ПрисоединенныйФайл = ПрисоединенныеФайлыСлужебныйВызовСервера.ДобавитьФайл(
            ВладелецФайла,
            ИмяБезРасширения,
            ОбщегоНазначенияКлиентСервер.РасширениеБезТочки(Файл.Расширение),
            ,
            ВремяИзмененияУниверсальное,
            АдресВременногоХранилищаФайла,
            АдресВременногоХранилищаТекста);  
            
            Сообщ = Новый СообщениеПользователю;
    Сообщ.Текст = "К документу: " + Акт+" загружен файл: "+Файл.Имя;
    Сообщ.Сообщить();


        КонецФункции
т.к. сообщение из этой процедуры не отображается, но если проходить отладкой и заходить в эту процедуру тогда код работает
30 k1noshkin
 
27.12.16
14:35
(25) Пользователи то под тонким работают, а отладку,наверно, под толстым запускаешь.
31 AlexToo
 
27.12.16
14:41
(30) я щас переделал эту доработку внешней обработкой, и всё работает.я не понимаю в чём причина. внешнюю обработку запускаю так же на тонком клиенте.
32 Cyberhawk
 
27.12.16
14:43
(31) Что за внешняя обработка, покажи на картинке и в чем ее отличие от сценария, когда у тебя не работает (тоже покажи на картинке)
33 Cyberhawk
 
27.12.16
14:43
Я имею в виду, кнопка там в обработке этой внешней или что у тебя
34 AlexToo
 
27.12.16
14:53
(33) Вот доработка в самой конфигурации: https://yadi.sk/i/4kdBa5c235HX4z при помощи расширения добавлена кнопка "Загрузить данные по МГМН" по нажатию на неё происходит загрузка документов Акт выполненных работ и к этим актам должны цепляться пдф файлы, акты загружаются, но пдф не цепляются.
А вот внешняя обработка https://yadi.sk/i/e3UKZxYd35HY8q , она цепляет только ПДФ файлы, после того как акты уже загружены.
Код один и тот же, даже разбиение на клиент и сервер тоже самое.
35 Cyberhawk
 
27.12.16
14:57
"акты загружаются, но пдф не цепляются" // Может не записываешь объекты в БД до того, как хочешь прицепить к ним файлы?
36 Cyberhawk
 
27.12.16
14:57
(понятно, что так делать по сути может и не надо и даже плохо, но вдруг)
37 Cyberhawk
 
27.12.16
14:57
Ну а так-то раз у тебя расширение, то велика вероятность причины все-таки в кэше метаданных
38 AlexToo
 
27.12.16
15:02
(35) да это я сразу проверил, акты уже проведенные к тому моменту как ПДФ цепляться начинают в отладке же я когда по строчно проходу я вижу что он созданный акт находит и цепляет к нему пдф.
39 AlexToo
 
27.12.16
15:04
(37) да расширение вообще не моя доработка, по-моему вообще не нужна т.к. конфа и без расширения дофига доработанная зачем было в расширение выносить не понятно. Но переделывать всё тоже пока не берусь. А подскажите пожалуйста, если Вы считаете, что дело в кэше, как правильно его почистить-то? тут писали почистить серверный кэш, не понимаю как правильно эт сделать? И кэш тогда у всех пользователей чистить придется?
40 Franchiser
 
гуру
27.12.16
15:25
(39) на сервере папка srvinfo, там есть каталог с сеансовыми данными sntx как-то называется. Но нужно останавливать сервер.
41 ELEA26
 
27.12.16
15:26
(39) "C:\Program Files\1cv8\srvinfo\reg_1541\snccntx....." при остановленном сервере.
Но после этого у некоторых не стартует служба. У меня такого не было, но раз народ пишет - будь готов.
42 ELEA26
 
27.12.16
15:26
(41) саму папку не грохни! Только что внутри.
43 Лохматые Уши
 
27.12.16
15:27
(39) Также как и кеш пользователя. Но это делаешь для того пользователя, под которым запущена служба сервера 1С.
C:\Users\Вася Пупкин\AppData\Local\Temp
Предварительно стопоришь сервер и все rphost.
44 AlexToo
 
27.12.16
15:34
(43) (42) (41) (40) спасибо буду знать, но увы мне никто не позволит остановить службы сервера. У всех же дофига важная работа.
45 Franchiser
 
гуру
27.12.16
15:34
(29) по коду не понял: переменные владелецфайла и Акт - одно и то же?
46 ELEA26
 
27.12.16
15:35
(44) вечерком... :)
47 AlexToo
 
27.12.16
15:35
(45) да, одно и то же
48 AlexToo
 
27.12.16
15:37
(46) я сам на удалёнке без полного доступа, а их сис. админ вряд ли захочет оставаться ради меня и отрубать службы.
49 ELEA26
 
27.12.16
15:50
(48) ну это организационный вопрос. У нас это вообще зона ответственности админов. Нам надо перегрузить - сообщаем и ждем обратной связи, когда готово.
Тут уж как у вас устроено - так и поступайте :)
Ошибка? Это не ошибка, это системная функция.