|   |   | 
| 
 | УФ. Как записать хранилище значений в строку табличной части? | ☑ | ||
|---|---|---|---|---|
| 0
    
        megabax 27.03.15✎ 14:04 | 
        Добрый день.
 Делаю так: &НаКлиенте Процедура ДокументацияНаименованиеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) ТекущаяСтрока = Элементы.Документация.ТекущиеДанные; ДиалогФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогФайла.Фильтр = ПолучитьФильтрДиалога(ТекущаяСтрока.ТипДокумента); Если ДиалогФайла.Выбрать() Тогда ПолноеИмяФайлаОбработки = ДиалогФайла.ПолноеИмяФайла; Иначе ПолноеИмяФайлаОбработки = ""; КонецЕсли; Файл = Новый Файл(ДиалогФайла.ПолноеИмяФайла); КомментарийКФайлуИсточнику = Файл.ПолноеИмя+";" + Символы.ПС + "размер:" + Файл.Размер()+"; изменен:" + Файл.ПолучитьВремяИзменения() + "; сохранен в ИБ:" + ТекущаяДата(); ТекущаяСтрока.Комментарий=КомментарийКФайлуИсточнику; ТекущаяСтрока.Документ = ПолучитьХранилище(Файл.ПолноеИмя); Сообщ=СоздатьПриложение(ТекущаяСтрока.ТипДокумента,Файл.ПолноеИмя,ТекущаяСтрока.Наименование, ТекущаяСтрока.Документ); если Сообщ="" тогда Предупреждение(сообщ); конецесли; КонецПроцедуры говорит что не такого поля Документ. Пытаюсь перетащить его на форму, а не получаетсЯ, говорит, что хранилище значенйи не доступно в данных формы. И как теперь быть? | |||
| 1
    
        megabax 27.03.15✎ 14:27 | 
        up     | |||
| 2
    
        Dmitriy_76 27.03.15✎ 14:30 | 
        в котором месте говорит про ошибку ?     | |||
| 3
    
        Dmitriy_76 27.03.15✎ 14:30 | 
        ТекущаяСтрока.Документ = ПолучитьХранилище(Файл.ПолноеИмя); тут ?     | |||
| 4
    
        DrShad 27.03.15✎ 14:31 | 
        ХЗ действительно недоступно на форме     | |||
| 5
    
        megabax 27.03.15✎ 14:33 | 
        (3) Да, здесь     | |||
| 6
    
        NcSteel 27.03.15✎ 14:34 | 
        (4) Доступно     | |||
| 7
    
        megabax 27.03.15✎ 14:35 | 
        Ну вообще звездец с этими уФ
 Сделал вот так: &НаСервере процедура УстанвоитьХранилище(НомерСтроки, Хранилище) Объект.Документация[НомерСтроки-1].Документ=Хранилище; конецпроцедуры &НаКлиенте Процедура ДокументацияНаименованиеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) ТекущаяСтрока = Элементы.Документация.ТекущиеДанные; ДиалогФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогФайла.Фильтр = ПолучитьФильтрДиалога(ТекущаяСтрока.ТипДокумента); Если ДиалогФайла.Выбрать() Тогда ПолноеИмяФайлаОбработки = ДиалогФайла.ПолноеИмяФайла; Иначе ПолноеИмяФайлаОбработки = ""; КонецЕсли; Файл = Новый Файл(ДиалогФайла.ПолноеИмяФайла); КомментарийКФайлуИсточнику = Файл.ПолноеИмя+";" + Символы.ПС + "размер:" + Файл.Размер()+"; изменен:" + Файл.ПолучитьВремяИзменения() + "; сохранен в ИБ:" + ТекущаяДата(); ТекущаяСтрока.Комментарий=КомментарийКФайлуИсточнику; //сообщить(ТекущаяСтрока.НомерСтроки); лДокумент = ПолучитьХранилище(Файл.ПолноеИмя); // Сообщ=СоздатьПриложение(ТекущаяСтрока.ТипДокумента,Файл.ПолноеИмя,ТекущаяСтрока.Наименование, лДокумент); если Сообщ="" тогда Предупреждение(сообщ); конецесли; УстанвоитьХранилище(ТекущаяСтрока.НомерСтроки,лДокумент); КонецПроцедуры Все равно пише, что поле агрегатного объекта не обнаружено Документ | |||
| 8
    
        Dmitriy_76 27.03.15✎ 14:35 | 
        (5) отладчик что показывает слева и справа равенства ?     | |||
| 9
    
        DrShad 27.03.15✎ 14:35 | 
        (6) да ладно!? вот только сейчас мучал форму записи РС - нужно было на ней разместить две ТЗ и их хранить в записи, но в итоге так и не вышло через ХЗ сделать     | |||
| 10
    
        megabax 27.03.15✎ 14:36 | 
        (8) Оталдчик показывает, что неут такого поля Документ  у ТекущаяСтрока, все есть, а этого нету     | |||
| 11
    
        PR 27.03.15✎ 14:36 | 
        (7) Блеать, будь мужиком, возьми БСП и посмотри     | |||
| 12
    
        NcSteel 27.03.15✎ 14:36 | 
        (7) Звиздец не с УФ, а с твоим овнокодом, посмотри уже в типовые как делается нормально.     | |||
| 13
    
        DrShad 27.03.15✎ 14:36 | 
        (8) естественно что не показывает левое - там ошибка ибо у строки нет такого реквизита     | |||
| 14
    
        NcSteel 27.03.15✎ 14:37 | 
        (9) А при кинь, процедуры можно на сервере выполнять. И на форме можно серверные процедуры писать.     | |||
| 15
    
        megabax 27.03.15✎ 14:38 | 
        (13) ДЫк если бы можно было добавить в на форму, я бы добавил. Но 1С, собака такая, на дает!!!     | |||
| 16
    
        megabax 27.03.15✎ 14:38 | 
        (12) Звездце с УФ, напридумывали в 1С вякого ненужного хлама типа разделения на клеинт и на сревер, а нам мучайся....     | |||
| 17
    
        megabax 27.03.15✎ 14:39 | 
        (11) Что такое БСП?     | |||
| 18
    
        DrShad 27.03.15✎ 14:39 | 
        (16) а нефига пихать на форму все что не попадя     | |||
| 19
    
        DrShad 27.03.15✎ 14:40 | 
        (14) а прикинь я в курсе, вот только попробуй сам     | |||
| 20
    
        PR 27.03.15✎ 14:40 | 
        (15) Ты сейчас напоминаешь человека, который не знает компьютер, но очень хочет поиграть на нем в сапера.
 И компьютер у него собака такая. | |||
| 21
    
        PR 27.03.15✎ 14:40 | 
        (16) Правильно напридумывали, не все же ларьки обслуживают.     | |||
| 22
    
        PR 27.03.15✎ 14:41 | 
        (17) Рукалицо
 Библиотека стандартных подсистем. | |||
| 23
    
        megabax 27.03.15✎ 14:41 | 
        (18) А как тогда мне записать в нее значение, если не пихать на форму????     | |||
| 24
    
        megabax 27.03.15✎ 14:41 | 
        (22) И где находиться эта библиотека?     | |||
| 25
    
        megabax 27.03.15✎ 14:42 | 
        (22) Еще бы 1С нормальную документацию давала по своим коняигурациям.     | |||
| 26
    
        DrShad 27.03.15✎ 14:42 | 
        (23) а ты уверен что оно там нужно? может его в другое место вынести?     | |||
| 27
    
        DrShad 27.03.15✎ 14:43 | 
        (25) ты бы глянул для начала - там документация на уровне     | |||
| 28
    
        PR 27.03.15✎ 14:43 | 
        (23) А как ты собираешься хранилище значения редактировать в поле ввода?     | |||
| 29
    
        Fish гуру 27.03.15✎ 14:43 | 
        (25) А чем существующая не устраивает? Вроде никто не жалуется.     | |||
| 30
    
        PR 27.03.15✎ 14:44 | 
        (24) Ну не знаю, у меня тут лежит D:\Distr\1C\Конфигурации\БСП     | |||
| 31
    
        fisher 27.03.15✎ 14:44 | 
        (0) Нескромный вопрос - а что планируется хранить в хранилище значений в строке табличной части?     | |||
| 32
    
        PR 27.03.15✎ 14:44 | 
        (25) А что тебе не нравится в документации 1С по своим коням и гурациям?     | |||
| 33
    
        DrShad 27.03.15✎ 14:44 | 
        (31) судя по коду - скан документа     | |||
| 34
    
        alex_shkut 27.03.15✎ 14:45 | 
        "Какой-то" Документ :) даже формат этого документа неизвестен нам     | |||
| 35
    
        megabax 27.03.15✎ 14:45 | 
        (31) Документы WORD и Excel. В старйо весрии программы, которая была на 8.1 хранилось там. Сейчас перевожу на 8.3 на УФ     | |||
| 36
    
        NcSteel 27.03.15✎ 14:45 | 
        (19) Я пробовал и оно работает, даже автор попробовал и у него сработало )     | |||
| 37
    
        DrShad 27.03.15✎ 14:46 | 
        (36) и почему же тогда автор здесь?     | |||
| 38
    
        megabax 27.03.15✎ 14:47 | 
        (30) А откуда изначально взять этот БСП? ОН на итисниках или где то в составе конфигурации?     | |||
| 39
    
        NcSteel 27.03.15✎ 14:47 | 
        (35) Такие вещи надо не в базе хранить, а на файловом ресурсе.     | |||
| 40
    
        NcSteel 27.03.15✎ 14:48 | 
        (37) Автор негодяй, не умеет читать документацию     | |||
| 41
    
        NcSteel 27.03.15✎ 14:48 | 
        (38) И на ИТС и в составе типовых конфигурациях     | |||
| 42
    
        PR 27.03.15✎ 14:49 | 
        Ветка пока претендент на пятничную     | |||
| 43
    
        alex_shkut 27.03.15✎ 14:49 | ||||
| 44
    
        NcSteel 27.03.15✎ 14:50 | 
        (43) Скажи логин и пароль     | |||
| 45
    
        alex_shkut 27.03.15✎ 14:50 | 
        Щазззз.... :)     | |||
| 46
    
        alex_shkut 27.03.15✎ 14:53 | 
        и бан на 1000 лет?     | |||
| 47
    
        megabax 27.03.15✎ 14:54 | 
        (41) А в составе типовых конфигураций где хранить?     | |||
| 48
    
        PR 27.03.15✎ 14:54 | 
        (47) В хранилище значения можно попробовать.     | |||
| 49
    
        megabax 27.03.15✎ 14:56 | 
        (47) Пардон, я хотел спросить: где в типовых конфигурациях БСП находиться?     | |||
| 50
    
        megabax 27.03.15✎ 14:56 | 
        (48) В хранилище значенйи я и так пытаюсь сохранить, но я !С-ка, собка такая, не дает.     | |||
| 51
    
        alex_shkut 27.03.15✎ 14:58 | 
        Судя по описанию - сохранить дает, только видимо надо не Записывать прямо в Документ =, а типа ПоместитьВХранилище(.Документ)     | |||
| 52
    
        fisher 27.03.15✎ 15:00 | 
        (35) Тогда в строках ТЧ их хранить принципиально неправильно. Даже в толстом клиенте, т.к. они будут тащиться при КАЖДОМ обращении к объекту. Про тонкий клиент я вообще молчу.     | |||
| 53
    
        alex_shkut 27.03.15✎ 15:01 | 
        (52) Так точно! А в Веб интерфейс ;)? Особенно на каком-нибудь CDMA     | |||
| 54
    
        megabax 27.03.15✎ 15:01 | 
        (51) ДЫк я так и делаю:
 УстанвоитьХранилище(ТекущаяСтрока.НомерСтроки,лДокумент); Но в процедуре &НаСервере процедура УстанвоитьХранилище(НомерСтроки, Хранилище) Объект.Документация[НомерСтроки-1].Документ=Хранилище; конецпроцедуры вылазит та же ошибка | |||
| 55
    
        alex_shkut 27.03.15✎ 15:04 | 
        Из синтаксис-помощника:
 Пример: МояКартинка = Новый Картинка("C:\Мои документы\Картинка1.bmp"); ХранилищеКартинки = Новый ХранилищеЗначения(МояКартинка); НовНоменклатура = Справочники.Номенклатура.СоздатьЭлемент(); НовНоменклатура.Наименование = "Диван ""Маргарита"""; НовНоменклатура.Изображение = ХранилищеКартинки; НовНоменклатура.Записать(); | |||
| 56
    
        alex_shkut 27.03.15✎ 15:04 | 
        Правда тут не табличная часть, но думаю, неважно если позволяет задать тип     | |||
| 57
    
        alex_shkut 27.03.15✎ 15:05 | 
        У Вас с типизацией проблемы     | |||
| 58
    
        fisher 27.03.15✎ 15:09 | 
        (56) Управляемая форма не поддерживает реквизиты типа хранилище значений. Причем по настолько очевидным причинам, что объяснять - руки опускаются.     | |||
| 59
    
        megabax 27.03.15✎ 15:18 | 
        Попробовал сделать так:
 &НаКлиенте Процедура ДокументацияНаименованиеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) ТекущаяСтрока = Элементы.Документация.ТекущиеДанные; ДиалогФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогФайла.Фильтр = ПолучитьФильтрДиалога(ТекущаяСтрока.ТипДокумента); Если ДиалогФайла.Выбрать() Тогда ПолноеИмяФайлаОбработки = ДиалогФайла.ПолноеИмяФайла; Иначе ПолноеИмяФайлаОбработки = ""; КонецЕсли; Файл = Новый Файл(ДиалогФайла.ПолноеИмяФайла); КомментарийКФайлуИсточнику = Файл.ПолноеИмя+";" + Символы.ПС + "размер:" + Файл.Размер()+"; изменен:" + Файл.ПолучитьВремяИзменения() + "; сохранен в ИБ:" + ТекущаяДата(); ТекущаяСтрока.Комментарий=КомментарийКФайлуИсточнику; //сообщить(ТекущаяСтрока.НомерСтроки); лДокумент = ПолучитьХранилище(Файл.ПолноеИмя); // Сообщ=СоздатьПриложение(ТекущаяСтрока.ТипДокумента,Файл.ПолноеИмя,ТекущаяСтрока.Наименование, лДокумент); если Сообщ<>"" тогда Предупреждение(сообщ); возврат; конецесли; Если НЕ ЗначениеЗаполнено(ТекущаяСтрока.Хранилище) тогда лОб=ПолучитьОбъектХранилища(); лОб.Документ=лДокумент; лОб.Записать(); ТекущаяСтрока.Хранилище=лОб.Ссылка; иначе лОб=ТекущаяСтрока.Хранилище.ПолучитьОбъект(); лОб.Документ=лДокумент; лОб.Записать(); конецесли; //УстанвоитьХранилище(ТекущаяСтрока.НомерСтроки,лДокумент); КонецПроцедуры функция ПолучитьОбъектХранилища() возврат Справочники.шапХранилищеДокументов.СоздатьЭлемент(); конецфункции Теперь говорит: {Справочник.битТесты.Форма.ФормаЭлементаУпр.Форма(257)}: Ошибка при вызове метода контекста (ПолучитьОбъектХранилища) лОб=ПолучитьОбъектХранилища(); по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: НачалоСвойства: ret Форма: Элемент Тип: {http://www.w3.org/2001/XMLSchema}anyType по причине: Ошибка преобразования данных XDTO: НачалоСвойства: {http://v8.1c.ru/8.1/data/enterprise/current-config}Ref Форма: Элемент Тип: {http://www.w3.org/2001/XMLSchema}anyType И что теперь делать? Как затсавить эти проклятые УФ работать правильно??? | |||
| 60
    
        DrShad 27.03.15✎ 15:20 | 
        (59) [И что теперь делать? Как затсавить эти проклятые УФ работать правильно???]
 писать на них правильно | |||
| 61
    
        fisher 27.03.15✎ 15:26 | 
        (59) Хранишь свои файлы реквизите справочника файлов, например. В табличной части ссылка на справочник файлов.
 Надо в какой-то момент времени открыть на клиенте файл - ложишь его со стороны сервера ПоместитьВоВременноеХранилище. На клиенте оттуда забираешь и открываешь. Ну и наоборот по такой же схеме. | |||
| 62
    
        DrShad 27.03.15✎ 15:28 | 
        (61) дык в (59) он объект справочника передает на клиент     | |||
| 63
    
        megabax 27.03.15✎ 15:29 | 
        (61) Сделал вот так:
 Если НЕ ЗначениеЗаполнено(ТекущаяСтрока.Хранилище) тогда лСсылка=ПолучитьОбъектХранилища(лДокумент); ТекущаяСтрока.Хранилище=лСсылка; иначе лОб=ТекущаяСтрока.Хранилище.ПолучитьОбъект(); лОб.Документ=лДокумент; лОб.Записать(); конецесли; //УстанвоитьХранилище(ТекущаяСтрока.НомерСтроки,лДокумент); КонецПроцедуры функция ПолучитьОбъектХранилища(лДокумент) лОб=Справочники.шапХранилищеДокументов.СоздатьЭлемент(); лОб.Документ=лДокумент; лОб.Записать(); возврат лОб.Ссылка; конецфункции Наонец то без ошибок. Очень хочетьс яобматерить изобреталалей УФ | |||
| 64
    
        fisher 27.03.15✎ 15:35 | 
        &НаКлиенте
 ПолучитьОбъект()? Да ладно! (63) Ты не поверишь, но УФ - обалденная штука по задумке. И абсолютно логично реализованная. Другое дело, что если абсолютно не нужны плюшки тонкого клиента даже в перспективе - то да - усложнение разработки оправдывается не полностью. | |||
| 65
    
        megabax 27.03.15✎ 15:54 | 
        (64) Да, действительно, неправильно. Эту ветку тоже придется переписывать.     | |||
| 66
    
        DrShad 27.03.15✎ 16:51 | 
        (65) обращайтесь если что, а то в УФ много неизведанного     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |