Имя: Пароль:
1C
1С v8
Файл не записывается на диск
,
0 shlyahtich
 
09.04.14
11:46
На Сервере выполняю действия, (на платформе 8.2 все работало)

        ИмяФайла = "D:\wqwerty.xml";
    Файл = Новый Файл(ИмяФайла);    
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.ОткрытьФайл(ИмяФайла);
    ЗаписьXML.ЗаписатьОбъявлениеXML();
    ЗаписьXML.ЗаписатьНачалоЭлемента("root");
    ЗаписьXML.ЗаписатьКонецЭлемента();
    ЗаписьXML.Закрыть();

Файл на диске не появляется
хэлп ми плиз ибо что то уже даже пиво с водкой не помогает понять где я и что с моим кодом
1 Wobland
 
09.04.14
11:47
>Файл на диске не появляется
какие ваши доказательства?
2 H A D G E H O G s
 
09.04.14
11:48
Прав на корень диска d:\ у пользователя ОС, под которым работает служба 1С - нет.
3 vicof
 
09.04.14
11:49
(2) +1
(0) Пить меньше надо. Или больше.
4 shlyahtich
 
09.04.14
11:52
(1)
диск показать?
Чесс слово не вру
5 Zamestas
 
09.04.14
11:55
(4) Сделай папку на сервере - дай полные права для всех и попробуй записать туда файл.
6 shlyahtich
 
09.04.14
11:59
Права все есть все есть по полной - я уж башку сломал
мммм.. щас буду пробовать на файловой базе что там произойдет
7 shlyahtich
 
09.04.14
12:00
(2) я не только в корень пишу но и в папку
8 shlyahtich
 
09.04.14
12:03
пойду попинаю админов -
(5) мне надо чтоб пользователь на клиентской машине писал в свою папку
9 shlyahtich
 
09.04.14
12:14
(7) соврал
когда пишу файл вот так

    ИмяФайла = "D:\1c8\wqwerty.xml";
    Файл = Новый Файл(ИмяФайла);    
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.ОткрытьФайл(ИмяФайла);
    ЗаписьXML.ЗаписатьОбъявлениеXML();
    ЗаписьXML.ЗаписатьНачалоЭлемента("root");
    ЗаписьXML.ЗаписатьКонецЭлемента();
    ЗаписьXML.Закрыть();


выдается сообщение "Каталог не обнаружен D:\1c8\wqwerty.xml"
запускаю на клиентской машине где я админ
база клиент серверная
10 vicof
 
09.04.14
12:15
(9) Код где выполняется?
11 Галахад
 
гуру
09.04.14
12:16
Можно так попробовать:

ИмяФайла = КаталогВременныхФайлов() + "wqwerty.xml";
12 shlyahtich
 
09.04.14
12:17
(9) на сервере
13 Zamestas
 
09.04.14
12:19
(12) Дык или на клиенте пиши, или на сервере и на клиента передавай.
14 1dvd
 
09.04.14
12:19
(12) а на сервере есть каталог D:\1c8\ ?
15 vicof
 
09.04.14
12:27
(12) Теперь нужно усиленно подумать :)
16 shlyahtich
 
09.04.14
12:29
(13) Так пользователь выбирает каталог на своей машине локальной.
Пишется далее на сервере (код вышеописанный выполняется на сервере)

ИмяФайла передается с клиента в эту процедуру (пользователь открывает диалог и пишет куда сохранить )


&НаКлиенте
Процедура Выгрузить()
    
    ПараметрКоманды = Новый Массив;
    
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
    Диалог.Заголовок = "Сохранить";
    Диалог.МножественныйВыбор = Ложь;
    Диалог.Расширение="xml";
    Диалог.Фильтр="Табличный документ(*.xml)|*.xml|Табличный документ(*.XML)|*.XML";
    Если НЕ Диалог.Выбрать() Тогда     
        Возврат;
    Иначе    
        ИмяФайла = Диалог.ПолноеИмяФайла;
    КонецЕсли;
    
    Для Каждого стр из ЭтаФорма.Элементы.Список.ВыделенныеСтроки  Цикл
        ПараметрКоманды.Добавить(стр);  
    КонецЦикла;    
    ВыгрузитьВФайл(ПараметрКоманды,ИмяФайла);    
    
КонецПроцедуры

&НаСервере
Процедура ВыгрузитьВФайл(ПараметрКоманды,ИмяФайла) Экспорт
    
    мТаблица = Новый ТаблицаЗначений;
    мТаблица.Колонки.Добавить("Ссылка");
    
    Файл = Новый Файл(ИмяФайла);    
    
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.ОткрытьФайл(ИмяФайла);
    ЗаписьXML.ЗаписатьОбъявлениеXML();
    ЗаписьXML.ЗаписатьНачалоЭлемента("root");
    
    мТаблица.Очистить();
    
    Для Каждого ДокСсылка Из ПараметрКоманды Цикл
        
        ЗаписатьДокументВXML(ДокСсылка,ЗаписьXML,мТаблица);
        
    КонецЦикла;
    
    ЗаписьXML.ЗаписатьКонецЭлемента();
    ЗаписьXML.Закрыть();
    
КонецПроцедуры    



17 H A D G E H O G s
 
09.04.14
12:31
(16) Рекомендую поменять профессию.
18 shlyahtich
 
09.04.14
12:33
(17) учту
(12)то есть файл надо создать на сервере во временной папке а потом его вернуть на клиента - так выходит
сам 1С не понимает то что 20 лет назад в ADO еще было реализовано
19 1dvd
 
09.04.14
12:34
(18) это программист не понимает
20 shlyahtich
 
09.04.14
12:37
(19) (18) 1С это не программирование

стоит только прочитать дифирамбы по поводу динамических списков, которые уже в 1995 году успешно работали еще в BDE чтобы понять это)))

Я понимаю, что они сделали но не могу понять почему не реализван простейший функционал, который работает с пользователем на клиенте АВТОМАТИЧЕСКИ при работе например с базами через другие компоненты.
21 ДенисЧ
 
09.04.14
12:38
(20) вон из профессии.
Будешь тут ещё загаживать светлый образ 1сника...
22 Torquader
 
09.04.14
12:39
(20) Файл хранится на диске и туда же и пишется.
Но, на клиенте и на сервере диски могут быть совершенно разные.
Если мы пишем на клиенте, то ничего нам не мешает, только для записи данные нужно как-то передать с сервера.
Если мы хотим писать на сервере, то потом нужно файл передавать на клиента, что на самом деле, сложнее.
23 Torquader
 
09.04.14
12:40
(20) Для тебя 1С тоже много чего делает автоматически - например - разделяет твой кривой код на клиентский и серверный, и, в отличие от тебя, прекрасно понимает, что и где выполняется.
24 Серго62
 
09.04.14
12:42
(20) >>...не могу понять почему не реализван простейший функционал, который работает с пользователем на клиенте...

Как он может работать, если у тебя русским языком написано - на сервере?

>>&НаСервере
>>Процедура ВыгрузитьВФайл(ПараметрКоманды,ИмяФайла) Экспорт

Сам то понимаешь чего хочешь?
25 shlyahtich
 
09.04.14
12:48
коллеги спорить уже скучно) объяснять что имелось ввиду неинтересно
для любопытных - напишите простейший код взаимодействия с сервером любым через ADO и почувствуйте разницу. А еще понимание того что Сервер 1С как таковой не является сервером выполняющим функцию сервера приложений, а отбрасывая вопросы распределения памяти по процессам решает только задачу трансляции запроса на разные сервера. Потому DML не реализован и много чего еще. А кроме того например БП30 в клиент серверном варианте больше не поддерживает толстого клиента, и можно много рассуждать но сами то понимаете что хлеб свой получаем от того что продукт СЫРОЙ вечно и требует дорабтки. Так что недостаток 1С+политика его распространения далА хлеба "программистам" до поры до времени пока например R-Style не займется эти проектом ;-)
26 ДенисЧ
 
09.04.14
12:50
(25) И как ты, такой красивый, в двери-то проходишь, пальцами не цепляешься...
27 ДенисЧ
 
09.04.14
12:50
а "БП30 в клиент серверном варианте больше не поддерживает толстого клиента"

вообще бредятина на уровне "сам дурак"...
28 H A D G E H O G s
 
09.04.14
12:58
Я щетаю, Сергей Иванович полностью прав и ему не стоит иметь дел с этой б-гмерской 1С и шевелить булками из данной специальности.
29 shlyahtich
 
09.04.14
15:23
(26)v8: БП. 3.0.30.12

В клиент серверном варианте в толстом клиенте при открытии форм выдает ошибку Ошибка при подписке ОбработкаПолученияФормыПользователяДляНеразделенныхПользователей" на событие ОбработкаПолученияФормы произошла ошибка.Обработчки события не найден.

Причина в том что в модуле ПользователиСлужебныйВМоделиСервисаБТС  крыжик Вызов сервера не стоит, и еще много всего интересного понаделано такого кривого

(27) а я и не имею с ней дела, я из кривой 1С данные забираю для других целей, так что булки мои шевеляться в отличие от мозга спецов в 1С которые такие релизы выпускают.

Или скажете нет таких багов в нем?
30 Wobland
 
09.04.14
15:34
(29) у меня не выдаёт, про крыжик знаю, не стоит
31 H A D G E H O G s
 
09.04.14
15:35
(29) Я щетаю, что 1С - дико динамично развивающееся решение.
Как в платформе, так и в конфигурациях.

Особенно поражает количество абилок в платформе, "из коробки".

Многие полезны, некоторые - нафиг не нужны, иногда - само зло. Но не в этом суть. Суть в том, что:

1) Конечно при такой динамике будут ошибки, много и еще каких.
2) Дятлы, не угнавшиеся за паровозом, будут фрустрировать и фаломорфировать и гнать на 1С гору мусора. Особенно спасибо за это УправляемомуПриложению (в простонародье, Тонкому клиенту), он дает прикурить динозаврам.
32 shlyahtich
 
09.04.14
16:01
(30)
в толстом клиенте
33 shlyahtich
 
09.04.14
16:04
(31) это философия стакан либо пуст либо полон наполовину, но если бы такое динамичное решение управляло вашим банковским счетом, думаю вы запели бы другим голосом. Или например можно для автопилота написать программное управление такое вот динамично развивающееся, но щетаю уважаемый защемится сесть в этот аппарат, а вот почему то финансами управлять таким образом позволительно?
34 shlyahtich
 
09.04.14
16:06
35 Zamestas
 
09.04.14
16:07
(33) Тут больше зависит от кривизны рук, которые решение пишут...