|
Ступор с аналогом ТЗ на клиенте | ☑ | ||
---|---|---|---|---|
0
Команданте
06.02.13
✎
11:16
|
Столкнулся с задачей
На клиенте необходимо перебирать ТЗ и после каждой итерации выдавать вопрос ТЗ, как известно, на клиенте недоступна Что делать? Юзать реквизит формы ДФК? |
|||
1
Wobland
06.02.13
✎
11:19
|
что за вопрос?
|
|||
2
МихаилМ
06.02.13
✎
11:20
|
в толстом клиенте ТЗ доступна.
|
|||
3
Команданте
06.02.13
✎
11:22
|
(2) речь о тонком
|
|||
4
Команданте
06.02.13
✎
11:23
|
я так понимаю, внутреннее устройство веба не позволяет ему оперировать ТЗ вне реквизитов формы
|
|||
5
Команданте
06.02.13
✎
11:24
|
не понимаю, почему массивы, структуры доступны, а ТЗ нет
видимо, у него настолько сложная реализация, что необходимо генерить реквизит формы, загружать туда из сервера и юзать это на клиенте жоскко, но ничего не поделаешь |
|||
6
mozzga
06.02.13
✎
11:26
|
(0) массив структур
|
|||
7
Команданте
06.02.13
✎
11:26
|
(6) ты гений!
|
|||
8
EasyRider
06.02.13
✎
11:28
|
(7)собственно ТЗ это и есть массив структур
|
|||
9
Команданте
06.02.13
✎
11:29
|
(8) у которого до фига методов и свойств, которых нет у массива
|
|||
10
Команданте
06.02.13
✎
11:29
|
в хтмл 5, интересно, есть аналог ТЗ или там тоже надо контейнеры друг в друга класть
|
|||
11
Aleksey
06.02.13
✎
11:32
|
Есть ТЗ и на тонком и на веб
|
|||
12
Команданте
06.02.13
✎
11:37
|
(11) да?
|
|||
13
Команданте
06.02.13
✎
11:38
|
как называется этот класс
|
|||
14
AaNnDdRrEeYy
06.02.13
✎
11:40
|
(13)данные формы коллекция! при передачи на сервер автоматом конвертиться в ТЗ
|
|||
15
Команданте
06.02.13
✎
11:42
|
(14) конвертится в ТЗ? первый раз слышу
|
|||
16
Команданте
06.02.13
✎
11:42
|
ладно, пофик
массив структур |
|||
17
Sammo
06.02.13
✎
11:43
|
(6) А массив строк таблицы значений взлетит?
|
|||
18
Reset
06.02.13
✎
11:44
|
(17) Нет
|
|||
19
H A D G E H O G s
06.02.13
✎
11:44
|
(8) Нет.
|
|||
20
H A D G E H O G s
06.02.13
✎
11:45
|
(15) Меньше неси бреда во флудоветках и больше читай и СП. И твой кислотно-щелочной баланс будет в порядке.
|
|||
21
Команданте
06.02.13
✎
11:47
|
(20) бред обычно несёшь ты
по теме не заметил за собой ляпов ДФК не конвертится в ТЗ, для этого надо вызвать метод выгрузить |
|||
22
H A D G E H O G s
06.02.13
✎
11:51
|
(21) RTFM, как говорится.
|
|||
23
Команданте
06.02.13
✎
11:54
|
(22)ДанныеФормыКоллекция.Выгрузить
Возвращаемое значение: Тип: ТаблицаЗначений. тут ничего про автомат не написано |
|||
24
Команданте
06.02.13
✎
11:54
|
может, я чего-то не догоняю
|
|||
25
H A D G E H O G s
06.02.13
✎
11:58
|
(23) Никто про автомат не говорил
РеквизитФормыВЗначение() ЗначениеВРеквизитФормы() |
|||
26
Команданте
06.02.13
✎
12:01
|
(25) говорили в (14), поэтому я и приподнял брови
|
|||
27
AaNnDdRrEeYy
06.02.13
✎
12:05
|
(24) да не догоняешь. при вызове контекстного серверного метода платформа гонит форму на сервер предварительно упаковав ее на клиенте а потом распаковывает на сервере, в мосмет распаковки происходит конвертация типов.
|
|||
28
Команданте
06.02.13
✎
12:07
|
(27) не пойму этого, браза мэн
ДФК мне казалось ДФК и на клиенте и на сервере а про ДФК я ещё и в (0) написал вопрос вообще философский был |
|||
29
AaNnDdRrEeYy
06.02.13
✎
12:17
|
ну вот смотри
контрагент - реквизит формы с типом ССправочникССылка.Контрагенты &НаКлиенте Процедура а() Сообщить(Строка(ТипЗнч(контрагент))); //тут будет данные формы структура код = контрагент.код; //так нельзя ошибка код = б();//а так можно КонецПроцедуры &НаСервере Функция б() Сообщить(Строка(ТипЗнч(контрагент))); // а тут будет СправочникССылка.Контрагенты Возврат контрагент.код; КонецФункции в момент функции Б() происходит конвертация из типа ДанныеФормыКоллекция в СправочникСсылка.Контрагенты. То же самое происходит и с другими типами ДанныеФормыКллекция ДАнныеФормыДерево и т.д |
|||
30
Команданте
06.02.13
✎
12:24
|
(29) Строка(ТипЗнч(контрагент)) и на клиенте и на сервере вернёт "Контрагент" (Представление класса, заданное в справочнике)
код = контрагент.код выполнится без ошибок, ибо примитивные типы данных доступны через точку на клиенте |
|||
31
Команданте
06.02.13
✎
12:24
|
по ходу вы, товарищ, только начали учить УФ
|
|||
32
Команданте
06.02.13
✎
12:24
|
а я уже 2 года ипусь над ними (делает грозное лицо)
|
|||
33
vvp91
06.02.13
✎
12:25
|
(14) > данные формы коллекция! при передачи на сервер автоматом конвертиться в ТЗ
Не происходит никакой конвертации! ДанныеФормыКоллекция на клиенте И на сервере остаются данными формы. (29) >контрагент - реквизит формы с типом ССправочникССылка.Контрагенты >в момент функции Б() происходит конвертация из типа ДанныеФормыКоллекция в СправочникСсылка.Контрагенты. И здесь нет никакой конвертации, поскольку ссылка существует и на клиенте и на сервере. |
|||
34
Ursus maritimus
06.02.13
✎
12:27
|
(0)>>На клиенте необходимо перебирать ТЗ и после каждой итерации выдавать вопрос
Передавай своим пользователям от меня искренние соболезнования. |
|||
35
Команданте
06.02.13
✎
12:27
|
(34) :)
включу это в каждую итерацию |
|||
36
Reset
06.02.13
✎
12:29
|
(29) Смешались в кучу кони, люди
|
|||
37
wald
06.02.13
✎
12:30
|
(0) кто мешает перебрать строки ТЗ на сервере и там сформировать строку сообщения и выдать ее на клиент?
|
|||
38
НЕА123
06.02.13
✎
12:32
|
(0)
на клиенте ДанныеФормыКоллекция можно обходить и смотреть свойства. изменять нельзя, естественно. |
|||
39
H A D G E H O G s
06.02.13
✎
12:32
|
(38) Можно менять.
|
|||
40
H A D G E H O G s
06.02.13
✎
12:33
|
(37) Ничто не мешает сделать это на клиенте.
|
|||
41
wald
06.02.13
✎
12:33
|
..еще идея, перебирай список значений, где номер каждого значения равен индексу табличной части, в переборе задавай вопрос и (я искренне надеюсь вопрос у тебя будет да/нет) передавай это значение в список. Затем на сервере обработай список
|
|||
42
Команданте
06.02.13
✎
12:34
|
(37) трабла была в другом, в том, что необходимо получать ответ в каждой итерации
отсюда и возник мой философский вопрос типа того, что реквизиты формы несут двойную функцию 1. Визуальное представление редактируемых данных 2. Скрытые служебные реквизиты Но можно сделать этот служебные реквизит и видимым типа выдавать ещё одну форму с этим ДФК и чтобы чувак говорил, да, эта ДФК принимается и выбирать ответ для каждой строки в этой форме, а не при итерациях |
|||
43
НЕА123
06.02.13
✎
12:34
|
(39)
не знал. спасибо. |
|||
44
H A D G E H O G s
06.02.13
✎
12:35
|
Ничто не мешает собрать на клиенте МассивСсылок, отправить в
НаСервереБезКонтекста Вернуть оттуда Соответстие: Ссылка-<>СтруктураСНужнымиЗначениямиРеквизитов и пользовать на клиенте. |
|||
45
H A D G E H O G s
06.02.13
✎
12:36
|
кошмар, и эти люди занимаются УФ.
А потом всякие Евгении Шекины кричат, что УФ гуано. |
|||
46
Команданте
06.02.13
✎
12:36
|
(41) (42) изменил парадигму
если клиент должен опрашивать пользователя манипулируя серверным классом, тогда вынеси блеять этот класс на форму, а не храни в памяти |
|||
47
H A D G E H O G s
06.02.13
✎
12:37
|
(46) Много умных красивых слов. Мало толку.
|
|||
48
Команданте
06.02.13
✎
12:38
|
(47) почему же мало толку
толк как-раз и есть 1. либо массив структур 2. либо визуализированная таблица формы в первом случае ты технически решаешь задачу, но с точки зрения адекватной формализации неверно во втором случае ты усложняешь форму, но формализация происходит адекватно |
|||
49
Команданте
06.02.13
✎
12:39
|
в этом и состоит умение общаться с УФ
грамотно формализуй бизнес-процесс в 8.1 такого не было |
|||
50
Команданте
06.02.13
✎
12:39
|
УФ жосско ломает мозг, но в правильном направлении
имхо |
|||
51
Кокос
06.02.13
✎
12:39
|
(0) СписокЗначений + Структура в качестве элементов
|
|||
52
wald
06.02.13
✎
12:40
|
(47) Не кричи, не надо. УФ это и правда пока темный лес. Мало того что одну и ту же задачу можно сделать разными способами, так еще и нет однозначности в типовых. Приходится велосипеды изобретать.. конечно следуя генеральной линии партии=))
|
|||
53
H A D G E H O G s
06.02.13
✎
12:42
|
(48) Напиши какой-нибудь кот. Твои заумные речи я не понимаю.
|
|||
54
Команданте
06.02.13
✎
12:42
|
(52) это ты верно заметил. в типовых часто грубо нарушаются канонические правила, о которых фирма 1С трубила при выходе 8.2
|
|||
55
vvp91
06.02.13
✎
12:43
|
>> (48) толк как-раз и есть
Что мешает на клиенте обойти ДанныеФормыКоллекция и спросить подтверждение для каждой строки? |
|||
56
H A D G E H O G s
06.02.13
✎
12:43
|
(51) Структура индексирована, на 5000 элементах ты уже получишь серьезный просед в быстродействии.
|
|||
57
H A D G E H O G s
06.02.13
✎
12:45
|
(56) Ааа, нет, гоню.
|
|||
58
H A D G E H O G s
06.02.13
✎
12:45
|
(56) У тебя же список будет за строки, структура - за элементы 1-ой строки
|
|||
59
Кокос
06.02.13
✎
12:56
|
(1) структура это одна строка :) вообще я огромные эксель файлы грузил на 50-60 тыщ строк. ничего не тормозило.
|
|||
60
H A D G E H O G s
06.02.13
✎
12:58
|
(59) Скажи это пользователям рег. отчетности.
|
|||
61
Кокос
06.02.13
✎
12:58
|
&НаКлиенте
Функция ПодготовитьТаблицуТоваровADO() Экспорт СтрокаПодключения = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+xlsFile+"; Extended Properties=""Excel 8.0;"""; Connection = Новый COMОбъект("ADODB.Connection"); Connection.Open(СтрокаПодключения); Попытка RecordSet = Connection.Execute("SELECT * FROM [Данные$]"); Исключение Сообщить("Не удалось выполнить запрос к файлу Excel |"+ ОписаниеОшибки(),СтатусСообщения.Важное); Возврат Неопределено; КонецПопытки; ТЗ = Новый СписокЗначений; ТЗ.Очистить(); Сч = 0; Пока НЕ RecordSet.EOF() Цикл Если НЕ ЗначениеЗаполнено(RecordSet.Fields(0).Value) ТОгда RecordSet.MoveNext(); Продолжить; КонецЕсли; СтрокаМассива = Новый Структура(" |АртикулПроизвод, |АртикулНоменкл, |ОписаниеНаРусском, |ЕдиницаТарифа, |ТарифБезНДС, |ЦенаБезНДС4зн, |ГруппаПродукции, |Activity, |COSL1, |УровеньИерархии1, |COSL2, |УровеньИерархии2, |COSL3, |УровеньИерархии3, |Коллекции, |СкладскойСтатус1, |CрокТранспортировки1, |МинПартия1, |СкладскойСтатус2, |CрокТранспортировки2, |МинПартия2, |ЕдиницаИзмерения, |ШтрихКод, |ДатаЦены, |КолВоВ_упаковке1, |КолВоВ_упаковке2, |ИзмененияВТарифе, |COSL123, |Заблокировано, |СнимаетсяСПродаж, |ЦеноваяГруппа, |СкидкаПоставщика, |ГТД, |ВидНоменклатуры, |ГруппаНоменклатуры, |НеМатериалыПроизводства, |НеПродается, |НеПродаетсяЧерезИнтернет, |Производитель, |ГруппаФинУчета, |ГруппаДоступа |"); Сообщить(СокрЛП(RecordSet.Fields(0).Value)); СтрокаМассива.АртикулПроизвод = СокрЛП(RecordSet.Fields(0).Value); СтрокаМассива.АртикулНоменкл = СокрЛП(RecordSet.Fields(1).Value); СтрокаМассива.ОписаниеНаРусском = СокрЛП(RecordSet.Fields(2).Value); СтрокаМассива.ЕдиницаТарифа = СокрЛП(RecordSet.Fields(3).Value); СтрокаМассива.ТарифБезНДС = СокрЛП(RecordSet.Fields(4).Value); СтрокаМассива.ЦенаБезНДС4зн = СокрЛП(RecordSet.Fields(5).Value); СтрокаМассива.ГруппаПродукции = СокрЛП(RecordSet.Fields(6).Value); СтрокаМассива.Activity = СокрЛП(RecordSet.Fields(7).Value); СтрокаМассива.COSL1 = СокрЛП(RecordSet.Fields(8).Value); СтрокаМассива.УровеньИерархии1 = СокрЛП(RecordSet.Fields(9).Value); СтрокаМассива.COSL2 = СокрЛП(RecordSet.Fields(10).Value); СтрокаМассива.УровеньИерархии2 = СокрЛП(RecordSet.Fields(11).Value); СтрокаМассива.COSL3 = СокрЛП(RecordSet.Fields(12).Value); СтрокаМассива.УровеньИерархии3 = СокрЛП(RecordSet.Fields(13).Value); СтрокаМассива.Коллекции = СокрЛП(RecordSet.Fields(14).Value); СтрокаМассива.СкладскойСтатус1 = СокрЛП(RecordSet.Fields(15).Value); СтрокаМассива.CрокТранспортировки1 = СокрЛП(RecordSet.Fields(16).Value); СтрокаМассива.МинПартия1 = СокрЛП(RecordSet.Fields(17).Value); СтрокаМассива.СкладскойСтатус2 = СокрЛП(RecordSet.Fields(18).Value); СтрокаМассива.CрокТранспортировки2 = СокрЛП(RecordSet.Fields(19).Value); СтрокаМассива.МинПартия2 = СокрЛП(RecordSet.Fields(20).Value); СтрокаМассива.ЕдиницаИзмерения = СокрЛП(RecordSet.Fields(21).Value); СтрокаМассива.ШтрихКод = СокрЛП(RecordSet.Fields(22).Value); СтрокаМассива.ДатаЦены = СокрЛП(RecordSet.Fields(23).Value); СтрокаМассива.КолВоВ_упаковке1 = СокрЛП(RecordSet.Fields(24).Value); СтрокаМассива.КолВоВ_упаковке2 = СокрЛП(RecordSet.Fields(25).Value); СтрокаМассива.ИзмененияВТарифе = СокрЛП(RecordSet.Fields(26).Value); СтрокаМассива.COSL123 = СокрЛП(RecordSet.Fields(27).Value); СтрокаМассива.Заблокировано = СокрЛП(RecordSet.Fields(28).Value); СтрокаМассива.СнимаетсяСПродаж = СокрЛП(RecordSet.Fields(29).Value); СтрокаМассива.ЦеноваяГруппа = СокрЛП(RecordSet.Fields(30).Value); СтрокаМассива.СкидкаПоставщика = СокрЛП(RecordSet.Fields(31).Value); СтрокаМассива.ГТД = СокрЛП(RecordSet.Fields(32).Value); СтрокаМассива.ВидНоменклатуры = СокрЛП(RecordSet.Fields(33).Value); СтрокаМассива.ГруппаНоменклатуры = СокрЛП(RecordSet.Fields(34).Value); СтрокаМассива.НеМатериалыПроизводства = СокрЛП(RecordSet.Fields(35).Value); СтрокаМассива.НеПродается = СокрЛП(RecordSet.Fields(36).Value); СтрокаМассива.НеПродаетсяЧерезИнтернет = СокрЛП(RecordSet.Fields(37).Value); СтрокаМассива.Производитель = СокрЛП(RecordSet.Fields(38).Value); СтрокаМассива.ГруппаФинУчета = СокрЛП(RecordSet.Fields(39).Value); СтрокаМассива.ГруппаДоступа = СокрЛП(RecordSet.Fields(40).Value); ТЗ.Добавить(СтрокаМассива); RecordSet.MoveNext(); КонецЦикла; RecordSet.Close(); Connection.Close(); СтруктураТаблиц = Новый Структура; СтруктураТаблиц.Вставить("ТаблицаЗначений",ТЗ); Адрес = ПоместитьВоВременноеХранилище(СтруктураТаблиц,ЭтаФорма.УникальныйИдентификатор); Возврат Адрес; КонецФункции |
|||
62
Кокос
06.02.13
✎
12:59
|
(60) хм. ничего не понял :) а что там?
|
|||
63
Кокос
06.02.13
✎
13:00
|
(6) в бассейн кстати один пойдешь: Пустой мидифайл для звонка. я в монастырь :)
|
|||
64
Mort
06.02.13
✎
13:00
|
Интересно на каком дцатом вопросе пользователь психанет, забъет х и уйдет пить пиво.
|
|||
65
НЕА123
06.02.13
✎
13:01
|
(61) в веб работает?
|
|||
66
Кокос
06.02.13
✎
13:25
|
(65) а почему не должно? а вообще хз...
|
|||
67
НЕА123
06.02.13
✎
13:37
|
(66)
у меня в веб-клиненте с COMобъектами(ADODB) ни на клиенте, ни на сервере не работает. наверное, должно. что-то, где-то не донастроил. или хз... бум ковыряться. РТФМ. |
|||
68
H A D G E H O G s
06.02.13
✎
13:40
|
(67) Только IE. Только хардкорр!
|
|||
69
mistеr
06.02.13
✎
13:51
|
(61) Ну и простыня. Цикл по полям не хочешь сделать?
|
|||
70
НЕА123
06.02.13
✎
13:52
|
(68)
эх. в веб и ADODB ламернее меня только дуб. значится откажемся от затеи. ЗЫ! "дуб" к Уважаемому Дуб не имеет никакого отношения! |
|||
71
H A D G E H O G s
06.02.13
✎
13:56
|
(70) Проблема не в ADO
Проблема в том, что COM поддерживает только IE |
|||
72
H A D G E H O G s
06.02.13
✎
13:57
|
Огнелис на 2010 точно не поддерживал, как и Опера.
Как остальное зверье - не знаю. |
|||
73
H A D G E H O G s
06.02.13
✎
13:58
|
(67) На Сервере должно работать, проблема на вашей стороне.
|
|||
74
Кокос
06.02.13
✎
14:13
|
(73) (63) тебе было :) А с фигали кстати на сервере должно это работать?:) чо серьезно чтоли работает?
|
|||
75
H A D G E H O G s
06.02.13
✎
14:14
|
(74) Ясно. Я попробую коллегу заманить :-)
Ну а че бы нет? Че бы ему на сервере не поработать? |
|||
76
Кокос
06.02.13
✎
14:16
|
(75) ну сервер какбы предполагает имхо что дров нет файлов нет :) чистое общение с памятью и процом внутри "матрицы" :)
РОаботалобы на серваке сталбы я писать клиентскую функцию и морочиться с списоком значений :) Ты где на сервере файл возьмешьто?:) |
|||
77
H A D G E H O G s
06.02.13
✎
14:17
|
(74) Обычным ADO - ваще милое дело.
Ну а всяким интерфейсным Excel.Application - тоже в путь, только у службы апача режим взаимодействия с рабочим столом выставить. Ну как то так. |
|||
78
Кокос
06.02.13
✎
14:17
|
(69) админ оракловый неадекватный. может поменять поля местами и тогда цикл не пройдет :)
|
|||
79
Кокос
06.02.13
✎
14:18
|
(77) ну у меня вообще толстый клиент файловая версия :)
|
|||
80
mistеr
06.02.13
✎
14:31
|
(78) Тем более, сам бог велел перебирать в цикле.
P.S. Не понял, причем Oracle, если запрос к Excel. |
|||
81
Кокос
06.02.13
✎
14:43
|
(80) да из оракла эксельник выгружается :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |