|
УФ. Как записать хранилище значений в строку табличной части? | ☑ | ||
---|---|---|---|---|
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) обращайтесь если что, а то в УФ много неизведанного
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |