Имя: Пароль:
1C
 
1С и Управляемые формы
,
0 Mikhail2014
 
04.10.16
19:33
Привет! Граждане 1Сники, подскажите, пожалуйста, отчаявшемуся человеку)) Делаю на управляемых формах банальную выгрузку в эксель. Все написал. Все работает. Но! В наркоманском 1С просто сделать это не катит))

Изначально все действия я делал на сервере (ибо на клиенте 1Синка много чего не разрешает, нельзя, вот, и все)))))) Там создал ком-объект эксель, получил для него все данные, сформировал файл и сохранил. Все заработало. Но, пользователи то будут делать его не на сервере...

Тогда я перенес свою процедуру на клиент. Ком-объект эксель там создался (о чудо!). Там с сервера отдельными процедурами(ппц...) получил многие данные, заполнил свой файл. Но! Оказывается, 1Сина не в состоянии получить некоторые данные объекта на клиенте, например - есть реквизит Контрагент, а у него свой реквизит - Наименование. Так вот Контарегнта получить моно, а его Наименование - уже нет... На этом мой примитивный мозг разработчика C++, PHP, Javascript, а в прошлом систменого администратора перестал функционировать и я вынужден просить вашей помощи - подскажите, мне, несчастному, как же сдедать эту выгрузку на управляемой форме, чтобы пользователь мог выгрузить нужные ему данные в эксель и сохранить полученный файл...

P.S. Если серьезно. Ребят, как вы работаете с этим наркомакнством вообще? У меня контракт 1Сника заканчивается через пару месяцев, я уже молюсь на эту дату.))
1 Cyberhawk
 
04.10.16
19:34
С клиента вызвать сервер, вот и все
2 Cyberhawk
 
04.10.16
19:34
А что за "контракт 1Сника заканчивается через пару месяцев", ты вахтовик-сисадмин в Норильске что ли?
3 Mikhail2014
 
04.10.16
19:37
(1) Так вызвал же)) И на сервере сначала все сделал, пользователь у себя этот файл сохранить не может)) Он не на сервере работает. На другом компьюетере вообще.
4 Mikhail2014
 
04.10.16
19:38
То есть у меня Workbook.saveas(объект.Путь); делается на сервере, а этот самый путь пользователь указывает на клиенте.
5 Cyberhawk
 
04.10.16
19:38
Указывай общий сетевой каталог, доступный как клиенту, так и серверу
6 Mort
 
04.10.16
19:40
Мой знакомый программист на си++ въехал в 1с и уф за неделю. Дело похоже все-таки не в 1с
7 Mikhail2014
 
04.10.16
19:41
(2) Долгая история. 1сником я изначально работал по временному контракту, когда соглашался, еще не знал, что это такое. Издалека это, скажем так, изделие, какзлось динамичной развивающейся платформой.
8 SadrArt
 
04.10.16
19:41
(0) Сам ты наркоман! Чудак.
9 Mauser
 
04.10.16
19:41
(0) > У меня контракт 1Сника заканчивается через пару месяцев, я уже молюсь на эту дату.))

В конце строки закрывающие скобочки - это руки.
10 Mikhail2014
 
04.10.16
19:41
(6) Въехать можно во все что угодно))) Вопрос, а надо ли?
11 Gary417
 
04.10.16
19:45
<Но! Оказывается, 1Сина не в состоянии получить некоторые данные объекта на клиенте>
<На этом мой примитивный мозг разработчика C++, PHP, Javascript, а в прошлом систменого администратора перестал функционировать>

Уважаемый, вы в состоянии передать объект в С++ или PHP с сервера на клиент двумя строчками и чтобы все его параметры были слёту доступны и корректны?

Вот подумайте, а потом давайте поговорим о "динамично развивающуюся платформу"
12 Mauser
 
04.10.16
19:46
(10) Помочь можно каждому. Вопрос, а надо ли?
13 Mikhail2014
 
04.10.16
19:53
(11) Замечательно в PHP в формате JSON все передается, потом на клиенте сохраняем полученные данные в эксель, прекрасно все работает.
14 Mikhail2014
 
04.10.16
19:54
(13) Запрос, данные, выгрузка в эксель, win. Тривиальная задача.
15 Gary417
 
04.10.16
19:55
(13) ага, только через json передаются данные без поддержки целостности и связности, тупо текстовое представление. а в 1С практически полноценный объект с ссылкой на БД
16 Gary417
 
04.10.16
19:56
(14) на самом деле в 1С эта задача гораздо проще, но гугл вам поможет
17 iceman2112
 
04.10.16
20:06
(0) походу автор клиент от сервера и  в php не отличает. 1с оскорбил, как ему пмогать после этого?
18 Mikhail2014
 
04.10.16
20:06
(12) Не, не, смысл не в том, что я не собираюсь разбираться и хочу, чтобы все сделали за меня. Я то как раз очень хочу разобраться и сделать уже. Просто так можно все что угодно списать на программиста - неадекватно переусложненная, негибкая, нуедобная система - НЕТ! Это ТЫ плохой программист, ты не разобрался! ТЫ не понял скрытый смысл! Смешно же)
19 Mikhail2014
 
04.10.16
20:07
(17) В моем примере клиент - это браузер пользователя.
20 Mikhail2014
 
04.10.16
20:08
(17) Связка PHP - Javascript
21 iceman2112
 
04.10.16
20:09
ну вот приташил ты в этот браузер id контрагента как же теперь ты наименование получишь
22 Mikhail2014
 
04.10.16
20:09
(15) Что мешает сделать нужную структуру и передать? Разве проблема?
23 Mikhail2014
 
04.10.16
20:10
(21) На сервере собрал все нужные данные и сразу притащил.
24 iceman2112
 
04.10.16
20:10
ну вот приташил ты в этот браузер ид контрагента как теперь наименование получить в этом наркоманском php?
25 Mauser
 
04.10.16
20:11
ибо на клиенте php много чего не разрешает, нельзя, вот, и все)))))
26 iceman2112
 
04.10.16
20:12
прикинь в 1с также
27 mistеr
 
04.10.16
20:16
(23) Ну, а в 1С ты собрал данные по контрагенту на сервере?

Вызываешь серверный метод, собираешь что нужно запросами и отправляешь. Это как AJAX запрос.
28 Gary417
 
04.10.16
20:16
(22) (23) Это не проблема, это куча писанины, механизм контроля связности надо помнить везде как правильно вызывать ф-ции и как правильно передавать данные, в 1С это всё делается "само в фоне и автоматом"
29 Mikhail2014
 
04.10.16
20:19
(28) Вот у меня это второй час уже делается "само, в фоне, автоматом")) Я от того тут и пишу, что все уже сделалось.))

Не такая уж и куча, есть фреймворки, пожалуйста, очень даже удобные. Ничего сосбенного, собрал файл, передал. Функции везде надо правильно вызывать, в 1С, Java, Php...
30 Mikhail2014
 
04.10.16
20:20
(27) Да я уже и хочу так сделать) Уже и запрос пишу.
31 Mikhail2014
 
04.10.16
20:21
(25) Для начала "на клиенте" php не используется.
32 Gary417
 
04.10.16
20:22
(29) естественно всё есть фреймворки и т.п. но программирование на универсальных языках всёравно требует бОльшего приложения усилий для элементарных операций о которых одинэсники даже не догадываются

И оч смешно смотрятся выпады на то что в 1С плохо работает механизм который в остальных языках тупо отсутствует.

(31) да ладно! а js это не "наклиент"?
33 Gary417
 
04.10.16
20:23
и в PHP передача клиент-сервер это какраз самое суровое велосипедство, в отличии от asp и jsp
34 Mauser
 
04.10.16
20:24
(31) как вы работаете с этим наркомакнством вообще?
35 sikuda
 
04.10.16
20:30
ТабличныйДокумент.Записать(ИмяФайла, Тип XLS) может надо думать проще?
36 Mikhail2014
 
04.10.16
20:33
(32) В современных IDE и с своременными фреймворками не на много, уж поверьте. Посмотрите на продукты Microsoft, Embarcadero, Inlellij. 1С сдувает именно у них.

Возможно какие-то механизны в других языках отсутствуют, но зато те, что есть, ничем 1сным механизмам не уступают, и, опять же, повторюсь, с современными IDE работать с ним не сложнее, чем с 1С. Не верите? Скачайте что-нибудь и поробуйте. Embarcadero, особенно. А учитыва все "особенности" 1С, как с управляемыми формами 1С, бдует и быстрее.

Так js это не php же!
37 Mikhail2014
 
04.10.16
20:34
(33) Обыкновенные Post-Rest зарпосы, ничего сложного, старая надежная технология. Замечательно работет.
38 Gary417
 
04.10.16
20:37
(36) какая разница что js не php? вы же с клиентом общаетесь както, в 1С на фронте и бэке один и тотже язык. а  PHP на фроне обычно js, но логика то одинаковая

И не надо меня учить какие продукты есть, я знаю php, js, java, c#, asp, jsp и 1С, и уж поверьте понимаю о чём говорю.


P.S. делфи в 21 веке вспоминать вообще некомильфо помоему
39 Mikhail2014
 
04.10.16
20:38
(37) Get и Post, пардон
40 Gary417
 
04.10.16
20:38
(37) чтобы отправлять post-get надо чтобы сервер и клиент знали что отправляют, а это кучу разных приседаний надо делать

например как текущую дату отправить из РФ в США
41 Mikhail2014
 
04.10.16
20:38
(38) Ну Embarcadero это не только Дельфи)
42 Mauser
 
04.10.16
20:40
(37) Там с сервера отдельными процедурами(ппц...)
43 H A D G E H O G s
 
04.10.16
20:41
(41) А что там еще?
44 Mikhail2014
 
04.10.16
20:41
(42) Не, ну если бы 1С не делала вид, что можно по другому, я бы не возникал))
45 Mikhail2014
 
04.10.16
20:42
(43) C++, HTML 5, когда-то выпускал Builder для Java, давно.
46 Mauser
 
04.10.16
20:43
(44) ТЫ не понял скрытый смысл! Смешно же)
47 sikuda
 
04.10.16
20:43
Кстати к слову сказать  https://github.com/PHPOffice/PHPExcel
48 H A D G E H O G s
 
04.10.16
20:45
(45) С++ (наследник C++ Builder-a), с тем же набором компонент (vcl и прочие) с которыми точно также надо наприседаться чтобы
1) Передать данные на сервер
2) Вызвать метод сервера
3) Написать !сервер!
49 Mikhail2014
 
04.10.16
20:45
(35) Он мне при записи точно такую же структуру экселя сделает, как в макете? 1 в 1? Я печатной формой пробовал сделать, у меня стурктура эксель отличалась здорово. А заказчик хочет и агружать куда-то, помимо всего прочего.
50 Mauser
 
04.10.16
20:48
(49)  Не верите? Скачайте что-нибудь и поробуйте.
51 Mikhail2014
 
04.10.16
20:54
(40) Я лучше сделаю все нужные приседания и получу:

1. Хороший скилл в программировании.
2. Хорошие знания передачи данных через HTTP.
3. Буду уверен, что все будет работать именно так, как я написал, бстро и как надо.

Что потом применю где угодно.

Чем буду ковыряться в очередных заморочках 1С и получу только голоную боль. И желание все это скорее забыть.

Почему то все эти "возможности" 1С требуют в разы болше приседаний, чем "сложное" классическое программирование. И толку от этих 1Сных приседаний не будет никакого. Кроме как в самом 1С.
52 Mikhail2014
 
04.10.16
20:54
(48) Ну это обычная клиент-серверная архитектура.
53 Mauser
 
04.10.16
21:06
(51) Посмотрите на продукты Microsoft, Embarcadero, Inlellij. 1С сдувает именно у них.
54 Torquader
 
04.10.16
21:11
А вообще - в чём проблема.
На сервере готовим все данные, которые хотим записать на страницу Excel в виде двумерного массива SafeArray.
Потом передаём это всё на клиента (за одну передачу), а потом открываем Excel и вставляем это всё в страницу документа (одной командной).
Быстро и просто.
55 H A D G E H O G s
 
04.10.16
21:15
(51) Удачной охоты, сталкер.
57 H A D G E H O G s
 
04.10.16
21:20
(56) Это про то, какие проблемы могут возникать в других ЯП, чего никогда не будет в 1С.
58 H A D G E H O G s
 
04.10.16
21:24
Всем нелюбящим 1С рекомендую ветку
1С - это годная вещь. Вы даже не знаете насколько.
посты с 51 по 89, особенно 69,75.
59 H A D G E H O G s
 
04.10.16
21:24
Чертов T9
60 b_ru
 
05.10.16
15:51
В терминах web-программирования ты пытаешься в клентском JavaScript'е сформировать экселевский файл, дергая сервер за каждым реквизитом по отдельности.

Не удивительно, что все работает через афедрон. А всего то надо на сервере сформировать табличный документ и сохранить его на клиенте.
61 Сергиус
 
05.10.16
15:55
(0)В чем проблема, на клиенте читаешь файл через  Ком-объект эксель, получаешь ДвоичныеДанные, передаешь их на сервер и там "крутишь-мутишь" как тебе надо?
62 Smallrat
 
05.10.16
16:15
&НаКлиенте
Процедура СоздатьФайлXLS(ИмяФайла)
    
    ТабличныйДокумент = ПолучитьТабличныйДокументССервера();
    ТабличныйДокумент.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLSX);
    
КонецПроцедуры

не?
63 Asmody
 
05.10.16
16:45
Не, я думаю, рано или поздно 1С решится на этот шаг и выпилит поддержку COM из платформы к епеням.
64 mistеr
 
05.10.16
16:49
(63) Не раньше, чем сменится два-три поколения всяких железок, с которыми иначе не пообщаешься (не будучи матерым системщиком, с соответствующим ценником).
65 craxx
 
05.10.16
16:53
(64) ну напишут кроссплатформенный механизм через те же сокеты... COM это изврат
66 Torquader
 
05.10.16
21:22
COM позволяет прозрачно преодолевать сеть и передавать данные с одной машины на другую.
На самом деле, аналоги COM есть и под другие платформы, но все они разные.
67 Garykom
 
гуру
05.10.16
21:29
ТС кто нить сказал что он слегка ограниченный?

Ибо не додумался выкинуть эксель (ну и COM заодно) из своего кода по выгрузке в эксель...
68 Torquader
 
05.10.16
21:46
(67) Ну, Excel нужен только для того, чтобы пользователь посмотрел то, что выгружено.
69 Garykom
 
гуру
05.10.16
21:53
(68) А зачем для этого "посмотрел" нужен эксель то?
70 mistеr
 
05.10.16
22:10
(65) Клосплатформенных механизмов вагон, а с железками только через COM. Тут MS крепко всех держит за жабры.

(69) Потому что пользователь больше ничего не знает.
71 Zamestas
 
05.10.16
22:24
(0) Сколько, собственно, клиентов Вы автоматизировали без использования платформы 1С?