|   |   | 
| 
 | УФ. Создание объектов без записи с передачей на клиент... Опять: 20пять) | ☑ | ||
|---|---|---|---|---|
| 0
    
        bolobol 20.02.17✎ 18:30 | 
        Добрый день!
 Подскажите, пожалуйста, очень не хватает функционала обычных форм с возможностью в ТЗ загонять созданные, но не записанные в базу, объекты, с последующим просмотром пользователем, и уже по его (пользовательскому) решению - либо записать, либо забыть. Но вот как такой механизм сделать на УФ - ума не приложу. Т.к. колонке ТЗ назначить тип, типа: СправочникОбъект.Номенклатура - никак, только ссылки. При назначении любого типа (Произвольный) - ругается при передаче объектов на клиент. Но на сервере объекты оставить негде, а на клиент не передать. Может, можно как-то "заархивировать" и отдавать на клиент архив, а по мановению пользователя - создавать нужный объект и архив заливать в него...? Только вот как это правильно сделать? Типа как ЗаписатьXML(ЗаписьXML, Объект); - только без записи, просто получить двоичное или mxl представление из которого потом развернуть объект, типа Данные = ПрочитатьXML(ЧтениеXML), так ещё бы и форму полученного на клиенте открыть или открыть форму и заполнить её данными из ПрочитатьXML(ЧтениеXML). ? | |||
| 1
    
        LienXo 20.02.17✎ 18:35 | 
        Стесняюсь спросить - а на обычных вы как делали?     | |||
| 2
    
        b_ru 20.02.17✎ 18:54 | 
        Дело в том, что УФ это не только набор каких-то там методов и свойств, это еще и парадигма. И в самой парадигме стейтлесс сервера такое не предусмотрено. Так что не нужно насиловать 1Ску, а придется придумать другой механизм. Например, показать пользователю все данные в табличной форме, а по его решению уже создавать и записывать объекты.     | |||
| 3
    
        bolobol 20.02.17✎ 19:13 | 
        (2) Да это и требуется, только на УФ. как раз там, где нельзя СправочникОбъект подержать до решения пользователя незаписанным.
 (1) А в ОФ - можно не только Ссылку, но и Объект хранить в реквизитах | |||
| 4
    
        mikeA 20.02.17✎ 19:30 | 
        (3) Через жо..., т.е. через XML попробуй. Ну или если не заморачиваться, ЗначениеВСтроку/ИзСтрокиВнутр.     | |||
| 5
    
        bolobol 20.02.17✎ 19:43 | 
        (4) ЗначениеВСтроку даёт что-то типа: "{"#", 001222015252-02052-55-52212-0-0-5-55555}" - что совсем никак не напоминает содержание элемента справочника Номенклатура.
 А вот через xml - это куда?, чтоб без записи в файл на диске? | |||
| 6
    
        mikeA 20.02.17✎ 20:24 | 
        (5) Это как раз и есть представление объекта справочника. ЗначениеИзСтроки сделает из него объект.
 Можно то же самое деалть через XML. Чтобы без записи на диск нужно установить строку у записи XML. | |||
| 7
    
        bolobol 20.02.17✎ 20:30 | 
        (6) Да, про ХМЛ это точно:
 ЗаписьXML = Новый ЗаписьXML(); ЗаписьXML.УстановитьСтроку(); ЗаписатьXML(ЗаписьXML, Объект); ДанныеОбъекта= ЗаписьXML.Закрыть(); А вот ЗначениеВСтрокуВнутр ничего путного не создаёт, может, для незаписанного в базу объекта не работает - не знаю, но из 36 цифр восстановить 50 реквизитов - точно не получится, к гадалке не ходи) | |||
| 8
    
        eks1985 20.02.17✎ 20:33 | 
        Ниче не понял. Храни в реквизитах формы данные необходимые для записи объекта, показывай их пользователю, по решению пользователя в итоге пиши объекты или не пиши. Какая нужда держать в таблице именно созданные, но не записанные объекты?     | |||
| 9
    
        eks1985 20.02.17✎ 20:35 | 
        >> Да это и требуется, только на УФ. как раз там, где нельзя СправочникОбъект подержать до решения пользователя незаписанным. 
 Так и не создавай ты этот объект. Подготовь все данные, храни их форме. Считай что это и есть твой созданный, но не записанный объект. | |||
| 10
    
        bolobol 20.02.17✎ 20:55 | 
        (8) Это заметно. Хранить в реквизитах обработки описание всей конфы?? Вы как себе это представляете, в двух словах?
 (9) Так если я объект не создам, то где я подготовленные данные хранить буду? Чтобы считать, что они и есть мой созданный объект, мне нужно эти данные сохранить от момента получения данных до решения пользователя - так в этом и суть задачи "как сохранить". Классный ответ предлагаете: "храни их в форме")) | |||
| 11
    
        jsmith82 20.02.17✎ 21:03 | 
        Создаешь на сервере ТЗ с колонкой СправочникОбъект / ДокументОбъект. Помещаешь во врем. хранилище (ВХ). Адрес сохраняешь
 Параллельно создаешь из этого ТЗ иное ТЗ для пользовательского представления - выгружаешь его в массив через ОбщегоНазначения.ТаблицаЗначенийВМассив Передаешь массив на клиент. Там ставятся флажки. Снова на сервер. Ловишь свою ТЗ из ВХ. Перебираешь массив структур по условию флажка, сопоставляешь по индексу с ТЗ, создаешь | |||
| 12
    
        bolobol 20.02.17✎ 21:18 | 
        (11) вот-вот, про временное хранилище тоже что-то краем уха слышал, что, якобы, позволяет сохранять данные между сеансами работы на сервере. Пример есть?     | |||
| 13
    
        eks1985 20.02.17✎ 21:25 | 
        (10) >> Это заметно. Хранить в реквизитах обработки описание всей конфы?? Вы как себе это представляете, в двух словах? 
 Заметно что у тебя каша в голове. Читать документацию. Наводка: реквизит формы Таблица. | |||
| 14
    
        jsmith82 20.02.17✎ 21:26 | 
        (12) гугли поместить во временное хранилище /
 получить из временного хранилища я тебе метод дал и ещё - время существования ВХ зависит от уникального идентификатора - тоже помни | |||
| 15
    
        Сергиус 20.02.17✎ 21:33 | 
        (0)Что мешает хранить данные, не в объекте, а в структуре, имитирующей сам объект(т.е. теже поля, таблицы)?     | |||
| 16
    
        bolobol 20.02.17✎ 21:35 | 
        (14) точняк! Это оно! Спасибо! А вот про время существования от уид-а - этого я не припомню. Что за зависимость? Что-то пишут, что уид формы еадо давать, чтоб не уничтожилось раньше формы, булем пробовать.
 (13) учитесь писать по делу, про интерфейсные детали тут никто не интересовался, но - спасибо за на водку) (15) сложно архиерически повторять то, что уже сделано до нас и работает из коробки | |||
| 17
    
        AlvlSpb naïve 20.02.17✎ 21:37 | 
        (0) А вот это http://catalog.mista.ru/public/118784/ не решение вашей проблемы?     | |||
| 18
    
        mikeA 20.02.17✎ 21:37 | 
        (15) Лень структуру описывать.
 (16) Ещё там будет шаманство с получением формы несуществующего объекта на клиенте и заполнением её на сервере. | |||
| 19
    
        bolobol 20.02.17✎ 21:45 | 
        Таки приблизились ко второй части: правильно (идеологически) открыть в привычной пользователю форме новый созданный когда-то на... А вот и ответ приехал в (17)
 Всем спасибо! Завтра запущу в продакшен)) | |||
| 20
    
        Torquader 21.02.17✎ 00:51 | 
        Самое простое - объекты сначала создать, а потом - удалить, если не нужны.
 Просто, например, справочник "Номенклатура" с единицами измерения в не записанном виде нормально существовать и отображаться не может. | |||
| 21
    
        France 21.02.17✎ 01:35 | 
        самое простое решение - в ХМЛ, потом в хранилище.. потом показать.     | |||
| 22
    
        Antony8x 21.02.17✎ 04:04 | 
        (0) А если данные формы в ТЗ добавлять. При выборе пользователем создавать объект и в его форму копировать данные из ТЗ?     | |||
| 23
    
        Web00001 21.02.17✎ 04:20 | 
        (0)Я немного не понял, вы решаете вот эту проблему http://catalog.mista.ru/public/118784/ ?     | |||
| 24
    
        Web00001 21.02.17✎ 04:21 | 
        +(23)кхм уже было в (17)     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |