|
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С?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |