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

Написал хотелку по передаче формы с клиента в серверный общий модуль.

Написал хотелку по передаче формы с клиента в серверный общий модуль.
Я
   Гений 1С
 
02.09.21 - 18:08
Сюда написал (не спортлото, чай)? https://github.com/SeiOkami/OneS/issues/86
А вы что скажете, вот текст иссью:

В 1С на УФ можно из серверного кода формы передать форму как параметр в серверный общий модуль. И далее из серверного общего модуля в другой серверный общий модуль.
Но из клиенского кода формы и из клиентского модуля невозможно передать форму в серверный общий модуль.
Можно передать форму только из клиентского кода формы в серверный код формы.

Для решения проблемы из клиентского кода формы или клиентского общего модуля вызывают серверный метод формы, который уже передает форму в серверный общий модуль.

Это крайне ужасное решение, которое провоцирует весь код писать в форме, не разнося ее по модулям. Нужно как можно скорее убрать это противоречивое ограничение.
   Maniac
 
201 - 07.09.21 - 13:28
(192) да ну. я тебе могу привести кучу примеров когда стоят задачи обработки данных которых вообще в базе НЕТ!!!
А с какого уя их приходиться все время ТАСКАТЬ НА СЕРВЕР чтобы что то там сделать и ВЕРНУТЬ НАЗАД.

Потому что большую часть каких то действие ФИГ СДЕЛАЕШЬ.
например получили какие то данные на клиенте. в форму в таблицы. каого фени к ним ни запроса, ничерта сделать невозможно.

Повторю - этих данных в базе НЕТ и на сервере нет. А с 1С жесткие ограничения на клиенте.
   Maniac
 
202 - 07.09.21 - 13:29
Даже у одно обработки есть несколько ФОРМ. нужно всю байду затащить на сервер, чтобы потом оттуда вытащить. БРЕД
   Maniac
 
203 - 07.09.21 - 13:31
И еще что убивает. Даже если имеем обьект, в котором к примеру много таблиц и частей.
Даже если хотим на сервере что то обработать. Почему нет элементарной возможности просто передать некоторые реквизиты или таблицы обьекта а не ВЕСЬ ОБЪЕКТ.
   Maniac
 
204 - 07.09.21 - 13:33
Нафига нужно выгружать ТЧ в переменную чтобы передать в запрос?
А потом приходится еще после запроса еще выборку делать чтобы опять в ТЧ запихнуть выгрузкой или перебором - если всего пара колонок каких то нуждалась в обработке.

Вопросов миллион на самом деле к конфигуратору.
   Maniac
 
205 - 07.09.21 - 13:41
А к типовым еще БОЛЬШЕ вопросов.

Почему в УНФ БСП не такое как у всех?
Почему в регистре не ВидЦен и ВидЦены
Почему справочник Склады - Структурные подразделения
Почему Виды номенклатуры - Категории номенклатуры
Почему Использование характеристик - Использовать характеристики
Почему в номенклатуру поставщиков нет владельца, а есть реквизит Владелец.
Почему нет ни одного обработчика табличных частей (суммы, ндс, скидки) с Экспортом. Даже в 1С розница есть
Почему в регистрах полный бред.
   Maniac
 
206 - 07.09.21 - 13:43
Почему чтобы в любой типовой посмотреть процедуру глобальную - нужно 10 глобальников пролистать.
Даже просто на обработке строки - например сумму ндс - затаскает по километру кода и 25 глобальным модулям.
   acht
 
207 - 07.09.21 - 13:57
(204) Маня, зачем ты занимаешься этим мазохизмом в 1С?

Шел бы, например, могилки копал. Там всегда спокойные клиенты, четкое ТЗ, нет этого "ай, не того закопали, перезакапывайте заново", устоявшийся и эффективный набор инструментов.
   BeerHelpsMeWin
 
208 - 07.09.21 - 13:59
(201) А зачем обрабатывать данные, которых в базе нет?
   Олеша Попович
 
209 - 07.09.21 - 14:02
(207) а что написано на партнерском форуме, для Гени 1с? скинь ссылку почитаю
   Kassern
 
210 - 07.09.21 - 14:06
(204) вот тут я не понял в чем проблема выгрузить ТЧ в ТЗ, обработать запросом и загрузить обратно? В типовых при обработке строк есть как для всей ТЧ, есть для конкретной строчки процедуры, просто передаешь структуру действий необходимую. Про УНФ это отдельная песня...
   Maniac
 
211 - 07.09.21 - 15:05
(210) а если ТЗ размером 1 миллион строк?
   Maniac
 
212 - 07.09.21 - 15:05
да фиг с ним пусть даже 100 000
   Kassern
 
213 - 07.09.21 - 15:07
(212) а какие проблемы со 100 000? Без проблем пихается во временную таблицу и обрабатывается запросом.
   Maniac
 
214 - 07.09.21 - 15:08
а зачем пихать?? вот скажи мне. туда сюда пихать выпиховывать.
   Maniac
 
215 - 07.09.21 - 15:08
вот есть данные на клиенте. все. нафига их нужно пихать.
   Maniac
 
216 - 07.09.21 - 15:08
вот на клиенте юзер и хочет с ними поработать, пофильтровать, чота там запросики понаделать.
   Kassern
 
217 - 07.09.21 - 15:12
(216) когда у клиента миллион строк с артикулом, а ему вдруг понадобилось это дело сопоставить с данными базы, тоже через клиент хотите это реализовать?)
   lodger
 
218 - 07.09.21 - 15:15
(215) на клиенте вьюха на 30-50 строк. какие миллион?
   Mort
 
219 - 07.09.21 - 15:27
Всё-таки у 1С пробел в обучении УФ на этом месте. Очень много одинэсников считает, что форма на клиенте содержит все данные и все эти данные едут на сервер при контекстном вызове. И начинают их на клиенте мучить (и как раз наоборот в этом случае данные начинают ездить, только с сервера на клиент).
   MyNick
 
220 - 07.09.21 - 15:32
(211) На клиенте 100 тыс строк? Это в консерватории надо править.

(215) Динамические списки? Не, не слышал.
На клиенте видимая порция.
Хочешь поиск - дуй на сервер (ну что по сути и происходит в отборах ДС неявно)
   MyNick
 
221 - 07.09.21 - 15:40
(219) им надо погрузиться в замечательный мир веба. Или еще каких тру клиент-серверных технологий.
Где сервер и клиент разделен так, что подобных дурацких вопросов возникать не будет.
Сервер отдает джейсончик с данными, клиент (неважно на чем) через API эти данные получает - загружает - отображает. И ТОЛЬКО работает с пользователем. Упаси боже на клиента миллион строк тащить, чтобы поиск там сделать.
Сервер и клиент абсолютно независимы друг от друга. Как локомотив и вагон. Сцепка = API. Задача машиниста - управлять, задача пассажиров смотреть в окошко и пить чай. Пассажирам пох на машиниста, машинисту пох на пассажиров. Главное чтобы не творили откровенную дичь (не срывали стоп кран и не бросали лом в унитаз).

И... вопросы ворочать миллионами строк отпадают.
И так разбаловали одинэсников не слишком строгой архитектурой клиент-серверного кода...
   MyNick
 
222 - 07.09.21 - 15:47
+(221) Вот если бы 1С сделала конфигурацию из двух частей - Серверная и Клиентская, все бы встало на места.
На серверной только модули с обращением к БД, на клиентской только интерфейс и модули для его реализации.
На стыке - только простые типы + массивы и структуры.

То и не было бы подобных пробелов. И не возникало бы мысли у гениев формы туда сюда гонять.
   Ненавижу 1С
 
223 - 07.09.21 - 16:00
(219) д, никто этого толком не говорит, включая саму 1С
   Ненавижу 1С
 
224 - 07.09.21 - 16:01
+(223) хотя хз что ты хотел в (220) сказать
   Олеша Попович
 
225 - 07.09.21 - 16:14
(223) вроде бы говорит https://its.1c.ru/db/v8std#content:628:hdoc
   lodger
 
226 - 07.09.21 - 16:17
(225) чушь какая то! другое дело что пишут маня и геня - труъ эксперты.
   Олеша Попович
 
227 - 07.09.21 - 16:23
(221) что значит разбаловали? изначально она такой и была, потому что сервер был stateful
   Гений 1С
 
228 - 07.09.21 - 17:54
(221) у фузины формы живут только на сервере, а на клиенте просто отображаются (как РДП)
   Гений 1С
 
229 - 07.09.21 - 17:55
(206) потому что Маня, УНФ писали не в 1С изначально. Это 1С потом ее купила
   Конструктор1С
 
230 - 07.09.21 - 18:00
(198) а ты в модуле формы с сервером не работаешь?
 
 
   acht
 
231 - 07.09.21 - 18:11
(209) Для Гени на партнерском форуме ничего нет, извини.
   Конструктор1С
 
232 - 07.09.21 - 18:11
(201) и что ты делаешь с данными на клиенте? Ну покажешь пользователю... А дальше тебе за каждым чихом придётся нырять на сервер, ибо таблицы, запросы, метаданные да и вообще всё на сервере.
Завтра возникнет ситуация, которая возникает в автоматизации чуть реже, чем постоянно: надобно исключить тело пользователя из процесса, делать всё автоматически. Тут-то ты со своим клиентом и встрянешь. "Внезапно" выяснится, что весь код нужно утаскивать на сервер, да ещё и от интерфейса отделять. Причем разлучить бизнес-логику с интерфейсом ой как непросто, ибо срослись они аки сиамские близнецы
   Новый1сник2
 
233 - 07.09.21 - 18:13
(205) да УНФ отличается от типовых, но это не значит что УНФ какашка, многим заходит норм.
только ее нужно доработать, в т.ч. бсп
   acht
 
234 - 07.09.21 - 18:21
(232) Кстати да, будет очередная тема "гуру-тест как теперь открыть форму на сервере" =)
   Конструктор1С
 
235 - 07.09.21 - 18:22
(202) что ты там собрался на сервер затаскивать? У тебя и так данные живут на сервере в БД
   acht
 
236 - 07.09.21 - 18:24
(235) У Мани вся куча примеров сводится к файлу, который на клиенте. Данные из которого он "обрабатывает". Для его сжатия и загона на сервер Мане не хватает опыта.
   Конструктор1С
 
237 - 07.09.21 - 18:25
(234) с разделением интерфейсов и бизнес-логики в 1с вообще беда. Этим не только Г1Сы грешат, но и разработчики типовых юзают во весь рост
   Олеша Попович
 
238 - 07.09.21 - 18:58
(237) Им некогда делать как правильно, им пилить нада. Вон в УТ 11 для программного заполнения зависимых цен в документе "Установка цен номенклатуры" нужно в ОМ расчета цен одним из параметров форму передавать. А откуда у меня форма, если я документ программно создаю? Вы вот тут Геню ругаете, а у вендора такие же Гени работают.
   piter3
 
239 - 07.09.21 - 19:01
(238) Странно,но ахксаптовцы и некторые саперы ноют так же.Правда,не всегда на форумах.Одни вебщики впереди планеты всей)
   Maniac
 
240 - 07.09.21 - 23:22
(236) какой нафиг файл.? опять попридумал за меня и сам себе какую то хрень несешь)
причем тут файл.
Я тебе говорю про то что на клиенте монут быть какие то таблицы, с которомы работает юзер. что то делает, обрабатывает и так далее.
   Maniac
 
241 - 07.09.21 - 23:24
Вот даже простой пример. Все знают что в ТЧ на форме есть отбор только по фиксированной структуре. по списку никаких отборов делать нельзя вообще.
Чтобы по ТЧ еще какой то смочь отфильтровать надо изворачиваться на сервере.
Или вот условный оформления. они не работают на клиенте. исключительно на сервере, нужно ннать все данные на сервер
   H A D G E H O G s
 
242 - 07.09.21 - 23:37
Дайте людям удочку и они наловят рыб.
Дайте людям сервер и они его завызывают.
Дайте Осипову форум и он его засрет.
   Конструктор1С
 
243 - 08.09.21 - 10:55
(242) когда бизнес-логика отделена от интерфейса, нет смысла завызовывать сервер, всё и так будет происходить на сервере
   Mort
 
244 - 08.09.21 - 12:22
А моё имхо MVC это устаревший способ делать надеждные приложения с херовым интерфейсом. Вот у нас продуманная бизнес-логика, а вот соответствующий этой логике убогий интерфейс.
   Mort
 
245 - 08.09.21 - 12:26
Ну и натягивать сову разделения между интерфейсом и логикой на глобус разделения клиент-сервер тоже нет никакой надобности.
   acanta
 
246 - 08.09.21 - 12:27
А чем рдп то не устроил?
   Конструктор1С
 
247 - 08.09.21 - 12:43
(244) вопрос не в красоте интерфейса, а в стоимости доработки и сопровождения. Обрати внимание на мобильные приложения, они написаны по MVVM или MVC, но интерфейс у многих из них намного лучше и понятнее, чем у типичных1сных приложений. MVC и иже с ними нисколько не вредят качеству интерфейса.
Когда идёт архитектурное деление на условные слои, код становится более гибким, доработка и сопровождение более дешевыми. Если всё скидано в единую кучу-малу (типичная для 1с картина), то этот винигрет сложнее понимать, сложнее дорабатывать и так далее (соответственно цена владения растёт)
   Конструктор1С
 
248 - 08.09.21 - 12:49
(245) отделение бизнес-логики от интерфейса это такой фундаментальный и давно известный принцип, что в тру-программировании аж родились отдельные профессии - фронтендеры и бэкендеры. Плохо что 1сники об этом не знают
   ДенисЧ
 
249 - 08.09.21 - 12:51
О. Веб-программирование уже стало тру....
   ДенисЧ
 
250 - 08.09.21 - 12:51
(244) МВЦ и плохие интерфейсы друг другом связаны чуть менее, чем никак.
   Конструктор1С
 
251 - 08.09.21 - 12:54
(249) в вебе Г1С-стайл ударил больнее всего. К тому же деление на фронт и бэк не только в вебе, в энтерпрайзе также юзается всю дорогу
   Конструктор1С
 
252 - 08.09.21 - 12:58
+ в мобильной разработке MVVM, MVC, MVP, MVI тоже юзаются всю дорогу
   H A D G E H O G s
 
253 - 08.09.21 - 13:12
(243)

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

Ты, конечно, тут сделаешь контекстный серверный, да?
   lodger
 
254 - 08.09.21 - 13:19
&НаКлиенте
Процедура ВидАктаПриИзменении(Элемент)
Флаг = ВидАктаРавноАктРасхождения(Объект.ВидАкта);
    Элементы.СтраницаТовары.Видимость=Флаг; 
    Элементы.ДвижениеМарок.Видимость=Флаг;
другие параметры = Флаг; 
КонецПроцедуры

&НаСервере
Процедура НастроитьФормуПоДаннымОбъекта()
Флаг = ВидАктаРавноАктРасхождения(Объект.ВидАкта);
    Элементы.СтраницаТовары.Видимость=Флаг; 
    Элементы.ДвижениеМарок.Видимость=Флаг;
другие параметры = Флаг; 
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Функция ВидАктаРавноАктРасхождения(ВидАкта)
 возврат ВидАкта=ПредопределенноеЗначение("Перечисление.АСФВидыАктовКТТН.АктРасхождения");
КонецФункции
   lodger
 
255 - 08.09.21 - 13:20
+(254) хотя, лучше видимостью на клиенте не управлять. и вообще не управлять этим после создания и передачи формы на клиента.
   lodger
 
256 - 08.09.21 - 13:21
+(255) вот доступностью вроде можно.
   H A D G E H O G s
 
257 - 08.09.21 - 13:25
(255) (256) Ну смысл понятен, надеюсь?

&НаКлиенте
Процедура АСФВвестиАктРасхожденияТТН(Команда)
    Если ЭтаФорма.Модифицированность Тогда
        ЭтаФорма.Записать(Неопределено);
    КонецЕсли;
    
    АСФОбменСУТМКлиент.ВвестиАктКТТНЕГАИС(Объект.Ссылка,ПредопределенноеЗначение("Перечисление.АСФВидыАктовКТТН.АктРасхождения"));
КонецПроцедуры
   Конструктор1С
 
258 - 08.09.21 - 13:26
(253) ты не понял смысл отделения бизнес-логики от интерфейса. Настройка видимости, доступности, состава полей на форме и вот это всё - работа с интерфейсом
   H A D G E H O G s
 
259 - 08.09.21 - 13:26
(258) Ну вот я настраиваю видимость, на клиенте, отдельно от бизнес-логики.
   H A D G E H O G s
 
260 - 08.09.21 - 13:27
(258) Давай, отдели бизнес-логику от интерфейса.
 
 
   Конструктор1С
 
261 - 08.09.21 - 13:27
(259) молодец, держи в курсе
   Конструктор1С
 
262 - 08.09.21 - 13:28
(260) у тебя там нет бизнес-логики, у тебя просто настройка интерфейса
   H A D G E H O G s
 
263 - 08.09.21 - 13:29
(262) Которую я настраиваю на клиенте. И не могу обойтись без значений перечисления. Что не так?
   Конструктор1С
 
264 - 08.09.21 - 13:37
(263) давай так. В твоём документе можно делать всё программно?

НовыйДокумент = Документы.ТвойДокумент.СоздатьДокумент();
НовыйДокумент.Заполнить();
НовыйДокумент.Вжух1();
НовыйДокумент.Вжух2();
НовыйДокумент.Вжух3();
НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);

если нельзя, если для части действий нужно занырнуть в форму и подёргать кнопки/поля/таблички, то у тебя интерфейс слипся с бизнес-логикой
   lodger
 
265 - 08.09.21 - 13:40
возьмите дядю из поста (264) и отнести в отдел разработки ЗУП в головном офисе 1с.
   Ыцшесрук
 
266 - 08.09.21 - 13:42
(265) Не только ЗУП. В УТ та же шняга с расчётами скидок.
   Конструктор1С
 
267 - 08.09.21 - 13:44
(265) чур меня...
   H A D G E H O G s
 
268 - 08.09.21 - 14:08
(264) Я просто напомню, что все начало с поста (192), в которой необходимость ссылок на клиенте обозвали уродливой надобностью.

Я прекрасно знаю, когда интерфейс сливается с бизнес-логикой.
   Конструктор1С
 
269 - 08.09.21 - 14:14
(268) ладно, каюсь, не внимательно прочитал. Но и ссылки на клиенте могут служить для разных целей. Если для настройки интерфейса, или чтобы показать пользователю, то это нормально. Но если условный Г1С делает на клиенте расчет себестоимости, которую потом складывает в ТЧ документа, то за такое нужно бить по рукам
   Гений 1С
 
270 - 08.09.21 - 14:47
(269) я так не делаю, если че.
   lodger
 
271 - 08.09.21 - 14:48
(270) а в (0) ты что делать собрался?
   Гений 1С
 
272 - 08.09.21 - 14:54
(241) есть хитрый хак - пробегаешь по ТЧ, проставляешь галку отбора и отбираешь по этой галке. лично так делал
   MyNick
 
273 - 08.09.21 - 15:53
(272) Какую еще галку? ОтборСтрок работает по фиксированной структуре.
   Гений 1С
 
274 - 08.09.21 - 16:10
(273) ну например тебе нужно отобрать контрагентов иванов, петров, сидоров.

Ты добавляешь в ТЧ невидимую колонку ЭтоМойКонтрагент, пробегаешься по тч и там где контрагент иванов, петров, сидоров, ставишь ЭтоМойКонтрагент = истина, иначе ложь.

Все, можно отбирать по ЭтоМойКонтрагент = истина. йо?
  1  2  3

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.