![]() |
![]() |
|
v8: Регл.задание (сохранить файл) не работает в клиент-серверной базе | ☑ | ||
---|---|---|---|---|
0
dft2014
13.07.14
✎
17:18
|
БП 3.0 управляемое приложение.
Подскажите, как сохранить файл в клиент-серверной базе. Сейчас файл не сохраняется. Но если базу запускаю в файловом варианте, то все сохраняется куда надо. Я так понимаю, что надо с сервера передать файл на клиент. Но как это сделать? Предистория: есть регламентное задание, которое обращается в ОбщийМодуль (в ОбщемМодуле стоит флаг "сервер"), в котором написаны: -Процедура ЗапросДубликатов() -Функция ПередатьФайлыДубликатов() Также в модуле менеджера документа "РеализацияТоваровИУслуг" написана Функция СформироватьДокументДубликатов() , в которой и формируется файл. Как сделать, чтобы файл сохранялся при запуске базы в клиент-серверном варианте? Вот код: // (написано в ОбщемМодуле Процедура ЗапросДубликатов() Экспорт МассивДляПередачи = РегистрыСведений.ЗапросДубликатов.ПолучитьДокументыДляПередачи(); ПередатьФайлыДубликатов(МассивДляПередачи); КонецПроцедуры Функция ПередатьФайлыДубликатов(МассивДляПередачи) Экспорт Для Каждого Строка Из МассивДляПередачи Цикл Если ЗначениеЗаполнено(Строка.Division) Тогда СтруктураРТиУ = СформироватьДокументДубликатов(Строка.ДокументРеализации,Истина,Ложь,Ложь,Ложь,Ложь,Строка.Division); КонецЕсли; КонецЦикла; КонецФункции // )написано в ОбщемМодуле // (написано в модуле менеджера документа "Реализация товаров и услуг" Функция СформироватьДокументДубликатов(ОбъектПечати) Экспорт Массив = Новый Массив; Массив.Добавить(ОбъектПечати); ТабДок = Неопределено; ТабДок = Документы.РеализацияТоваровУслуг.ПечатьАктаОбОказанииУслугИзмененный(Массив,Новый СписокЗначений); Если ТабДок = Неопределено Тогда Возврат Новый Структура("Адрес,ИмяФайла",Неопределено,Неопределено); КонецЕсли; ИмяФайла = ПолучитьНаименование(ОбъектПечати); Если ПустаяСтрока(ИмяФайла) = 0 Тогда АдресВременногоКаталога = "C:\TEMP\" + ИмяФайла + "_" + Каталог + ".pdf"; ТабДок.Записать(АдресВременногоКаталога,ТипФайлаТабличногоДокумента.PDF); Возврат Новый Структура("Адрес,ИмяФайла",АдресВременногоКаталога,ИмяФайла + ".pdf"); иначе Возврат 0; КонецЕсли; КонецФункции // )написано в модуле менеджера документа "Реализация товаров и услуг" |
|||
1
dft2014
13.07.14
✎
17:20
|
Советовали использовать временное хранилище, но как?
|
|||
2
dft2014
13.07.14
✎
17:25
|
Опечатка: Функция СформироватьДокументДубликатов() написана тоже в ОбщемМодуле. А в модуле менеджера документа "РеализацияТоваровИУслуг" написана Функция ПечатьАктаОбОказанииУслугИзмененный().
|
|||
3
Dmitry1c
13.07.14
✎
17:28
|
АдресВременногоКаталога = "C:\TEMP\" + ИмяФайла + "_" + Каталог + ".pdf";
это он будет делать там, где установлен сервер 1С и под пользователем usr1cv8 так что если у пользователя usr1cv8 нет прав, то запись файла будет невозможна |
|||
4
dft2014
13.07.14
✎
17:30
|
Вот функция, в которой формируется сам табличный документ (она прописана в модуле менеджера документа "Реализация товаров и услуг"):
Функция ПечатьАктаОбОказанииУслугТаня(МассивОбъектов, ОбъектыПечати) Экспорт ТабличныйДокумент = Новый ТабличныйДокумент; ТабличныйДокумент.АвтоМасштаб = Истина; ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет; ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Акт"; Макет = УправлениеПечатью.ПолучитьМакет("Документ.РеализацияТоваровУслуг.ПФ_MXL_Акт_Изм1"); ПараметрыПечати = Новый Структура(); ДанныеАктаОбОказанииУслуг = ПолучитьДанныеДляПечатнойФормыАктОбОказанииУслуг(ПараметрыПечати, МассивОбъектов); ТабличныйДокумент.Вывести(ОбластьМакета); Возврат ТабличныйДокумент; КонецФункции |
|||
5
PR
13.07.14
✎
17:33
|
(0) А вот это вот душераздирающее "HELP!!!" в сабже зачем?
Что бы никто не испытывал иллюзий на тему сетевой воспитанности ТС? |
|||
6
dft2014
13.07.14
✎
17:33
|
(3) На сервер 1С захожу под полными правами. Запускаю базы на самом сервере 1С. Далее запускаю регламентное задание на файловой базе - все формируется. Если же запускаю на серверной базе - то не сохраняется!
|
|||
7
dft2014
13.07.14
✎
17:34
|
Я так понимаю, что надо формировать табличный документ на сервере, а затем для сохранения передавать его на клиент. Подскажите, пож-та, как это сделать!!!
|
|||
8
dft2014
13.07.14
✎
17:36
|
Файл формируется в модуле менеджера документа "Реализация товаров и услуг" (см.пост(4)), что дальше с ним делать?
|
|||
9
dft2014
13.07.14
✎
17:39
|
(3) я захожу на сервер 1С под пользователем 1cserver, т.к. у нас именно под ним запущен сервер 1С. Но в саму программу захожу под своей учеткой (у меня тоже полные права). Это правильно?
Непонятно, что за пользователь usr1cv8, о котором Вы пишите в (3). |
|||
10
dft2014
13.07.14
✎
17:40
|
(5) Это крик души!!! Т.к. ОЧЕНЬ нужна помощь!!!
|
|||
11
PR
13.07.14
✎
17:52
|
(10) Странный ты человек. Вот у меня твой вопль изначально отбил всякое желание помогать.
|
|||
12
dft2014
13.07.14
✎
17:56
|
Если ставлю &НаКлиенте:
&НаКлиенте Функция СформироватьДокументДубликатов(ОбъектПечати) Экспорт То выдает кучу синтаксических ошибок, например: Процедура или функция с указанным именем не определена (СформироватьДокументДубликатов) (Проверка: Сервер) |
|||
13
alle68
13.07.14
✎
18:09
|
Что в сообщении об ошибке при выполнении задания написано, если она, конечно, есть?
|
|||
14
dft2014
13.07.14
✎
18:14
|
(13) Ошибки никакой не выдает, пишет, что регл.задание выполнено, но ничего не создает на диске.
|
|||
15
alle68
13.07.14
✎
18:36
|
Значение "АдресВременногоКаталога" известно, где файл ищется?
|
|||
16
Dmitry1c
13.07.14
✎
18:39
|
(9) >пользователь usr1cv8
пользователь, от имени которого запускается процесс rphost.exe, который в вашем случае и пытается сохранить файл. |
|||
17
Wobland
13.07.14
✎
18:40
|
>ПечатьАктаОбОказанииУслугТаня
господа гардемарины! а у нас сегодня без фото взлетает? |
|||
18
dft2014
13.07.14
✎
18:47
|
Добавила строчки для помещения файла в хранилище (смотрите комментарий в коде ниже). Извлечение из хранилища делаю в той же функции. Это правильно?
Функция СформироватьДокументДубликатов(ОбъектПечати) Экспорт Массив = Новый Массив; Массив.Добавить(ОбъектПечати); ТабДок = Неопределено; ТабДок = Документы.РеализацияТоваровУслуг.ПечатьАктаОбОказанииУслугИзмененный(Массив,Новый СписокЗначений); Если ТабДок = Неопределено Тогда Возврат Новый Структура("Адрес,ИмяФайла",Неопределено,Неопределено); КонецЕсли; ИмяФайла = ПолучитьНаименование(ОбъектПечати); Если ПустаяСтрока(ИмяФайла) = 0 Тогда АдресВременногоКаталога = "C:\TEMP\" + ИмяФайла + "_" + Каталог + ".pdf"; ТабДок.Записать(АдресВременногоКаталога,ТипФайлаТабличногоДокумента.PDF); // вот здесь добавила во временное хранилище(Начало АдресТабДок = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(АдресВременногоКаталога)); Двоичное=ПолучитьИзВременногоХранилища(АдресТабДок); // вот здесь добавила во временное хранилище)Конец Возврат Новый Структура("Адрес,ИмяФайла",АдресВременногоКаталога,ИмяФайла + ".pdf"); иначе Возврат 0; КонецЕсли; КонецФункции |
|||
19
dft2014
13.07.14
✎
18:49
|
(15) Да, я явно указываю путь для сохранения и имя файла:
АдресВременногоКаталога = "C:\TEMP\" + ИмяФайла + "_" + Каталог + ".pdf"; (16) Подскажите, как и где посмотреть от имени какого пользователя у нас запускается rphost.exe? |
|||
20
Wobland
13.07.14
✎
18:50
|
(18) это такая мантра - сунуть в хранилище, вынуть из хранилища? бессмысленно
|
|||
21
Escander
13.07.14
✎
18:54
|
(17) тебе нужно мужское фото топлесс? Ты чего это?
|
|||
22
Wobland
13.07.14
✎
18:56
|
(21) та не.. теперь я уверен, что нас водят за нос по поводу пола. вон в прошлой теме автор не скрывался
|
|||
23
PR
13.07.14
✎
18:56
|
(21) О чем тебе говорит 8-й символ поста (18)?
|
|||
24
Escander
13.07.14
✎
18:56
|
(20) так, стоп, какое в хранилище-из хранилища! У регламентного задания откуда возникнет клиент?
|
|||
25
dft2014
13.07.14
✎
18:57
|
(20) А как правильно сделать?
(17),(21) Если это так важно, то я - девушка. Фото (лица) будет всем помогавшим и принимавшим активное участие (без пошлостей). |
|||
26
Wobland
13.07.14
✎
18:57
|
dft2014
Вроде прояснилось: зашла на сам сервер 1С и запустила это регл.задание под СВОЕЙ учеткой. В результате оказалось, что файлы сохраняются не в моем каталоге, а в каталоге пользователя 1cserver: C:\Users\1cserver\AppData\Local\Temp ==== к чему бы это?.. |
|||
27
Escander
13.07.14
✎
18:57
|
(23) оно не определилось со своим полом до сих пор но уже одинэсит?
|
|||
28
dft2014
13.07.14
✎
18:58
|
(24) Регламентное, в клиент-серверной базе, всегда отрабатывает на сервере, если я правильно логику 1С понимаю. В хранилище я поместила. А как теперь его сохранить и вытащить из хранилища?
|
|||
29
dft2014
13.07.14
✎
18:59
|
(27) В профиле по-умолчанию всегда мужской пол, при регистрации на форуме, а поменять в карточке пол - не дает. Вот и мучаюсь )))
|
|||
30
Wobland
13.07.14
✎
19:00
|
(28) так сохраняй, без всяких хранилищ
|
|||
31
PR
13.07.14
✎
19:00
|
(25) Мадам, вы привносите в процесс коммерческую составляющую, торгуясь насчет фото.
Фото — это просто ритуал такой, а не какая-то безразмерная ценность :)) А вы им машете, как США санкциями перед Россией :)) |
|||
32
Escander
13.07.14
✎
19:00
|
(25).1 никак! у тебя клиента нет!
есть следующие варианты: 1.пиши куда тебе нужно, но на каталог получатель нужны права у того от имени кого запущен процесс - rphost (если нужно он подтвердит). 2. писать в базу, например в РС у которого есть реквизит - Хранилище значений. 3.Слать файло по почте. |
|||
33
dft2014
13.07.14
✎
19:01
|
(26) Это моя другая тема: это если из файловой копии запускать (я тогда не могла разобраться куда сохраняет). А сейчас пытаюсь отладить на клиент-серверной базе.
|
|||
34
Escander
13.07.14
✎
19:01
|
(29) по умолчанию читают СП
|
|||
35
dft2014
13.07.14
✎
19:01
|
(30) КАК???
|
|||
36
Wobland
13.07.14
✎
19:01
|
(33) то есть, взаимопонимание с сервером не было достигнуто, хотя всё стало понятно?
|
|||
37
Wobland
13.07.14
✎
19:02
|
(35) .Записать()
|
|||
38
rphosts
13.07.14
✎
19:02
|
(32).1 подтверждаем
|
|||
39
dft2014
13.07.14
✎
19:03
|
(32) Подскажите, как и где посмотреть от имени какого пользователя у нас запускается rphost.exe? Или это будет тот же пользователь, от имени которого запускается сервер 1С?
|
|||
40
Wobland
13.07.14
✎
19:04
|
кстати, о пошлостях. старинный йумор. пикантная вставка на ассемблере
http://compuhumour.narod.ru/listing/prog_party.html |
|||
41
Escander
13.07.14
✎
19:04
|
(39) d lbcgtnxtht
|
|||
42
Escander
13.07.14
✎
19:04
|
в диспетчере задач, например...
или в администрировании - список служб |
|||
43
dft2014
13.07.14
✎
19:05
|
(37) Записать() что? Вот так не записывает в клиент-серверной базе:
АдресВременногоКаталога = "C:\TEMP\" + ИмяФайла + "_" + Каталог + ".pdf"; ТабДок.Записать(АдресВременногоКаталога,ТипФайлаТабличногоДокумента.PDF); АдресТабДок = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(АдресВременногоКаталога)); |
|||
44
Escander
13.07.14
✎
19:06
|
(40) сунул-высунул.... пикантно, если вы поняли о чём я
|
|||
45
Wobland
13.07.14
✎
19:06
|
(43) ну не записывает, так не записывает, что уж поделать
|
|||
46
Escander
13.07.14
✎
19:06
|
(43) третья строка лишняя
|
|||
47
Wobland
13.07.14
✎
19:07
|
(43) ещё можно получать имя временного файла. туда точно можно будет
|
|||
48
Wobland
13.07.14
✎
19:07
|
+(46) а то склещивание случится
|
|||
49
Escander
13.07.14
✎
19:09
|
(47) моветон писать в каталог временных файлов... если не хочешь сразу удалять.
|
|||
50
Escander
13.07.14
✎
19:09
|
(48) эээээ, ну короче ты меня понял....
ещё-бы дедлуком девушку пугал. |
|||
51
dft2014
13.07.14
✎
19:09
|
(42) В диспетчере у нас пользователь 1cserver, у него полные права.
(32) Объясните, пож-та фразу "пиши куда тебе нужно, но на каталог получатель нужны права у того от имени кого запущен процесс - rphost (если нужно он подтвердит).": Я захожу через удаленное подключение на сервер 1С под учеткой 1cserver. Далее запускаю под своей учеткой клиент-серверную базу (не 1cserver) и регламентное задание. Этого достаточно? |
|||
52
Wobland
13.07.14
✎
19:10
|
(49) я не наю, что там мадам планирует с ними делать. знакомые слова из (0) не вошли в мой разум
|
|||
53
dft2014
13.07.14
✎
19:10
|
(46) Тогда без этой лишней строчки остается исходный код в (0), но он не срабатывает на клиент-серверной базе!!!
|
|||
54
Wobland
13.07.14
✎
19:12
|
(53) не срабатывает? это ЖР так сказал?
|
|||
55
Escander
13.07.14
✎
19:12
|
(51) .1 все процессы сервера от пользователя 1cserver? - НЕ ВЕРЮ!
.2 например так:С:\OUT_FILE\23_59_59\ |
|||
56
Escander
13.07.14
✎
19:13
|
(53) НЕ ВЕРЮ!!!
|
|||
57
dft2014
13.07.14
✎
19:14
|
(54) В ЖР вообще ничего не пишется!
|
|||
58
Wobland
13.07.14
✎
19:15
|
(57) задание не запустилось штоль? а мы тут страдаем все
|
|||
59
Escander
13.07.14
✎
19:15
|
(58) кста, а что там консоль регламентны заданий говорит?
|
|||
60
dft2014
13.07.14
✎
19:16
|
(59) У меня нет консоли под упр.приложение (((
|
|||
61
Escander
13.07.14
✎
19:16
|
самое главное, а какая платформа-то? а то девушка имеет **** с 8.5.3.1068 а я тут голов ломаю
|
|||
62
Wobland
13.07.14
✎
19:17
|
(60) запусти в обычном
(61) это плохо? вчера взгромоздил себе поиграться |
|||
63
dft2014
13.07.14
✎
19:17
|
(58) Запустилось, в ЖР написано, что Регл.задание запустилось и закончилось.
Факт - что на файловой копии все тоже самое работает!!! |
|||
64
dft2014
13.07.14
✎
19:18
|
(61) 8.2.19
|
|||
65
Wobland
13.07.14
✎
19:18
|
(63) и чего врём? ищи файл
|
|||
66
Escander
13.07.14
✎
19:18
|
(62).1 опередил...
.2 игрался в пятницу... у меня с хранилищем какая-то шняга была невнятная... но т.к. ухожу в отпуск не разобрался. |
|||
67
Escander
13.07.14
✎
19:20
|
к записи табличного документа есть в СП примечание: Не поддерживается сохранение в PDF картинок типа Метафайл.
у вас там не метафайл сохраняется? |
|||
68
Escander
13.07.14
✎
19:21
|
лана мне через 4 часа за руль, пойду покимарю
|
|||
69
Wobland
13.07.14
✎
19:21
|
(67) дык, то ж про картинки а не пдф целиком.. не?
|
|||
70
dft2014
13.07.14
✎
19:24
|
(69) У меня PDF
|
|||
71
Wobland
13.07.14
✎
19:27
|
(70) где лежит?
|
|||
72
dft2014
13.07.14
✎
19:31
|
(71) Не поняла вопроса...
|
|||
73
Wobland
13.07.14
✎
19:32
|
шайтан-вьюером посмотреть? только быстро
|
|||
74
dft2014
13.07.14
✎
19:33
|
(73) Вы о чем???
|
|||
75
dft2014
13.07.14
✎
19:34
|
Ключевой момент, что на на файловой копии, которую я разместила на том же 1С сервере, все работает!!!
|
|||
76
Wobland
13.07.14
✎
19:36
|
(74) team viewer, ammyy
|
|||
77
Wobland
13.07.14
✎
19:36
|
а то я до сотни не дотерплю. а финал узнать хочется
|
|||
78
dft2014
13.07.14
✎
19:40
|
(76) Не установлен и политикой безопасности - запрещено (((
|
|||
79
alle68
13.07.14
✎
19:45
|
У учётки, запустившей агента 1с (последняя колонка в консоли служб), на папку "С:\TEMP" есть права?
Какое полное имя разыскиваемого файла (Каталог чему равен)? |
|||
80
dft2014
13.07.14
✎
20:41
|
(79) Права полные. Каталог C:\TEMP. Полное имя файла получается: 2_460050_20140605_976_aktcs_МО4.pdf
|
|||
81
Escander
13.07.14
✎
20:44
|
(78) тимвьювер не обязательно ставить, можно и запустить и этого хватит
|
|||
82
dft2014
13.07.14
✎
20:45
|
Мне кажется, тут дело не в правах, а в том, что в управляемом приложении, в клиент-серверной базе, нельзя сохранить файл явно. Надо каким-то образом использовать временное хранилище.
|
|||
83
dft2014
13.07.14
✎
20:45
|
(81) политикой безопасности не запустится, да он и не установлен и прав нет установить.
|
|||
84
dft2014
13.07.14
✎
20:47
|
Пробовала указывать и каталог C:\Users\1cserver\AppData\Local\Temp - результат нулевой.
|
|||
85
Escander
13.07.14
✎
20:47
|
(83) его не нужно устанавливать!!! достаточно запуститьь экзешник
|
|||
86
Escander
13.07.14
✎
20:47
|
(82) >нельзя сохранить файл явно.
как хорошо что я про такое не знал, когджа подобное реализовывал |
|||
87
dft2014
13.07.14
✎
20:48
|
(85) Пробовала и не раз - безопасники все отрубили.
|
|||
88
dft2014
13.07.14
✎
20:51
|
(86) А как же вот это (читать внизу): http://wiki.kint.ru/index.php/Работа_с_хранилищем_значений_в_1Cv82
"В управляемом приложении реализован новый механизм работы с файлами. Он обеспечивает обмен файлами между информационной базой и клиентским приложением. Особенностью данного механизма является то, что он ориентирован на использование в тонком клиенте и Веб-клиенте и разработан с учетом ограничений на работу с файлами, накладываемыми веб-браузерами. Механизм представляет собой набор методов, с помощью которых можно поместить данные, хранящиеся локально у пользователя, во временное хранилище информационной базы, перенести эту информацию из временного хранилища в базу данных и получить ее обратно на компьютер пользователя. Наиболее распространенные прикладные задачи, решаемые этим механизмом, – это хранение сопроводительной информации, например, изображений товаров, связанных с договорами документов и т. п. " |
|||
89
Escander
13.07.14
✎
20:54
|
(87) явным образом из пользовательского режима запустит тот код который у тебюя в регламентном не отрабатывает - имхается, что права у вас мягко говоря не полные
|
|||
90
hhhh
13.07.14
✎
20:54
|
(87) но точно у пользователя usr1cv8 сервера есть полные права на диск C: сервера?
|
|||
91
Escander
13.07.14
✎
20:55
|
(88) какое мне доло до 100500 объяснений почему это не должно работать если у меня это работает
|
|||
92
Escander
13.07.14
✎
20:56
|
(90) да там упоротые безопасники закрыли всё а крайней сделали 1С
|
|||
93
hhhh
13.07.14
✎
20:56
|
(88) на сервере у папки C:\temp сделайте свойства, закладка безопасность, там нажмите Дополнительно и скрин сюда выложите.
|
|||
94
Escander
13.07.14
✎
20:59
|
dft2014, когда сервер 1С запущен с ключом дебаг попытка выполнить (89) покажет где проблема
|
|||
95
dft2014
13.07.14
✎
21:02
|
(93)Скрин завтра с утра выложу, т.к. сейчас не на работе. Но там 100% полные права у папки C:\temp, т.к. еще в пятницу я таким образом сама проверила доступ и среди пользователей был и пользователь 1cserver. Кстати под ним же, если это имеет значение, заущен и агент 1С (я тоже лично проверяла).
|
|||
96
dft2014
13.07.14
✎
21:03
|
(94) Сервер с этим ключом у нас запущен, но в отладку на серверной базе не заходит. Хотя и флажки на предметах отладки стоят и прочее. Поэтому отлаживаю на файловой копии.
|
|||
97
dft2014
13.07.14
✎
21:04
|
(90) Полностью на диск С у пользователя 1cserver прав нет.
|
|||
98
hhhh
13.07.14
✎
21:06
|
(97_ тога проверьте наследование у папки c:\temp если задано наследование, убейте его.
|
|||
99
dft2014
13.07.14
✎
21:08
|
(98) Хорошо, завтра спрошу у админов.
Также у меня не отправляется почта из 1С из этой же клиент-серверной базы, хотя из файловой копии все отправляется. Я тему создала v8: v8: Отправка почты из 1С на серверной базе не срабатывает но вопрос так и остался нерешенным... |
|||
100
Escander
13.07.14
✎
21:08
|
(96) сделай контрольный вывод хоть после каждой строки кода....
насчёт отладка не срабатывает - перезапустите сервер 1С |
|||
101
dft2014
13.07.14
✎
21:13
|
(100) Уже и перезагружали и чего только не делали - не хочет в отладке работать на сервере!
А что именно выводить? |
|||
102
Escander
13.07.14
✎
21:16
|
(101) Сообщить("Строка №101 выполнена");
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |