| 
    
            
         
         | 
    
  | 
Написал хотелку по передаче формы с клиента в серверный общий модуль. | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Гений 1С    
     гуру 
    02.09.21 
            ✎
    18:08 
 | 
         
        Сюда написал (не спортлото, чай)? https://github.com/SeiOkami/OneS/issues/86
 
        А вы что скажете, вот текст иссью: В 1С на УФ можно из серверного кода формы передать форму как параметр в серверный общий модуль. И далее из серверного общего модуля в другой серверный общий модуль. Но из клиенского кода формы и из клиентского модуля невозможно передать форму в серверный общий модуль. Можно передать форму только из клиентского кода формы в серверный код формы. Для решения проблемы из клиентского кода формы или клиентского общего модуля вызывают серверный метод формы, который уже передает форму в серверный общий модуль. Это крайне ужасное решение, которое провоцирует весь код писать в форме, не разнося ее по модулям. Нужно как можно скорее убрать это противоречивое ограничение.  | 
|||
| 
    1
    
        Новый1сник2    
     02.09.21 
            ✎
    18:14 
 | 
         
        (0) практическое применение какое?     
         | 
|||
| 
    2
    
        Beduin    
     02.09.21 
            ✎
    18:14 
 | 
         
        ПриСозданииФормыНаСервере() А тут тебе чего не хватает?     
         | 
|||
| 
    3
    
        Гений 1С    
     гуру 
    02.09.21 
            ✎
    18:15 
 | 
         
        (1) не осилил о чем? я думаю, 80% сталкивались с этой проблемой.
 
        (2) это о другом  | 
|||
| 
    4
    
        Новый1сник2    
     02.09.21 
            ✎
    18:16 
 | 
         
        (3) откуда статистика ?     
         | 
|||
| 
    5
    
        Новый1сник2    
     02.09.21 
            ✎
    18:17 
 | 
         
        (2) присоединяюсь?     
         | 
|||
| 
    6
    
        Гений 1С    
     гуру 
    02.09.21 
            ✎
    18:20 
 | 
         
        (5) ну вот ты написал некую серверную процедуру Процедура(Форма) в общем модуле МойСервер.
 
        А теперь хочешь эту процедуру вызывать из общего модуля Клиент, куда управление попадает из формы. и получаешь ошибку невозможности передать форму на сервер.  | 
|||
| 
    7
    
        Новый1сник2    
     02.09.21 
            ✎
    18:22 
 | 
         
        (6) в чем проблема написать этот модуль в форме?     
         | 
|||
| 
    8
    
        Andreyyy    
     02.09.21 
            ✎
    18:24 
 | 
         
        В этот раз соглашусь с ТС !
 
        Вот ни разу невнятное ограничение. Чем общий модуль хуже серверной процедуры формы ... Геноцид.  | 
|||
| 
    9
    
        RomanYS    
     02.09.21 
            ✎
    18:24 
 | 
         
        (6) на ОФ же как-то жили с невозможность передачи мутабельных значений, и здесь переживём     
         | 
|||
| 
    10
    
        Новый1сник2    
     02.09.21 
            ✎
    18:26 
 | 
         
        (8) может и так, но как часто это нужно?     
         | 
|||
| 
    11
    
        Andreyyy    
     02.09.21 
            ✎
    18:29 
 | 
         
        (10) Нечасто. Но попадалось здоровые штуки делать, и это нелепое (на первый взгляд) ограничение неприлично нервов попортило.     
         | 
|||
| 
    12
    
        Жан Пердежон    
     02.09.21 
            ✎
    18:30 
 | 
         
        контекстный серверный вызов и так передает форму
 
        с чем должны были сталкиваться в (3) не ясно зачем нужен лисапед в (0)?  | 
|||
| 
    13
    
        Andreyyy    
     02.09.21 
            ✎
    18:30 
 | 
         
        (9) С таким "оптимизмом" на лошадей недолго пересесть.     
         | 
|||
| 
    14
    
        H A D G E H O G s    
     02.09.21 
            ✎
    18:35 
 | 
         
        (0) Нахрен не нужно.     
         | 
|||
| 
    15
    
        Гений 1С    
     гуру 
    02.09.21 
            ✎
    18:36 
 | 
         
        //=== Форма ===
 
        &НаКлиенте Процедура Тест() Сервер.Обработка(ЭтаФорма); //Так не работает ТестНаСервере(); //Так работает КонецПроцедуры &НаСервере Процедура ТестНаСервере() Сервер.Обработка(ЭтаФорма); //Так работает КонецПроцедуры //=== Общий модуль Клиент === Процедура Обработка(Форма) Экспорт Сервер.Обработка(ЭтаФорма); //Так не работает КонецПроцедуры //=== Общий модуль Сервер === Процедура Обработка(Форма) Экспорт //Тут желаемая обработка формы КонецПроцедуры  | 
|||
| 
    16
    
        Василий Алибабаевич    
     02.09.21 
            ✎
    18:42 
 | 
         
        Опять ТС взял квадратные колеса и героически толкает свой лисапед по дороге?     
         | 
|||
| 
    17
    
        PuhUfa    
     02.09.21 
            ✎
    18:43 
 | 
         
        Передавать всю форму с клиента на сервер... фу таким быть -)     
         | 
|||
| 
    18
    
        polosov    
     02.09.21 
            ✎
    18:48 
 | 
         
        (0) Ты еще Объект.Товары передай в серверный метод.
 
        Тебе из спортлото плевок прилетит.  | 
|||
| 
    19
    
        Новый1сник2    
     02.09.21 
            ✎
    18:48 
 | 
         
        (0) может в каком то частном случае это и нужно, но пока не сталкивался с таким, проблем написать в модуле формы нету     
         | 
|||
| 
    20
    
        Ненавижу 1С    
     гуру 
    02.09.21 
            ✎
    18:50 
 | 
         
        Иногда неудобно, согласен. 
 
        Но тут думаю вопрос в целом такой - сложные объекты не передать туда/обратно. Каждый раз вызывая серверные етоды мы передаем туда весь контекст формы!(а не только ссылку на нее) Предположим, что можно и передадим две формы На сервере вторая форма пусть получит первую как реквизит (или переменную модуля) ВтораяФорма.РеквизитСудногоДня = ПерваяФорма; теперь первая форма на клиенте закрылась. Если на клиенте нет на нее ссылок, то 1С имеет право ее положить в мусор. Не бегать же за подсчетом ссылок на сервер? Теперь вызывает так: ВтораяФорма.ПолучитьРеквизитСудногоДня().Обновить(); //простите что? оно же в мусоре!  | 
|||
| 
    21
    
        Ненавижу 1С    
     гуру 
    02.09.21 
            ✎
    18:52 
 | 
         
        +(20) именно поэтому всякие массивы передаются с клиента на сервер как копии своих значений, чтобы не заниматься подсчетом ссылок     
         | 
|||
| 
    22
    
        Гений 1С    
     гуру 
    02.09.21 
            ✎
    18:58 
 | 
         
        (17) как будто у тебя это при каждом серверном вызове не происходит? гггг
 
        В общем, написал статью на эту тему: https://geniy1s.ru/nevozmozhnost-peredachi-formy-s-klienta-na-server/  | 
|||
| 
    23
    
        Гений 1С    
     гуру 
    02.09.21 
            ✎
    18:59 
 | 
         
        (20) в статье я описал, что при вынесении кода в общие модули с этой проблемой встретишься гарантированно. Это не неудобство, это БЕДА 1С     
         | 
|||
| 
    24
    
        Жан Пердежон    
     02.09.21 
            ✎
    19:03 
 | 
         
        обычно думаешь, как бы оптимизировать: где несколько вызовов в один объединить, где по значению передавать, где без контекста, а то и без серверного вызова
 
        тс думает, как бы сделать, чтобы говнокодить было проще  | 
|||
| 
    25
    
        Гений 1С    
     гуру 
    02.09.21 
            ✎
    19:05 
 | 
         
        (24) если кодить проще, то результат лучше получается. Для этого 1с и была задумана, чтобы доступно и всерьез.
 
        как видишь, из-за этой шняги все пишут формы не разбивая ее по модулям.  | 
|||
| 
    26
    
        Гений 1С    
     гуру 
    02.09.21 
            ✎
    19:06 
 | 
         
        Что вредит читаемости, повторному использованию кода и т.п.
 
        обрати внимание, что в формах на ОФ было принято использовать модуль формы, в УФ это рудиментом стало.  | 
|||
| 
    27
    
        H A D G E H O G s    
     02.09.21 
            ✎
    19:08 
 | 
         
        Автор грешит контекстными вызовами. Стыд и срам.     
         | 
|||
| 
    31
    
        Гений 1С    
     гуру 
    02.09.21 
            ✎
    19:15 
 | 
         
        (27) при рефакторинге формы это нормально     
         | 
|||
| 
    32
    
        BeerHelpsMeWin    
     02.09.21 
            ✎
    20:18 
 | 
         
        (0) Да уж, какую х-ню только люди не придумают, чтобы не писать нормальный код.     
         | 
|||
| 
    33
    
        Гений 1С    
     гуру 
    02.09.21 
            ✎
    20:30 
 | 
         
        (32) я вот все хочу посмотреть на этот "нормальный код", но все скрывают, приходится самому статьи писать, просвещать дремучих     
         | 
|||
| 
    34
    
        Guk    
     02.09.21 
            ✎
    21:06 
 | 
         
        а ведь у этого "специалиста" какие-то клиенты есть ;) жалко их, чесслово...     
         | 
|||
| 
    35
    
        acht    
     02.09.21 
            ✎
    22:32 
 | 
         
        Боженьки, Геня пишет письма в спортлото против мутабельных объектов. Какая прелесть.     
         | 
|||
| 
    36
    
        Вафель    
     02.09.21 
            ✎
    22:34 
 | 
         
        (35) но формально то платформа это умеет     
         | 
|||
| 
    37
    
        acht    
     02.09.21 
            ✎
    22:37 
 | 
         
        (36) Неа. Это не передача на сервер, а синхронизация контекстов.     
         | 
|||
| 
    38
    
        dangerouscoder    
     02.09.21 
            ✎
    23:03 
 | 
         
        (34) жадные клиенты должны страдать     
         | 
|||
| 
    39
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    07:44 
 | 
         
        (36) вот именно.     
         | 
|||
| 
    40
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    07:44 
 | 
         
        (38) наблюдаю "стокгольмский синдром"     
         | 
|||
| 
    41
    
        Mort    
     03.09.21 
            ✎
    08:12 
 | 
         
        Мда уж. "Гении" не пытаются разобраться/почитать мануалы, они сразу, по своим поверхностным представлениям выдают шедевры космической глупости. 
 
        Вот пара предложений с ИТС из которых открывается вся абсурдность фантазий про "взять клиентскую форму и отправить в параметре на сервер": "Т.к. данные формы доступны и на клиенте и на сервере, то основным хранилищем всех данных выступает сервер, просто потому что взаимодействие клиента и сервера инициируется только с клиента. Это означает, что в момент работы в памяти сервера находятся все данные формы, и доступ к ним осуществляется напрямую. На клиенте же имеется в общем случае частичное представление этих данных, при необходимости подгружаемое с сервера. При дальнейшей работе с формой изменения данных могут передаваться туда и/или обратно для синхронизации состояний клиента и сервера."  | 
|||
| 
    42
    
        Ненавижу 1С    
     гуру 
    03.09.21 
            ✎
    08:20 
 | 
         
        (40) я тебе проблему в (20) описал, но ты не вчитывался     
         | 
|||
| 
    43
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    09:07 
 | 
         
        (41) и? любая существующая на клиенте форма существует на сервере. В параметре передается просто ссылка на эту форму. В чем парадокс? Почему эту ссылку нельзя передать с клиента на сервер? Алле? Что за отрицание реальности?     
         | 
|||
| 
    44
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    09:09 
 | 
         
        (20) а в чем проблема? Если форма не закрыта, она существует на сервере и следовательно, на нее существует ссылка на клиенте. Даже если все ссылки на клиенте закрыты, если форма открыта, она существует и ее можно получить через коллекцию форм. Проблема надумана и отсосана из пальца     
         | 
|||
| 
    45
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    09:09 
 | 
         
        любая ссылка на форму - это ссылка на контекст формы (на клиенте и на сервере). Пока форма жива, эта ссылка имеет смысл, после закрытия формы она обращается в ничто.     
         | 
|||
| 
    46
    
        Ненавижу 1С    
     гуру 
    03.09.21 
            ✎
    09:10 
 | 
         
        (44) ты вообще не читаешь, а если она закрыта и ссылок на нее нет на клиенте?     
         | 
|||
| 
    47
    
        Ненавижу 1С    
     гуру 
    03.09.21 
            ✎
    09:11 
 | 
         
        (45) в ничто, на клиенте закрыли форму - ее можно уничтожить? а ссылка на сервере есть...     
         | 
|||
| 
    48
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    09:12 
 | 
         
        (47) при вызове команды закрытия формы она фактически закрывается (т.е. в интерфейсе закрывается). И все ссылки на клиенте и сервере обращаются в Неопределено. В чем проблема?     
         | 
|||
| 
    49
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    09:13 
 | 
         
        (47) если ты именно про ссылки на созданные формы, то если форма создана и явно не уничтожена, она должна храниться в памяти. Она будет доступна в коллекции форм, если что.     
         | 
|||
| 
    50
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    09:13 
 | 
         
        это будет избавлять от неряшливого кодирования.     
         | 
|||
| 
    51
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    09:14 
 | 
         
        т.е. пока форма не уничтожена, она хранится в памяти, не вижу проблем.     
         | 
|||
| 
    52
    
        Ненавижу 1С    
     гуру 
    03.09.21 
            ✎
    09:15 
 | 
         
        (48) во первых это не так, никто не будет оббегать все объекты в поисках ссылок, это дорого
 
        во-вторых, для этого понадобилось внезапно бы лезть еще раз на сервер (49) внезапно мнение поменялось ты вообще знаешь как устроены системы с управляемой памятью и сборщиком мусора?  | 
|||
| 
    53
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    09:15 
 | 
         
        Способ вызывать форму из клиента через функцию-посредник формы есть. значит, платформа может это делать, но не делает.
 
        В итоге провоцируется длинный монокод формы.  | 
|||
| 
    54
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    09:16 
 | 
         
        (52) ты что-то не уловил. Никакого подсчета ссылок. Нет явной команды уничтожения формы - форма хранится.
 
        (52) как сборщики мусора устроены. знаю. Теперь расскажи, как ты это применяешь для форм.  | 
|||
| 
    55
    
        Ненавижу 1С    
     гуру 
    03.09.21 
            ✎
    09:17 
 | 
         
        (53) да, но только в контексте одной формы, ты войдешь в этом контексте на сервере и выйдешь из него в нем же, другие формы на сервере ты так не изменишь     
         | 
|||
| 
    56
    
        acht    
     03.09.21 
            ✎
    09:17 
 | 
         
        (54) Геня. У тебя доступ на партнерский есть?     
         | 
|||
| 
    57
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    09:18 
 | 
         
        (56) нету. (55) ошибаешься, в любой форме, где есть такая процедура-затычка     
         | 
|||
| 
    58
    
        Cyberhawk    
     03.09.21 
            ✎
    09:19 
 | 
         
        Подключили на форме 2 обработчика ожидания. В них передаем форму в разные методы (или даже модули) на сервер. Там параллельно с формой что-то делается.
 
        Как синхронизировать потом на клиенте эти изменения?  | 
|||
| 
    59
    
        acht    
     03.09.21 
            ✎
    09:19 
 | 
         
        (57) > нету
 
        А ты делал что нибудь, для его получения, клоун?  | 
|||
| 
    60
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    09:20 
 | 
         
        (58) платформа стандартно все делает, в чем проблема? Для тебя удивительно, что все формы синхронизируются на клиенте и сервере.
 
        Мы передаем не форму, а ссылку на нее. Форма всегда есть на клиенте и сервере.  | 
|||
| 
    61
    
        acht    
     03.09.21 
            ✎
    09:21 
 | 
         
        (59) + Вот это вот твоё отсутсвие доступа очень хорошо характеризует твое истинное желание что-то понять и исправить.
 
        Ггг, в айти кризис.  | 
|||
| 
    62
    
        acht    
     03.09.21 
            ✎
    09:25 
 | 
         
        (60) 
 
        
Удачи в синхронизации  | 
|||
| 
    63
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    09:32 
 | 
         
        (61) там доступ платный. И особого смысла не вижу. Обычно там хоронят проблемы     
         | 
|||
| 
    64
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    09:32 
 | 
         
        (62) изивини, твой пассаж не понял     
         | 
|||
| 
    65
    
        acht    
     03.09.21 
            ✎
    09:36 
 | 
         
        (63) > И особого смысла не вижу
 
        Браво.  | 
|||
| 
    66
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    09:38 
 | 
         
        (65) ну может ты мне его откроешь? 1С не заинтересована в обратной связи, она анально огорожена от критики, даже конструктивной. даже от багов.     
         | 
|||
| 
    67
    
        Ненавижу 1С    
     гуру 
    03.09.21 
            ✎
    09:39 
 | 
         
        (60) "Мы передаем не форму, а ссылку на нее"
 
        это прям ошибка-ошибка, мы синхронизируем формы, а не просто ссылки передаем при передачи других объектов на сервер - мы делаем копию объекта, а не ссылку передаем Вот пример для демонстрации: &НаКлиенте Процедура Команда1(Команда) Массив = Новый Массив; МассивНаКлиенте(Массив); Сообщить(Массив.Количество()); // 1 Массив = Новый Массив; МассивНаСервере(Массив); Сообщить(Массив.Количество()); // 0 КонецПроцедуры &НаКлиенте Процедура МассивНаКлиенте(Знач Массив) Массив.Добавить(42); КонецПроцедуры &НаСервере Процедура МассивНаСервере(Знач Массив) Массив.Добавить(42); КонецПроцедуры  | 
|||
| 
    68
    
        Asmody    
     03.09.21 
            ✎
    09:58 
 | 
         
        (60) [Форма всегда есть на клиенте и сервере] - с каких это пор "форма всегда есть на сервере"?     
         | 
|||
| 
    69
    
        Конструктор1С    
     03.09.21 
            ✎
    10:03 
 | 
         
        (25) нет, 1с была задумана не для говнокодинга, как бы тебе этого не хотелось     
         | 
|||
| 
    70
    
        Конструктор1С    
     03.09.21 
            ✎
    10:04 
 | 
         
        (26) >>Что вредит читаемости, повторному использованию кода 
 
        Читаемости вредит твоя манера делать наркоманскую архитектуру  | 
|||
| 
    71
    
        Dmitrii    
     гуру 
    03.09.21 
            ✎
    10:22 
 | 
         
        (34) >> у этого "специалиста" какие-то клиенты есть ;) жалко их, чесслово.
 
        Мало того. У него наверняка и последователи есть, которые читают его статьи и пользуются этими "откровениями".  | 
|||
| 
    72
    
        lodger    
     03.09.21 
            ✎
    10:39 
 | 
         
        (25) это совершенно нормальная архитектура К-С взаимодействия. и точка перехода контекста формы в самой форме, это тоже совершенно нормально. а ТС наркоман и расписывается в этом тут (22)     
         | 
|||
| 
    73
    
        lodger    
     03.09.21 
            ✎
    10:40 
 | 
         
        (71) надо пошерстить его ресурс, вычленить кей-поинты и спрашивать у соискателей что они про это думают. легкий способ отсеять говнокодеров и коекакеров.     
         | 
|||
| 
    74
    
        Конструктор1С    
     03.09.21 
            ✎
    10:44 
 | 
         
        (71) самое досадное, что этот рукозад объявил себя в домике, и ничего слышать не хочет     
         | 
|||
| 
    75
    
        acht    
     03.09.21 
            ✎
    11:11 
 | 
         
        (66) > она анально огорожена от критики
 
        Чой-то ржу. Ты на себя-то давно смотрел, родной? =)  | 
|||
| 
    76
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    11:18 
 | 
         
        (68) что-то не так?     
         | 
|||
| 
    77
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    11:19 
 | 
         
        (72) ты забываешь, что заплаткой я получаю желаемый результат, проблема не в архитектуре КС, а в искусственных ограничениях. Наблюдаю стокгольмский синдром, когда программисты восхваляют свои цепи     
         | 
|||
| 
    78
    
        Ненавижу 1С    
     гуру 
    03.09.21 
            ✎
    11:26 
 | 
         
        (77) наблюдаю выборочный подход к ответам на поставленные вопросы по существу     
         | 
|||
| 
    79
    
        BeerHelpsMeWin    
     03.09.21 
            ✎
    11:28 
 | 
         
        (73) Я уже неоднократно говорил, что его сайт отлично подходит для собеседований. Берешь любую статью, показываешь соискателю и спрашиваешь, что сделано не так и как надо сделать правильно. Мало где в интернете есть такое количество говнорешений в открытом доступе.     
         | 
|||
| 
    80
    
        ildary    
     03.09.21 
            ✎
    11:33 
 | 
         
        (79) Опасная идея - соискатель рискует лопнуть от смеха и фейспалма.     
         | 
|||
| 
    81
    
        VladZ    
     03.09.21 
            ✎
    11:40 
 | 
         
        Я так и не понял, зачем это автору.     
         | 
|||
| 
    82
    
        Mort    
     03.09.21 
            ✎
    11:43 
 | 
         
        (81) Любой плохой код рано или поздно натыкается на какие-то платформенные/логические ограничения. Гена вместо приведения кода к логике, хочет сломать эти ограничения.     
         | 
|||
| 
    83
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    12:10 
 | 
         
        (82) логика простая - нужно сделать рефакторинг. Иногда нужно передавать форму целиком, чтобы настроить ее элементы, например. Вопросы, юнга?     
         | 
|||
| 
    84
    
        Конструктор1С    
     03.09.21 
            ✎
    12:11 
 | 
         
        (77) вся история развития программирования связана с ограничениями. Изобрели XML - по сути ограничение, зажимает в использование текстового формата определенной структуры, на деле - огромный прорыв. Без XML различные системы с трудом обменивались информацией, ибо каждый городил кто во что горазд, с XML смогли обмениваться данными самые разношерстные системы. Изобрели реляционные БД, SQL, они зажимают в структурирование данных до таблиц, на деле - огромный прорыв. Без РБД данные хранили кто во что горазд, было почти невозможно достигнуть многопользовательской работы с данными... Также и платформа 1С - кладезь полезных ограничений.
 
        Но вот выбежал рукожоп с горы, и давай рассуждать про вред ограничений  | 
|||
| 
    85
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    12:11 
 | 
         
        (78) какие вопросы остались не отвеченными. Подсчет ссылок не нужен. Еще вопросы?     
         | 
|||
| 
    86
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    12:11 
 | 
         
        (81) ну например, чтобы вынести код формы в общие модули. простейшее     
         | 
|||
| 
    87
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    12:12 
 | 
         
        (84) да, но это ограничение абсолютно искусственно, просто кому-то из архитекторов было лень почесаться в итоге имеем ягодицы.     
         | 
|||
| 
    88
    
        lodger    
     03.09.21 
            ✎
    12:13 
 | 
         
        (86) выноси, плохому танцору сам знаешь что мешает.     
         | 
|||
| 
    89
    
        Maniac    
     03.09.21 
            ✎
    12:18 
 | 
         
        Суть глобальных модулей это выносить код который используется многократно во множестве модулей.
 
        А не для того чтобы ты какую то сраную форму выносил.  | 
|||
| 
    90
    
        Конструктор1С    
     03.09.21 
            ✎
    12:19 
 | 
         
        (86) скажи спасобо всем этим ограничениям. Благодаря им твои поделия хотя бы запускаются. Пусти тебя в чистое поле, наперевес с языком программирования общего назначения, ты такую аритектурную наркоманию нагородишь, которая даже не сможет запуститься. Благодаря "ограничениям" программировать могут даже такие рукозады, как ты     
         | 
|||
| 
    91
    
        Maniac    
     03.09.21 
            ✎
    12:21 
 | 
         
        (90) у Гени нет подделок даже. за 10 лет только куча никому не нужного мусора.     
         | 
|||
| 
    92
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    12:21 
 | 
         
        (90) стокгольмский синдром детектед.
 
        (91) а они должны быть?  | 
|||
| 
    93
    
        Mort    
     03.09.21 
            ✎
    12:23 
 | 
         
        Допустим Гена стал главным разработчиком платформы и решил всё-таки запилить передачу формы из клиента в параметрах. Сейчас покажу как он обломается.
 
        Пример1: Форма.Реквизит1 = 10; СерверныйМодуль.МояПроцедура(Форма); Гена предлагает на сервере поймать ID формы или как он пишет "Ссылку". Но тогда все клиентские изменения не попадут на сервер (вот это: Форма.Реквизит1 = 10;), т.е. если платформа видит передачу формы параметром, она должна сначала её синхронизировать с объектом формы на сервере. И это мы ещё не передали массив или структуру с формами внутри. Дальше, в общем модуле: Процедура МояПроцедура(Форма) Форма.Реквизит1 = 30; КонецПроцедуры Форма на сервере изменилась, а когда эти изменения попадут в клиентскую форму? т.е. платформа должна проводить синхронизацию и при возвращении? И таких вопросов полно. Только Гений их не видит. Глаза заплыли "гениальностью" ))  | 
|||
| 
    94
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    12:24 
 | 
         
        (93) Ошибка "т.е. если платформа видит передачу формы параметром, она должна сначала её синхронизировать с объектом формы на сервере"
 
        При передаче ссылки на форму с клиента на сервер происходит синхронизация клиентской и серверной формы. Дальше не читал.  | 
|||
| 
    95
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    12:24 
 | 
         
        Еще раз, чтобы не было домыслов - уже сейчас все это прекрасно работает через заплатку. Речь только о том, чтобы это работало без костыля     
         | 
|||
| 
    96
    
        Конструктор1С    
     03.09.21 
            ✎
    12:25 
 | 
         
        (92) наркоман детектед     
         | 
|||
| 
    97
    
        acht    
     03.09.21 
            ✎
    12:27 
 | 
         
        (93) Процедура МояПроцедура(Знач Форма) =)     
         | 
|||
| 
    98
    
        Mort    
     03.09.21 
            ✎
    12:28 
 | 
         
        (95) Кстати да, насчет заплатки. Я думал там действительно гениальное решение по передаче данных формы на сервер или какой-нибудь грязный хак для работы с экземпляром формы на сервере в обход. А там тупо обычный контекстный переход на сервер срущий в модуль формы. Если можно писать в модуль формы, надо туда не это говно запихивать, а нормальный код по работе с формой на сервере с её логикой.     
         | 
|||
| 
    99
    
        Конструктор1С    
     03.09.21 
            ✎
    12:28 
 | 
         
        Нормальные программисты всегда стремятся к порядку, единообразию. Ты стремишься к анархии. Таким не место в программировании     
         | 
|||
| 
    100
    
        Конструктор1С    
     03.09.21 
            ✎
    12:33 
 | 
         
        (95) твоя проблема в том, что ты задачи решаешь ректально. Если бы до тебя дошел архитектурный принцип, согласно которому бизнес-логика не должна зависить от интерфейса, то надобность в проталкивании формы через анус отпала бы сама собой     
         | 
|||
| 
    101
    
        Maniac    
     03.09.21 
            ✎
    12:37 
 | 
         
        На самом деле я не понял что Геня изобрел. в типовой полно глобальников где передается форма.
 
        У меня даже есть такие процедуры некоторые - потому что например условные оформления для формы можно только на сервере программно управлять. А в типовой вообще это на раз два. Что Геня придумал - вообще не понял. очередной припадок видимо гениальности.  | 
|||
| 
    102
    
        Maniac    
     03.09.21 
            ✎
    12:39 
 | 
         
        О придумал параметр передаваемый в процедуре? Типа???
 
        &НаСервере Процедура УстановитьУсловноеОформлениеСтрок(Объект,ФормаОбъекта,ЭлементОбъекта,ЭлементФормы) Экспорт  | 
|||
| 
    103
    
        Вафель    
     03.09.21 
            ✎
    12:41 
 | 
         
        (93) не нужно передавать ссылку на форму на сервер. 
        форма живет и на сервере и на клиенте. те при передаче формы с клиента на сервер, должна придти ссылка на серверную часть  | 
|||
| 
    104
    
        Вафель    
     03.09.21 
            ✎
    12:42 
 | 
         
        сейчас конечно это невозможно ибо пытается на сервер попасть именно клиентская часть.     
         | 
|||
| 
    105
    
        Maniac    
     03.09.21 
            ✎
    12:45 
 | 
         
        Из клиенской процедуры - создается серверная процедура.
 
        После того как форма синхронизировалась с серверной частью там уже можно любые глобальники юзать.  | 
|||
| 
    106
    
        Maniac    
     03.09.21 
            ✎
    12:49 
 | 
         
        в том числе в которых передавать параметр формы, для того чтобы обращаться к реквизитам и данным в этих реквизитах как вздумается.
 
        Иногда можно делать просто глобальные серверные процедуры, в которые передавать структурой любые реквизиты формы и работать с ними. С некоторыми можно даже без контекста работать. если в параметре был указан конкретный перечень реквизитов. Пример. Есть реквизит формы табличный документ. Есть глобальная процедура которая формирует отчет выводимый в этот табличный документ (поле формы). Без контекста можно из клиента создать серверную процедуру без контектса, в которой будет в своюб очередь глобальная процедура. в параметр которой впихнут реквизит формы.  | 
|||
| 
    107
    
        Maniac    
     03.09.21 
            ✎
    12:51 
 | 
         
        &НаСервереБезКонтекста
 
        Процедура СформироватьОтчетПоЦенамСервер(ТаблицаОтчета,ПараметрыЗапроса) МегаПомощникПродажСервер.СформироватьОтчетПоЦенам(ТаблицаОтчета,ПараметрыЗапроса); КонецПроцедуры &НаКлиенте Процедура СформироватьОтчетПоЦенам() ПараметрыЗапроса = Новый Структура; ПараметрыЗапроса = ПолучитьПараметрыДетальногоЗапроса(ПараметрыЗапроса); СформироватьОтчетПоЦенамСервер(ТаблицаЦеныНоменклатуры,ПараметрыЗапроса); КонецПроцедуры ТаблицаЦеныНоменклатуры - реквизит формы с типом ТабличныйДокумент.  | 
|||
| 
    108
    
        Ыцшесрук    
     03.09.21 
            ✎
    12:51 
 | 
         
        Геню, похоже, нужно вводить в анналы истории как эталонный пример синдрома Даннинга-Крюгера.     
         | 
|||
| 
    109
    
        acht    
     03.09.21 
            ✎
    12:57 
 | 
         
        (108) > вводить в анналы 
 
        Да его уже давно и по самые помидоры. Сейчас народ просто прикидывает, как его в мирных целях использовать можно, например (73). Может и сгодится на что...  | 
|||
| 
    110
    
        Ненавижу 1С    
     гуру 
    03.09.21 
            ✎
    15:20 
 | 
         
        опять ждать Free RAD?
 
        https://geniy1s.ru/developments-soft/free-rad/  | 
|||
| 
    111
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    15:24 
 | 
         
        (101) это говорит о твоем уровне, как программиста     
         | 
|||
| 
    112
    
        Гений 1С    
     гуру 
    03.09.21 
            ✎
    15:25 
 | 
         
        (110) Базуху жи     
         | 
|||
| 
    113
    
        Maniac    
     03.09.21 
            ✎
    15:34 
 | 
         
        FREE RAD
 
        Миссия проекта: дать программистам-разработчикам инструмент для быстрой разработки приложений (RAD — Rapid Application Development), связанных с базами данных. Человек пишет инструмент для разработки приложений, тот кто ни одного приложения в жизни не создал)) Тем более коммерческого))  | 
|||
| 
    114
    
        Maniac    
     03.09.21 
            ✎
    15:38 
 | 
         
        https://geniy1s.ru/developments-1s/1s-data-exchanges/csv-xml-translation/
 
        "Для считывания CSV использовался не очень быстрый метод считывания файла в строку с последующим разбором отсюда. Метод реально медленный на 72 Мб файле работал 10 минут. Но работает правильно, т.к. обрабатывает переносы строк." Геня научился CSV читать!!))) Открыл АМЕРИКУ. но 10 минут! Геня у меня обработка чтения CSV есть которая файл в 1 гиг с 15 000 000 строк - за 8 секунд читает.  | 
|||
| 
    115
    
        Maniac    
     03.09.21 
            ✎
    15:39 
 | 
         
        А за минуту может создать новый файл в новыми ценами из этого первого файла.     
         | 
|||
| 
    116
    
        lodger    
     03.09.21 
            ✎
    15:44 
 | 
         
        (114) ты просто не понимаешь всего гения.     
         | 
|||
| 
    117
    
        Гений 1С    
     гуру 
    04.09.21 
            ✎
    17:29 
 | 
         
        (114) я надеюсь перенос строки в кавычках она отрабатывала?     
         | 
|||
| 
    118
    
        acht    
     04.09.21 
            ✎
    17:30 
 | 
         
        (117) Подожди. Маня воюет с иностранцами в интернете, ему не до кода =)     
         | 
|||
| 
    119
    
        Гений 1С    
     гуру 
    04.09.21 
            ✎
    22:02 
 | 
         
        (118) с украинцами штоли? У него ж оттедова конкуренты     
         | 
|||
| 
    120
    
        dmitryds    
     04.09.21 
            ✎
    22:05 
 | 
         
        (94) Ты ведь вроде сайтами занимался, должен понимать, что на клиенте не может быть ссылки на форму (как при работе на сервере)     
         | 
|||
| 
    121
    
        МнеТолько Спросить    
     05.09.21 
            ✎
    05:07 
 | 
         
        (72) >ТС наркоман и расписывается в этом тут 
 
        Тоже мне новость (77)Ты лучше расскажи ты от цепей ограничения использования ОРМ 1с уже отказался? Ты вот вот(прям уже почти готово было) хотел выпустить набор обработок которые не будут использовать базу 1С а будут использовать, любые другие БД и за 12 копеек можно было получить полный функционал работы с 1С и даже какой-то способ перевести свои конфигурации с БД которую юзает 1С на ту какая тебе нравится. Как там дела? Готово? (91)Видел на ИС публикацию когда гений в 1с не смог в цикле сложить две строки и решил использовать для этого эксель  | 
|||
| 
    122
    
        Гений 1С    
     гуру 
    05.09.21 
            ✎
    09:49 
 | 
         
        (120) шта? форма живет на сервере и клиенте и синхронизируется. Конечно же, ссылка на форму может быть (или гуид формы, или как не назови). Что за бред вы пишите? при чем сайты к УФ?     
         | 
|||
| 
    123
    
        Гений 1С    
     гуру 
    05.09.21 
            ✎
    09:50 
 | 
         
        (121) что такое ОРМ? Базуха - хорошая тема, но я пока увлечен ЕБОША, т.е. вкалыванием     
         | 
|||
| 
    124
    
        Юрий Лазаренко    
     05.09.21 
            ✎
    10:15 
 | 
         
        (0) Крайне ужасные решения появятся, если в платформе будет возможность передавать все данные формы при каждом вызове серверного общего модуля. Подробности вот тут посмотри: https://youtu.be/PvQX0H28S_M?t=851
 
        Если кратко: каждый такой вызов будет серверным контекстным. То есть, все данные формы превращаются в структуру (условно "структуру"), передаются на сервер, там актуализируются; далее выполняется какое-то действие и все конвертация и передача происходит в обратном порядке. Пример с лагерем и спичками тут подходит прекрасно. Сейчас для того, чтобы выполнить какие-то действия на сервере, не все заморачиваются выбором типа вызова: серверный контекстный или серверный бесконтекстный. Нагрузка на сервер при этом различается на порядки, то есть в сотни раз. Для передачи контекста формы на сервер сейчас надо вызвать серверную процедуру формы. Это "лишнее" телодвижение, которое хоть как-то отбивает желание 1Сника сделать несколько контекстных серверных вызовов там, где можно обойтись одним. Если же общие серверные модули можно будет вызывать из любого места формы, то скоро от быстродействия этой формы не останется ничего.  | 
|||
| 
    125
    
        Гений 1С    
     гуру 
    05.09.21 
            ✎
    11:25 
 | 
         
        (124) при каждом не надо. форма и так уже существует на сервере     
         | 
|||
| 
    126
    
        Гений 1С    
     гуру 
    05.09.21 
            ✎
    11:25 
 | 
         
        Если это сложно определить платформе, можно указать директиву препроцессора     
         | 
|||
| 
    127
    
        Ненавижу 1С    
     гуру 
    05.09.21 
            ✎
    11:30 
 | 
         
        (125) а толку? Она на клиенте возможно изменилась и её надо синхронизовать и потом в обратную сторону     
         | 
|||
| 
    128
    
        Гений 1С    
     гуру 
    05.09.21 
            ✎
    11:32 
 | 
         
        (127) послушай, я делаю все то же самое через заплатку в форме, почему это не может сделать платформа. Ну можно изменить и в обратную сторону, в чем проблема?     
         | 
|||
| 
    129
    
        lucbak    
     05.09.21 
            ✎
    11:36 
 | 
         
        (124) Цитата "Сервер не может вызвать клиента даже если очень этого захочет" (возможно не дословно, но смысл именно такой был). Ставим СВ и о чудо - оказывается сервер может вызвать клиента :) Я конечно не программист, но складывается ощущение, что что-то не то в консерватории...     
         | 
|||
| 
    130
    
        Гений 1С    
     гуру 
    05.09.21 
            ✎
    11:45 
 | 
         
        (129) мне не нужно вызывать клиента с сервера, мне нужно вызывать сервера с клиента.
 
        А что такое СВ?  | 
|||
| 
    131
    
        Ненавижу 1С    
     гуру 
    05.09.21 
            ✎
    11:49 
 | 
         
        (128) твоя заплатка не сработает если нужно передать две формы     
         | 
|||
| 
    132
    
        lucbak    
     05.09.21 
            ✎
    11:56 
 | 
         
        (130) Сервер Взаимодействия     
         | 
|||
| 
    133
    
        Ненавижу 1С    
     гуру 
    05.09.21 
            ✎
    12:08 
 | 
         
        (129) ну это может быть постоянный опрос клиентом сервера в отдельном потоке     
         | 
|||
| 
    134
    
        lucbak    
     05.09.21 
            ✎
    12:19 
 | 
         
        (133) Все может быть, но факт остается фактом - если нельзя, но очень хочется то можно все. Есть много вещей которые я не понимаю (относительно платформы) - почему можно гонять с клиента на сервер (и наоборот) массивы,списки,структуры,соответствия, но по какой-то странной логике нельзя - таблицы (разумеется я могу разложить ее в массив структур и т.д.), но ...     
         | 
|||
| 
    135
    
        Гений 1С    
     гуру 
    05.09.21 
            ✎
    12:51 
 | 
         
        (131) две не нужно.     
         | 
|||
| 
    136
    
        Гений 1С    
     гуру 
    05.09.21 
            ✎
    12:52 
 | 
         
        (134) ну вот о том и речь, что нужно убирать странности и приводить в норму     
         | 
|||
| 
    137
    
        Юрий Лазаренко    
     05.09.21 
            ✎
    12:55 
 | 
         
        (129) Слайд 33, мелким шрифтом внизу: https://youtu.be/PvQX0H28S_M?t=1034     
         | 
|||
| 
    138
    
        Ненавижу 1С    
     гуру 
    05.09.21 
            ✎
    12:58 
 | 
         
        (134) кажется я уже писал в (67) - потому что объекты не передаются так с клиента на сервер как ссылки, а происходит полная сериализация/десериализация объекта, фактически создается копия
 
        они решили пойти компромисс и сделать возможной передачу относительно легких по структуре объектов я не говорю, что решение идеальное вообще все выглядит довольно странным - просто запомните, как неправильные глаголы, но что есть, то есть  | 
|||
| 
    139
    
        Юрий Лазаренко    
     05.09.21 
            ✎
    13:01 
 | 
         
        +(137) Необязательно даже СВ ставить, можно и ВК + сокеты.
 
        https://www.youtube.com/watch?v=5le3A2f3QjM  | 
|||
| 
    140
    
        lucbak    
     05.09.21 
            ✎
    13:01 
 | 
         
        (137) Не прочитал сразу (сори). Другими словами, сделать можно все, но 1С это просто не нужно.
 
        (138) Да я "запомнил" и смирился уже, но осадочек как говорится остался :)  | 
|||
| 
    141
    
        Юрий Лазаренко    
     05.09.21 
            ✎
    13:04 
 | 
         
        (140) Платформа и так не сильно быстрая, нагружать ее дополнительными фишками - это утяжелить еще. К тому же, зачем весь дополнительный функционал включать в платформу и отдавать просто так, если можно продавать за дополнительные деньги, как СВ. Маркетинг и разные версии за разные деньги никто не отменял.     
         | 
|||
| 
    142
    
        Ненавижу 1С    
     гуру 
    05.09.21 
            ✎
    13:04 
 | 
         
        (140) а с формой так нельзя, нельзя просто взять и развернуть копию, а надо найти этот объект и синхронизовать
 
        вообще форма на клиенте и на сервере в каком-то смысле объекты разных типов, просто синхронизированные друг с другом  | 
|||
| 
    143
    
        Юрий Лазаренко    
     05.09.21 
            ✎
    13:08 
 | 
         
        (142) И тут важно помнить, что они не постоянно синхронизированные. Если форму открыть и в элемент ввода типа "Число" ввести цифру 2, то на клиенте цифра появится, а на сервере нет. Для синхронизации необходимо сделать контекстный серверный вызов (чаще всего). А серверный вызов - это суть разобрать/собрать весь лагерь, чтобы сходить за спичками. И чтобы таких вызовов было поменьше и платформа хоть как-то ворочалась и не погибла вместе с сервером, 1С сознательно не выполняет пожелалку ТС из (0). И правильно делает.     
         | 
|||
| 
    144
    
        Юрий Лазаренко    
     05.09.21 
            ✎
    13:13 
 | 
         
        (134) Кстати, в первых версиях управляемых форм, в 2008 году, таблица значений была доступна на клиенте. То есть, в управляемой форме в процедуре &НаКлиенте можно было написать
 
        МояТЗ = Новый ТаблицаЗначений и это не было ошибкой. В следующих релизах это стало невозможным.  | 
|||
| 
    145
    
        Гений 1С    
     гуру 
    05.09.21 
            ✎
    13:15 
 | 
         
        (140) вот потому я и оставил хотелку, чтобы показать 1с, что нам, простым программистам нужно     
         | 
|||
| 
    146
    
        lucbak    
     05.09.21 
            ✎
    13:17 
 | 
         
        (141) >>Платформа и так не сильно быстрая
 
        Это одна из проблем 1С (вместо того, что бы делать очередные мало кому нужные бантики) могли бы заняться ее ускорением, но нет... (144) Забавно.  | 
|||
| 
    147
    
        Юрий Лазаренко    
     05.09.21 
            ✎
    13:23 
 | 
         
        (146) 8.3 ускорить практически невозможно (ИМХО, конечно)     
         | 
|||
| 
    148
    
        acht    
     05.09.21 
            ✎
    13:40 
 | 
         
        (145) > что нам, простым программистам 
 
        Геня, ты с собой определись уже - ты простой программист или не простой?  | 
|||
| 
    149
    
        Ненавижу 1С    
     гуру 
    05.09.21 
            ✎
    13:44 
 | 
         
        (148) альтернативно одаренный     
         | 
|||
| 
    150
    
        Вафель    
     05.09.21 
            ✎
    14:22 
 | 
         
        А какая задача решается?  
        Скорее всего тут плохой дизай формы. Но сама 1с мало думает о доработках. Но уже больше чем в обычных формах  | 
|||
| 
    151
    
        MyNick    
     05.09.21 
            ✎
    14:43 
 | 
         
        (0)Гений, что-то я не понял, а накуа тащить контекст всей формы в общий модуль?
 
        Для манипуляции со всей формой используется модуль формы. Для манипуляции с данными формы - передавай их в структуре параметра фунции общего модуля. Для чего эти костыли, "кулибин" ты наш? Чтобы было проще говнокодить? Обрисуй конкретную задачу, где это тебе надо и мы скажем почему тебе это не надо.  | 
|||
| 
    152
    
        Ненавижу 1С    
     гуру 
    05.09.21 
            ✎
    14:52 
 | 
         
        (151) ну какой-то смысл есть
 
        вот например мне понадобилось и форме заказа клиента и заказа на перемещение добавить колонки остатки/резервы по складу, объем и вес они общие для обеих форм, так не копировать же код два раза?  | 
|||
| 
    153
    
        acht    
     05.09.21 
            ✎
    14:59 
 | 
         
        (152) Там из "скопированного два раза кода" будет ровно одна серверная контекстная процедура из ровно одной строки, вызывающей общий серверный модуль.     
         | 
|||
| 
    154
    
        MyNick    
     05.09.21 
            ✎
    15:06 
 | 
         
        (152) Так чтоли?
 
        &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) //ОбщийДляФорм.ДобавитьЭлементы(Элементы); КонецПроцедуры // ИЛИ С КЛИЕНТА &НаКлиенте Процедура ПриОткрытии(Отказ) ДобавитьЭлементы(); КонецПроцедуры &НаСервере Процедура ДобавитьЭлементы() ОбщийДляФорм.ДобавитьЭлементы(Элементы); КонецПроцедуры /////////////////// ОБЩИЙ МОДУЛЬ /////////////// Функция ДобавитьЭлементы(Элементы) Экспорт Декорация = Элементы.Добавить("Декорация1", Тип("ДекорацияФормы")); Декорация.Заголовок = "Текст.."; КонецФункции  | 
|||
| 
    155
    
        Ненавижу 1С    
     гуру 
    05.09.21 
            ✎
    15:07 
 | 
         
        (154) что-то в этом духе
 
        Ну там еще расчет данных при добавлении/изменении товаров  | 
|||
| 
    156
    
        MyNick    
     05.09.21 
            ✎
    15:11 
 | 
         
        (155) ...вооот... Т.е. Гении в одной функции хотят делать фарш из мух и котлет.
 
        Это и есть говнокод. В одной функции получаем условия для отображения элементов и прочей манипуляции с ними. В другой - формируем интерфейс. И это правильно. Получение и обработка данных и их отображение должны располагаться в разных местах. Но гениям это мешает жить. Они целые статьи пишут и изобретают велосипеды с квадратными колесами. Лишь бы у последователей, читающих их божественный код, кровь из глаз шла.  | 
|||
| 
    157
    
        Гений 1С    
     гуру 
    05.09.21 
            ✎
    18:21 
 | 
         
        (152) вызовешь отдельно для каждой формы     
         | 
|||
| 
    158
    
        Гений 1С    
     гуру 
    05.09.21 
            ✎
    18:22 
 | 
         
        (156) почитай про вынесение кода формы в модули, потом пиши с умным видом.     
         | 
|||
| 
    159
    
        Гений 1С    
     гуру 
    05.09.21 
            ✎
    18:22 
 | 
         
        (150) например, вынесение кода формы в модули     
         | 
|||
| 
    160
    
        Гений 1С    
     гуру 
    05.09.21 
            ✎
    18:22 
 | 
         
        (151) почитай статью не по диагонали, думаю, поймешь.     
         | 
|||
| 
    161
    
        Гений 1С    
     гуру 
    05.09.21 
            ✎
    18:23 
 | 
         
        (146) в данном случае скорость не важна, важнее наличие функционала, чтобы не писать заплатки (функции-посредники)     
         | 
|||
| 
    162
    
        Гений 1С    
     гуру 
    05.09.21 
            ✎
    18:23 
 | 
         
        ок. пусть 1с сделает встроенную функцию-посредник, если она не может в вызов серверного модуля с формой с клиента     
         | 
|||
| 
    163
    
        Ненавижу 1С    
     гуру 
    05.09.21 
            ✎
    18:47 
 | 
         
        (161) если параметры передавать через запись в справочник, то да, скорость не важна     
         | 
|||
| 
    164
    
        acht    
     05.09.21 
            ✎
    19:34 
 | 
         
        (162) > пусть 1с
 
        Повелеваешь?  | 
|||
| 
    165
    
        Конструктор1С    
     05.09.21 
            ✎
    19:48 
 | 
         
        (158) Геня, бизнес-логика и интерфейс должны быть разделены. Бизнес-логика не должна зависеть от интерфейса. Ты когда уже программировать научишься? То, чем ты сейчас занимаешься, сложно назвать программированием, это кодошлёпство     
         | 
|||
| 
    166
    
        Конструктор1С    
     05.09.21 
            ✎
    19:52 
 | 
         
        Елитный говнокод. Смесь индусского с наркоманским
 
        #Область ДляВызоваССервера &НаСервере Процедура ПроцедураНаСервере(ИмяМетода, П1 = "3b779cb1-3a77-4984-8e2b-8c7960a3863a", П2 = "3b779cb1-3a77-4984-8e2b-8c7960a3863a", П3 = "3b779cb1-3a77-4984-8e2b-8c7960a3863a", П4 = "3b779cb1-3a77-4984-8e2b-8c7960a3863a", П5 = "3b779cb1-3a77-4984-8e2b-8c7960a3863a") Экспорт П = ""; Если П1 <> "3b779cb1-3a77-4984-8e2b-8c7960a3863a" Тогда П = ", П1"; Если П2 <> "3b779cb1-3a77-4984-8e2b-8c7960a3863a" Тогда П = П + ", П2"; Если П3 <> "3b779cb1-3a77-4984-8e2b-8c7960a3863a" Тогда П = П + ", П3"; Если П4 <> "3b779cb1-3a77-4984-8e2b-8c7960a3863a" Тогда П = П + ", П4"; Если П5 <> "3b779cb1-3a77-4984-8e2b-8c7960a3863a" Тогда П = П + ", П5"; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; Выполнить(ИмяМетода + "(ЭтаФорма" + П + ")"); КонецПроцедуры &НаСервере Функция ФункцияНаСервере(ИмяМетода, П1 = "3b779cb1-3a77-4984-8e2b-8c7960a3863a", П2 = "3b779cb1-3a77-4984-8e2b-8c7960a3863a", П3 = "3b779cb1-3a77-4984-8e2b-8c7960a3863a", П4 = "3b779cb1-3a77-4984-8e2b-8c7960a3863a", П5 = "3b779cb1-3a77-4984-8e2b-8c7960a3863a") Экспорт Р = Неопределено; П = ""; Если П1 <> "3b779cb1-3a77-4984-8e2b-8c7960a3863a" Тогда П = ", П1"; Если П2 <> "3b779cb1-3a77-4984-8e2b-8c7960a3863a" Тогда П = П + ", П2"; Если П3 <> "3b779cb1-3a77-4984-8e2b-8c7960a3863a" Тогда П = П + ", П3"; Если П4 <> "3b779cb1-3a77-4984-8e2b-8c7960a3863a" Тогда П = П + ", П4"; Если П5 <> "3b779cb1-3a77-4984-8e2b-8c7960a3863a" Тогда П = П + ", П5"; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; Выполнить("Р = " + ИмяМетода + "(ЭтаФорма" + П + ")"); Возврат Р; КонецФункции #КонецОбласти  | 
|||
| 
    167
    
        Конструктор1С    
     05.09.21 
            ✎
    19:55 
 | 
         
        Пойду глаза прополощу     
         | 
|||
| 
    168
    
        Гений 1С    
     гуру 
    05.09.21 
            ✎
    22:28 
 | 
         
        (165) 0 бит, прости. Есть задачи по дизайну формы, они связаны с интерфейсом, а не логикой, их хочется и нужно выносить в общие модули     
         | 
|||
| 
    169
    
        DropDead    
     06.09.21 
            ✎
    03:24 
 | 
         
        Я все ещё не понимаю, зачем вы за гения работу делаете? 
 
        Он вам башляет?  | 
|||
| 
    170
    
        Конструктор1С    
     06.09.21 
            ✎
    06:40 
 | 
         
        (168) в UI/UX ты тоже полное дно, поэтому у тебя и рождаются перлы типа (0)     
         | 
|||
| 
    171
    
        Юрий Лазаренко    
     06.09.21 
            ✎
    09:50 
 | 
         
        (161) Конечно, "скорость не важна". Подумаешь - сервак положили.     
         | 
|||
| 
    172
    
        Ненавижу 1С    
     гуру 
    06.09.21 
            ✎
    10:02 
 | 
         
        (171) в ларьках клиентов фиксина нет серваков     
         | 
|||
| 
    173
    
        acht    
     06.09.21 
            ✎
    10:10 
 | 
         
        (172) > нет серваков
 
        гггг, 0 бит, в айтикризис, фирма 1С не может, вот вам статья как я с ней борюсь. =)  | 
|||
| 
    174
    
        sikuda    
     06.09.21 
            ✎
    11:29 
 | 
         
        (171) Гений 1С как осел в Шреке - повод лучше разобраться...     
         | 
|||
| 
    175
    
        Конструктор1С    
     06.09.21 
            ✎
    12:04 
 | 
         
        (174) если бы Г1С писал для себя, то фиг бы с ним. А так придёт ведь после него прогер, который будет вынужден иметь дело со всей той наркоманией, которую Г1С нагородил     
         | 
|||
| 
    176
    
        acanta    
     06.09.21 
            ✎
    12:07 
 | 
         
        В последних версиях типовых было уже не модно с такими параметрами как в (166), рекомендовалось структуру одну в качестве параметра или максимум три параметра - структура, форсмажорный отказ и что то на ответ по аналогии с функцией.     
         | 
|||
| 
    177
    
        acanta    
     06.09.21 
            ✎
    12:09 
 | 
         
        То есть вся лирика с гуидами в одной переменной, и еще мухи с котлетами как необязательные.     
         | 
|||
| 
    178
    
        BeerHelpsMeWin    
     06.09.21 
            ✎
    13:00 
 | 
         
        (175) Это будет отличный повод запросить больше денег. Но есть одна проблема - у Гениных клиентов-нищебродов таких денег нет.     
         | 
|||
| 
    179
    
        MyNick    
     06.09.21 
            ✎
    13:54 
 | 
         
        (158), (159), (160).
 
        Твои гениальные мысли я читал. И не по диагонали. Понятно, что ты хочешь. Даже понятно, зачем. Даже сталкивался с такой потребностью сам, когда начинал осваивать УФ. На первых порах плевался как и ты (вот же гады, не дают по быстренькому нафигачить "чтобы работало"). Но осознание позже, с опытом пришло - что так делать кака. И почему - написано в (165) например. (166) согласен... вот это жесть так жесть.  | 
|||
| 
    180
    
        Maniac    
     06.09.21 
            ✎
    15:42 
 | 
         
        зачем Геня дарит миру) то что никому не нужно?
 
        У него даже нет ни одного массового решения которое кому либо было нужно, я уже молчу про коммерческие. Получается он на ком то из клиентов эксперементы ставит! коверкает до ужаса. Потом уходит. Вместо него приходят люди и окуевают! Так получается?  | 
|||
| 
    181
    
        acht    
     06.09.21 
            ✎
    17:10 
 | 
         
        (180) Потому что у него ничего больше нет. И вот этим последним он делится с нами, которые окуевают даже не приходя у его клиенту. Получается так.     
         | 
|||
| 
    182
    
        Гений 1С    
     гуру 
    06.09.21 
            ✎
    17:50 
 | 
         
        (179) Гуру, преклоняю перед вами колени, если конечно не пи...., ой, не врете... а в 165 у тебя общие слова.     
         | 
|||
| 
    183
    
        H A D G E H O G s    
     06.09.21 
            ✎
    23:12 
 | 
         
        Вот чего действительно не хватает в УФ - так это прямого вызова методов модулей менеджеров с клиента.     
         | 
|||
| 
    184
    
        H A D G E H O G s    
     06.09.21 
            ✎
    23:13 
 | 
         
        Ты не сможешь вызвать код вот так с клиента
 
        КодыВидовЛицензируемойДеятельности=Справочники.АСФЛицензии.ПолучитьКодыВидовЛицензируемойДеятельности();  | 
|||
| 
    185
    
        RomanYS    
     06.09.21 
            ✎
    23:23 
 | 
         
        (183) так если самих менеджеров не на клиенте, то и их модулей логично нет. Чем общий клиентский модуль не устраивает?     
         | 
|||
| 
    186
    
        acanta    
     06.09.21 
            ✎
    23:24 
 | 
         
        (184) как бы да, это был первый пункт рекламной кампании новой 8ки для семерочников.     
         | 
|||
| 
    187
    
        acanta    
     06.09.21 
            ✎
    23:26 
 | 
         
        Поэтому семерочникам (у которых не было) проще переходить на УФ (где тоже уже нет), чем на ОФ (где все есть, но как то не очень получается).     
         | 
|||
| 
    188
    
        H A D G E H O G s    
     06.09.21 
            ✎
    23:52 
 | 
         
        (185) 
 
        ПредопределенноеЗначение("Перечисление.АСФВидыЛицензируемойДеятельности.ЗакупкаЭСПофармакопейнымСтатьямБолее200дклВГод")  | 
|||
| 
    189
    
        Ненавижу 1С    
     гуру 
    06.09.21 
            ✎
    23:54 
 | 
         
        (185) а чем общий серверный модуль в этом случае отличается от модуля менеджера?     
         | 
|||
| 
    190
    
        RomanYS    
     07.09.21 
            ✎
    00:09 
 | 
         
        (188) ну да, сами перечисления недоступны, а значения доступны. Может и можно было красивее сделать. Раньше от этого тоже подташнивало, а теперь привык)
 
        (189) ну должна же где-то быть граница. Все метаданные тащить на клиент, тоже так себе идея  | 
|||
| 
    191
    
        H A D G E H O G s    
     07.09.21 
            ✎
    00:18 
 | 
         
        (190) В начальных 8.2 этой функции не было, приходилось в ПриСозданииНаСервере на клиент тащить ссылки. Потом впилили костыльчик.     
         | 
|||
| 
    192
    
        Конструктор1С    
     07.09.21 
            ✎
    05:02 
 | 
         
        (191) так не нужно писать бизнес-логику на клиенте, и не будет такой уродливой надобности. Форма впринципе не должна заведовать бизнес-логикой, только отвечать за интерфейс     
         | 
|||
| 
    193
    
        Ыцшесрук    
     07.09.21 
            ✎
    05:27 
 | 
         
        Геня старательно вызывает на себя ковшики с какахами и методично ими обмазывается :)     
         | 
|||
| 
    194
    
        Гений 1С    
     гуру 
    07.09.21 
            ✎
    08:12 
 | 
         
        (193) я за истену.     
         | 
|||
| 
    195
    
        luter-89    
     07.09.21 
            ✎
    09:04 
 | 
         
        (33) Есть такая штука как БСП, может почерпнешь что-то новое     
         | 
|||
| 
    196
    
        Гений 1С    
     гуру 
    07.09.21 
            ✎
    12:44 
 | 
         
        (165) а мы где говорили про бизнес-логику? Клиент как раз и обращается на сервер, чтобы что-то однотипно отрисовать, т.е. сделать настройки интерфейса.     
         | 
|||
| 
    197
    
        acht    
     07.09.21 
            ✎
    12:57 
 | 
         
        (196) А пользователь входит в программу чтобы поработать.     
         | 
|||
| 
    198
    
        H A D G E H O G s    
     07.09.21 
            ✎
    13:01 
 | 
         
        Ловите любителя подергать за сервер в (192)!     
         | 
|||
| 
    199
    
        acht    
     07.09.21 
            ✎
    13:13 
 | 
         
        (198) А он прав.
 
        Вот, например раньше была дырка, все серверные методы были экспортные и видимые с клиента... И пишет один такой геня, которому думать неохота, в форме на клиенте: Если ЕстьВозможностьУвольнятьСотрудникаНаСервере() Тогда УволитьСотрудникаНаСервере(); КонецЕсли; А второй геня пишет: Форма = ПолучитьФорму(...); Форма.Объект.Сотрудник = НенавистныйДиректор; Форма.УволитьСотрудникаНаСервере(); И все, бизнес логика пошла лесом, потому что геням так удобно.  | 
|||
| 
    200
    
        acht    
     07.09.21 
            ✎
    13:15 
 | 
         
        А потом статью пишет и на форумах ссылки раскидывает - посмотрите, мол, какой я молодец, обошел дурацкое ограничение фирмы 1С, гггг, в айти кризис.     
         | 
|||
| 
    201
    
        Maniac    
     07.09.21 
            ✎
    13:28 
 | 
         
        (192) да ну. я тебе могу привести кучу примеров когда стоят задачи обработки данных которых вообще в базе НЕТ!!!
 
        А с какого уя их приходиться все время ТАСКАТЬ НА СЕРВЕР чтобы что то там сделать и ВЕРНУТЬ НАЗАД. Потому что большую часть каких то действие ФИГ СДЕЛАЕШЬ. например получили какие то данные на клиенте. в форму в таблицы. каого фени к ним ни запроса, ничерта сделать невозможно. Повторю - этих данных в базе НЕТ и на сервере нет. А с 1С жесткие ограничения на клиенте.  | 
|||
| 
    202
    
        Maniac    
     07.09.21 
            ✎
    13:29 
 | 
         
        Даже у одно обработки есть несколько ФОРМ. нужно всю байду затащить на сервер, чтобы потом оттуда вытащить. БРЕД     
         | 
|||
| 
    203
    
        Maniac    
     07.09.21 
            ✎
    13:31 
 | 
         
        И еще что убивает. Даже если имеем обьект, в котором к примеру много таблиц и частей.
 
        Даже если хотим на сервере что то обработать. Почему нет элементарной возможности просто передать некоторые реквизиты или таблицы обьекта а не ВЕСЬ ОБЪЕКТ.  | 
|||
| 
    204
    
        Maniac    
     07.09.21 
            ✎
    13:33 
 | 
         
        Нафига нужно выгружать ТЧ в переменную чтобы передать в запрос?
 
        А потом приходится еще после запроса еще выборку делать чтобы опять в ТЧ запихнуть выгрузкой или перебором - если всего пара колонок каких то нуждалась в обработке. Вопросов миллион на самом деле к конфигуратору.  | 
|||
| 
    205
    
        Maniac    
     07.09.21 
            ✎
    13:41 
 | 
         
        А к типовым еще БОЛЬШЕ вопросов.
 
        Почему в УНФ БСП не такое как у всех? Почему в регистре не ВидЦен и ВидЦены Почему справочник Склады - Структурные подразделения Почему Виды номенклатуры - Категории номенклатуры Почему Использование характеристик - Использовать характеристики Почему в номенклатуру поставщиков нет владельца, а есть реквизит Владелец. Почему нет ни одного обработчика табличных частей (суммы, ндс, скидки) с Экспортом. Даже в 1С розница есть Почему в регистрах полный бред.  | 
|||
| 
    206
    
        Maniac    
     07.09.21 
            ✎
    13:43 
 | 
         
        Почему чтобы в любой типовой посмотреть процедуру глобальную - нужно 10 глобальников пролистать.
 
        Даже просто на обработке строки - например сумму ндс - затаскает по километру кода и 25 глобальным модулям.  | 
|||
| 
    207
    
        acht    
     07.09.21 
            ✎
    13:57 
 | 
         
        (204) Маня, зачем ты занимаешься этим мазохизмом в 1С? 
 
        Шел бы, например, могилки копал. Там всегда спокойные клиенты, четкое ТЗ, нет этого "ай, не того закопали, перезакапывайте заново", устоявшийся и эффективный набор инструментов.  | 
|||
| 
    208
    
        BeerHelpsMeWin    
     07.09.21 
            ✎
    13:59 
 | 
         
        (201) А зачем обрабатывать данные, которых в базе нет?     
         | 
|||
| 
    209
    
        Олеша Попович    
     07.09.21 
            ✎
    14:02 
 | 
         
        (207) а что написано на партнерском форуме, для Гени 1с? скинь ссылку почитаю     
         | 
|||
| 
    210
    
        Kassern    
     07.09.21 
            ✎
    14:06 
 | 
         
        (204) вот тут я не понял в чем проблема выгрузить ТЧ в ТЗ, обработать запросом и загрузить обратно? В типовых при обработке строк есть как для всей ТЧ, есть для конкретной строчки процедуры, просто передаешь структуру действий необходимую. Про УНФ это отдельная песня...     
         | 
|||
| 
    211
    
        Maniac    
     07.09.21 
            ✎
    15:05 
 | 
         
        (210) а если ТЗ размером 1 миллион строк?     
         | 
|||
| 
    212
    
        Maniac    
     07.09.21 
            ✎
    15:05 
 | 
         
        да фиг с ним пусть даже 100 000     
         | 
|||
| 
    213
    
        Kassern    
     07.09.21 
            ✎
    15:07 
 | 
         
        (212) а какие проблемы со 100 000? Без проблем пихается во временную таблицу и обрабатывается запросом.     
         | 
|||
| 
    214
    
        Maniac    
     07.09.21 
            ✎
    15:08 
 | 
         
        а зачем пихать?? вот скажи мне. туда сюда пихать выпиховывать.     
         | 
|||
| 
    215
    
        Maniac    
     07.09.21 
            ✎
    15:08 
 | 
         
        вот есть данные на клиенте. все. нафига их нужно пихать.     
         | 
|||
| 
    216
    
        Maniac    
     07.09.21 
            ✎
    15:08 
 | 
         
        вот на клиенте юзер и хочет с ними поработать, пофильтровать, чота там запросики понаделать.     
         | 
|||
| 
    217
    
        Kassern    
     07.09.21 
            ✎
    15:12 
 | 
         
        (216) когда у клиента миллион строк с артикулом, а ему вдруг понадобилось это дело сопоставить с данными базы, тоже через клиент хотите это реализовать?)     
         | 
|||
| 
    218
    
        lodger    
     07.09.21 
            ✎
    15:15 
 | 
         
        (215) на клиенте вьюха на 30-50 строк. какие миллион?     
         | 
|||
| 
    219
    
        Mort    
     07.09.21 
            ✎
    15:27 
 | 
         
        Всё-таки у 1С пробел в обучении УФ на этом месте. Очень много одинэсников считает, что форма на клиенте содержит все данные и все эти данные едут на сервер при контекстном вызове. И начинают их на клиенте мучить (и как раз наоборот в этом случае данные начинают ездить, только с сервера на клиент).     
         | 
|||
| 
    220
    
        MyNick    
     07.09.21 
            ✎
    15:32 
 | 
         
        (211) На клиенте 100 тыс строк? Это в консерватории надо править.
 
        (215) Динамические списки? Не, не слышал. На клиенте видимая порция. Хочешь поиск - дуй на сервер (ну что по сути и происходит в отборах ДС неявно)  | 
|||
| 
    221
    
        MyNick    
     07.09.21 
            ✎
    15:40 
 | 
         
        (219) им надо погрузиться в замечательный мир веба. Или еще каких тру клиент-серверных технологий.
 
        Где сервер и клиент разделен так, что подобных дурацких вопросов возникать не будет. Сервер отдает джейсончик с данными, клиент (неважно на чем) через API эти данные получает - загружает - отображает. И ТОЛЬКО работает с пользователем. Упаси боже на клиента миллион строк тащить, чтобы поиск там сделать. Сервер и клиент абсолютно независимы друг от друга. Как локомотив и вагон. Сцепка = API. Задача машиниста - управлять, задача пассажиров смотреть в окошко и пить чай. Пассажирам пох на машиниста, машинисту пох на пассажиров. Главное чтобы не творили откровенную дичь (не срывали стоп кран и не бросали лом в унитаз). И... вопросы ворочать миллионами строк отпадают. И так разбаловали одинэсников не слишком строгой архитектурой клиент-серверного кода...  | 
|||
| 
    222
    
        MyNick    
     07.09.21 
            ✎
    15:47 
 | 
         
        +(221) Вот если бы 1С сделала конфигурацию из двух частей - Серверная и Клиентская, все бы встало на места.
 
        На серверной только модули с обращением к БД, на клиентской только интерфейс и модули для его реализации. На стыке - только простые типы + массивы и структуры. То и не было бы подобных пробелов. И не возникало бы мысли у гениев формы туда сюда гонять.  | 
|||
| 
    223
    
        Ненавижу 1С    
     гуру 
    07.09.21 
            ✎
    16:00 
 | 
         
        (219) д, никто этого толком не говорит, включая саму 1С     
         | 
|||
| 
    224
    
        Ненавижу 1С    
     гуру 
    07.09.21 
            ✎
    16:01 
 | 
         
        +(223) хотя хз что ты хотел в (220) сказать     
         | 
|||
| 
    225
    
        Олеша Попович    
     07.09.21 
            ✎
    16:14 
 | 
         
        (223) вроде бы говорит https://its.1c.ru/db/v8std#content:628:hdoc     
         | 
|||
| 
    226
    
        lodger    
     07.09.21 
            ✎
    16:17 
 | 
         
        (225) чушь какая то! другое дело что пишут маня и геня - труъ эксперты.     
         | 
|||
| 
    227
    
        Олеша Попович    
     07.09.21 
            ✎
    16:23 
 | 
         
        (221) что значит разбаловали? изначально она такой и была, потому что сервер был stateful     
         | 
|||
| 
    228
    
        Гений 1С    
     гуру 
    07.09.21 
            ✎
    17:54 
 | 
         
        (221) у фузины формы живут только на сервере, а на клиенте просто отображаются (как РДП)     
         | 
|||
| 
    229
    
        Гений 1С    
     гуру 
    07.09.21 
            ✎
    17:55 
 | 
         
        (206) потому что Маня, УНФ писали не в 1С изначально. Это 1С потом ее купила     
         | 
|||
| 
    230
    
        Конструктор1С    
     07.09.21 
            ✎
    18:00 
 | 
         
        (198) а ты в модуле формы с сервером не работаешь?     
         | 
|||
| 
    231
    
        acht    
     07.09.21 
            ✎
    18:11 
 | 
         
        (209) Для Гени на партнерском форуме ничего нет, извини.     
         | 
|||
| 
    232
    
        Конструктор1С    
     07.09.21 
            ✎
    18:11 
 | 
         
        (201) и что ты делаешь с данными на клиенте? Ну покажешь пользователю... А дальше тебе за каждым чихом придётся нырять на сервер, ибо таблицы, запросы, метаданные да и вообще всё на сервере.
 
        Завтра возникнет ситуация, которая возникает в автоматизации чуть реже, чем постоянно: надобно исключить тело пользователя из процесса, делать всё автоматически. Тут-то ты со своим клиентом и встрянешь. "Внезапно" выяснится, что весь код нужно утаскивать на сервер, да ещё и от интерфейса отделять. Причем разлучить бизнес-логику с интерфейсом ой как непросто, ибо срослись они аки сиамские близнецы  | 
|||
| 
    233
    
        Новый1сник2    
     07.09.21 
            ✎
    18:13 
 | 
         
        (205) да УНФ отличается от типовых, но это не значит что УНФ какашка, многим заходит норм.
 
        только ее нужно доработать, в т.ч. бсп  | 
|||
| 
    234
    
        acht    
     07.09.21 
            ✎
    18:21 
 | 
         
        (232) Кстати да, будет очередная тема "гуру-тест как теперь открыть форму на сервере" =)     
         | 
|||
| 
    235
    
        Конструктор1С    
     07.09.21 
            ✎
    18:22 
 | 
         
        (202) что ты там собрался на сервер затаскивать? У тебя и так данные живут на сервере в БД     
         | 
|||
| 
    236
    
        acht    
     07.09.21 
            ✎
    18:24 
 | 
         
        (235) У Мани вся куча примеров сводится к файлу, который на клиенте. Данные из которого он "обрабатывает". Для его сжатия и загона на сервер Мане не хватает опыта.     
         | 
|||
| 
    237
    
        Конструктор1С    
     07.09.21 
            ✎
    18:25 
 | 
         
        (234) с разделением интерфейсов и бизнес-логики в 1с вообще беда. Этим не только Г1Сы грешат, но и разработчики типовых юзают во весь рост     
         | 
|||
| 
    238
    
        Олеша Попович    
     07.09.21 
            ✎
    18:58 
 | 
         
        (237) Им некогда делать как правильно, им пилить нада. Вон в УТ 11 для программного заполнения зависимых цен в документе "Установка цен номенклатуры" нужно в ОМ расчета цен одним из параметров форму передавать. А откуда у меня форма, если я документ программно создаю? Вы вот тут Геню ругаете, а у вендора такие же Гени работают.     
         | 
|||
| 
    239
    
        piter3    
     07.09.21 
            ✎
    19:01 
 | 
         
        (238) Странно,но ахксаптовцы и некторые саперы ноют так же.Правда,не всегда на форумах.Одни вебщики впереди планеты всей)     
         | 
|||
| 
    240
    
        Maniac    
     07.09.21 
            ✎
    23:22 
 | 
         
        (236) какой нафиг файл.? опять попридумал за меня и сам себе какую то хрень несешь)
 
        причем тут файл. Я тебе говорю про то что на клиенте монут быть какие то таблицы, с которомы работает юзер. что то делает, обрабатывает и так далее.  | 
|||
| 
    241
    
        Maniac    
     07.09.21 
            ✎
    23:24 
 | 
         
        Вот даже простой пример. Все знают что в ТЧ на форме есть отбор только по фиксированной структуре. по списку никаких отборов делать нельзя вообще.
 
        Чтобы по ТЧ еще какой то смочь отфильтровать надо изворачиваться на сервере. Или вот условный оформления. они не работают на клиенте. исключительно на сервере, нужно ннать все данные на сервер  | 
|||
| 
    242
    
        H A D G E H O G s    
     07.09.21 
            ✎
    23:37 
 | 
         
        Дайте людям удочку и они наловят рыб.
 
        Дайте людям сервер и они его завызывают. Дайте Осипову форум и он его засрет.  | 
|||
| 
    243
    
        Конструктор1С    
     08.09.21 
            ✎
    10:55 
 | 
         
        (242) когда бизнес-логика отделена от интерфейса, нет смысла завызовывать сервер, всё и так будет происходить на сервере     
         | 
|||
| 
    244
    
        Mort    
     08.09.21 
            ✎
    12:22 
 | 
         
        А моё имхо MVC это устаревший способ делать надеждные приложения с херовым интерфейсом. Вот у нас продуманная бизнес-логика, а вот соответствующий этой логике убогий интерфейс.     
         | 
|||
| 
    245
    
        Mort    
     08.09.21 
            ✎
    12:26 
 | 
         
        Ну и натягивать сову разделения между интерфейсом и логикой на глобус разделения клиент-сервер тоже нет никакой надобности.     
         | 
|||
| 
    246
    
        acanta    
     08.09.21 
            ✎
    12:27 
 | 
         
        А чем рдп то не устроил?     
         | 
|||
| 
    247
    
        Конструктор1С    
     08.09.21 
            ✎
    12:43 
 | 
         
        (244) вопрос не в красоте интерфейса, а в стоимости доработки и сопровождения. Обрати внимание на мобильные приложения, они написаны по MVVM или MVC, но интерфейс у многих из них намного лучше и понятнее, чем у типичных1сных приложений. MVC и иже с ними нисколько не вредят качеству интерфейса.
 
        Когда идёт архитектурное деление на условные слои, код становится более гибким, доработка и сопровождение более дешевыми. Если всё скидано в единую кучу-малу (типичная для 1с картина), то этот винигрет сложнее понимать, сложнее дорабатывать и так далее (соответственно цена владения растёт)  | 
|||
| 
    248
    
        Конструктор1С    
     08.09.21 
            ✎
    12:49 
 | 
         
        (245) отделение бизнес-логики от интерфейса это такой фундаментальный и давно известный принцип, что в тру-программировании аж родились отдельные профессии - фронтендеры и бэкендеры. Плохо что 1сники об этом не знают     
         | 
|||
| 
    249
    
        ДенисЧ    
     08.09.21 
            ✎
    12:51 
 | 
         
        О. Веб-программирование уже стало тру....     
         | 
|||
| 
    250
    
        ДенисЧ    
     08.09.21 
            ✎
    12:51 
 | 
         
        (244) МВЦ и плохие интерфейсы друг другом связаны чуть менее, чем никак.     
         | 
|||
| 
    251
    
        Конструктор1С    
     08.09.21 
            ✎
    12:54 
 | 
         
        (249) в вебе Г1С-стайл ударил больнее всего. К тому же деление на фронт и бэк не только в вебе, в энтерпрайзе также юзается всю дорогу     
         | 
|||
| 
    252
    
        Конструктор1С    
     08.09.21 
            ✎
    12:58 
 | 
         
        + в мобильной разработке MVVM, MVC, MVP, MVI тоже юзаются всю дорогу     
         | 
|||
| 
    253
    
        H A D G E H O G s    
     08.09.21 
            ✎
    13:12 
 | 
         
        (243) 
 
        &НаКлиенте Процедура ВидАктаПриИзменении(Элемент) Элементы.СтраницаТовары.Видимость=Объект.ВидАкта=ПредопределенноеЗначение("Перечисление.АСФВидыАктовКТТН.АктРасхождения"); Элементы.ДвижениеМарок.Видимость=Объект.ВидАкта=ПредопределенноеЗначение("Перечисление.АСФВидыАктовКТТН.АктРасхождения"); КонецПроцедуры Ты, конечно, тут сделаешь контекстный серверный, да?  | 
|||
| 
    254
    
        lodger    
     08.09.21 
            ✎
    13:19 
 | 
         
        &НаКлиенте
 
        Процедура ВидАктаПриИзменении(Элемент) Флаг = ВидАктаРавноАктРасхождения(Объект.ВидАкта); Элементы.СтраницаТовары.Видимость=Флаг; Элементы.ДвижениеМарок.Видимость=Флаг; другие параметры = Флаг; КонецПроцедуры &НаСервере Процедура НастроитьФормуПоДаннымОбъекта() Флаг = ВидАктаРавноАктРасхождения(Объект.ВидАкта); Элементы.СтраницаТовары.Видимость=Флаг; Элементы.ДвижениеМарок.Видимость=Флаг; другие параметры = Флаг; КонецПроцедуры &НаКлиентеНаСервереБезКонтекста Функция ВидАктаРавноАктРасхождения(ВидАкта) возврат ВидАкта=ПредопределенноеЗначение("Перечисление.АСФВидыАктовКТТН.АктРасхождения"); КонецФункции  | 
|||
| 
    255
    
        lodger    
     08.09.21 
            ✎
    13:20 
 | 
         
        +(254) хотя, лучше видимостью на клиенте не управлять. и вообще не управлять этим после создания и передачи формы на клиента.     
         | 
|||
| 
    256
    
        lodger    
     08.09.21 
            ✎
    13:21 
 | 
         
        +(255) вот доступностью вроде можно.     
         | 
|||
| 
    257
    
        H A D G E H O G s    
     08.09.21 
            ✎
    13:25 
 | 
         
        (255) (256) Ну смысл понятен, надеюсь?
 
        &НаКлиенте Процедура АСФВвестиАктРасхожденияТТН(Команда) Если ЭтаФорма.Модифицированность Тогда ЭтаФорма.Записать(Неопределено); КонецЕсли; АСФОбменСУТМКлиент.ВвестиАктКТТНЕГАИС(Объект.Ссылка,ПредопределенноеЗначение("Перечисление.АСФВидыАктовКТТН.АктРасхождения")); КонецПроцедуры  | 
|||
| 
    258
    
        Конструктор1С    
     08.09.21 
            ✎
    13:26 
 | 
         
        (253) ты не понял смысл отделения бизнес-логики от интерфейса. Настройка видимости, доступности, состава полей на форме и вот это всё - работа с интерфейсом     
         | 
|||
| 
    259
    
        H A D G E H O G s    
     08.09.21 
            ✎
    13:26 
 | 
         
        (258) Ну вот я настраиваю видимость, на клиенте, отдельно от бизнес-логики.     
         | 
|||
| 
    260
    
        H A D G E H O G s    
     08.09.21 
            ✎
    13:27 
 | 
         
        (258) Давай, отдели бизнес-логику от интерфейса.     
         | 
|||
| 
    261
    
        Конструктор1С    
     08.09.21 
            ✎
    13:27 
 | 
         
        (259) молодец, держи в курсе     
         | 
|||
| 
    262
    
        Конструктор1С    
     08.09.21 
            ✎
    13:28 
 | 
         
        (260) у тебя там нет бизнес-логики, у тебя просто настройка интерфейса     
         | 
|||
| 
    263
    
        H A D G E H O G s    
     08.09.21 
            ✎
    13:29 
 | 
         
        (262) Которую я настраиваю на клиенте. И не могу обойтись без значений перечисления. Что не так?     
         | 
|||
| 
    264
    
        Конструктор1С    
     08.09.21 
            ✎
    13:37 
 | 
         
        (263) давай так. В твоём документе можно делать всё программно?
 
        НовыйДокумент = Документы.ТвойДокумент.СоздатьДокумент(); НовыйДокумент.Заполнить(); НовыйДокумент.Вжух1(); НовыйДокумент.Вжух2(); НовыйДокумент.Вжух3(); НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение); если нельзя, если для части действий нужно занырнуть в форму и подёргать кнопки/поля/таблички, то у тебя интерфейс слипся с бизнес-логикой  | 
|||
| 
    265
    
        lodger    
     08.09.21 
            ✎
    13:40 
 | 
         
        возьмите дядю из поста (264) и отнести в отдел разработки ЗУП в головном офисе 1с.     
         | 
|||
| 
    266
    
        Ыцшесрук    
     08.09.21 
            ✎
    13:42 
 | 
         
        (265) Не только ЗУП. В УТ та же шняга с расчётами скидок.     
         | 
|||
| 
    267
    
        Конструктор1С    
     08.09.21 
            ✎
    13:44 
 | 
         
        (265) чур меня...     
         | 
|||
| 
    268
    
        H A D G E H O G s    
     08.09.21 
            ✎
    14:08 
 | 
         
        (264) Я просто напомню, что все начало с поста (192), в которой необходимость ссылок на клиенте обозвали уродливой надобностью.
 
        Я прекрасно знаю, когда интерфейс сливается с бизнес-логикой.  | 
|||
| 
    269
    
        Конструктор1С    
     08.09.21 
            ✎
    14:14 
 | 
         
        (268) ладно, каюсь, не внимательно прочитал. Но и ссылки на клиенте могут служить для разных целей. Если для настройки интерфейса, или чтобы показать пользователю, то это нормально. Но если условный Г1С делает на клиенте расчет себестоимости, которую потом складывает в ТЧ документа, то за такое нужно бить по рукам     
         | 
|||
| 
    270
    
        Гений 1С    
     гуру 
    08.09.21 
            ✎
    14:47 
 | 
         
        (269) я так не делаю, если че.     
         | 
|||
| 
    271
    
        lodger    
     08.09.21 
            ✎
    14:48 
 | 
         
        (270) а в (0) ты что делать собрался?     
         | 
|||
| 
    272
    
        Гений 1С    
     гуру 
    08.09.21 
            ✎
    14:54 
 | 
         
        (241) есть хитрый хак - пробегаешь по ТЧ, проставляешь галку отбора и отбираешь по этой галке. лично так делал     
         | 
|||
| 
    273
    
        MyNick    
     08.09.21 
            ✎
    15:53 
 | 
         
        (272) Какую еще галку? ОтборСтрок работает по фиксированной структуре.     
         | 
|||
| 
    274
    
        Гений 1С    
     гуру 
    08.09.21 
            ✎
    16:10 
 | 
         
        (273) ну например тебе нужно отобрать контрагентов иванов, петров, сидоров.
 
        Ты добавляешь в ТЧ невидимую колонку ЭтоМойКонтрагент, пробегаешься по тч и там где контрагент иванов, петров, сидоров, ставишь ЭтоМойКонтрагент = истина, иначе ложь. Все, можно отбирать по ЭтоМойКонтрагент = истина. йо?  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |