Вход | Регистрация



1С и Управляемые формы

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует