|
1C8.3: реквизит - тип "Хранилище значений" не нахожу! | ☑ | ||
---|---|---|---|---|
0
dft2014
20.05.16
✎
11:36
|
Работаю с форматированным документом на форме обработке. Для сохранения изменений в нем, прочитала, что надо использовать реквизит с типом "Хранилище значений". Но я такого типа - не нахожу!!!
|
|||
1
Asmody
20.05.16
✎
11:42
|
У вас точно 1С?
|
|||
2
singlych
20.05.16
✎
11:42
|
Используй произвольный тип!!!
|
|||
3
dft2014
20.05.16
✎
11:42
|
Вот картинка, ищу по поиску, нет такого типа "Хранилище значений":
http://s020.radikal.ru/i722/1605/f9/760ad08ecfc2.jpg |
|||
4
sanja26
20.05.16
✎
11:43
|
||||
5
Lexey_
20.05.16
✎
11:43
|
(0) обработки не хранят данные в базе
|
|||
6
Asmody
20.05.16
✎
11:44
|
(5) Ты еще скажи, что в обработке нельзя создать реквизит с типом "ХранилищеЗначния".
|
|||
7
Defender aka LINN
20.05.16
✎
11:45
|
(3) Типа "строка" ты там тоже не найдешь, прикинь?
|
|||
8
Lexey_
20.05.16
✎
11:48
|
(6) да да
|
|||
9
dft2014
20.05.16
✎
11:50
|
(4) а у меня вот так: http://s017.radikal.ru/i422/1605/d6/7c585077d168.jpg
нет Хранилища значений!!! |
|||
10
Любопытная
20.05.16
✎
11:56
|
(9) А что непонятно в (5)? :)
|
|||
11
sanja26
20.05.16
✎
11:58
|
(9) а зачем вообще надо? в базе сохранить?
https://yadi.sk/i/kdG5IiUGrrZYZ |
|||
12
dft2014
20.05.16
✎
12:03
|
(11) Делаю согласно этому материалу: http://catalog.mista.ru/public/74958/
Споткнулась на том, что не нахожу типа ХранилищеЗначений!!! |
|||
13
Любопытная
20.05.16
✎
12:05
|
(12) В примере по ссылке справочник, а у вас обработка. Разница есть?
|
|||
14
_Дайвер_
20.05.16
✎
12:07
|
(13) + + +
|
|||
15
Тролль главный
20.05.16
✎
12:09
|
(12) выбирай "Произвольный"
|
|||
16
dft2014
20.05.16
✎
12:11
|
(12) Вот аналогичная статья, там написано, что это используется, для документа, справочника, обработки:
http://howknow1c.ru/programmirovanie-1c/stroka-1s.html |
|||
17
dft2014
20.05.16
✎
12:13
|
(15) Если выбираю Произвольный, то как потом с этим реквизитом использовать команды:
&НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) ТекстДоговора = ТекущийОбъект.Текст.Получить(); КонецПроцедуры &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) ТекущийОбъект.Текст = Новый ХранилищеЗначения(ТекстДоговора); КонецПроцедуры |
|||
18
Тролль главный
20.05.16
✎
12:15
|
ПередЗаписьюНаСервере в обработке? уверен?
|
|||
19
SergTheGreat
20.05.16
✎
12:26
|
(0) Я правильно понял задачу: в базе есть нечто, записанное в виде "ХранилищеЗначения", нужно создать обработку, которая может редактировать это нечто и сохранять изменения в базе?
|
|||
20
dft2014
20.05.16
✎
12:59
|
(19) Есть обработка, на форме которой надо вводить текст. После переоткрытия обработки, если были изменения в тексте, то они должны сохраняться. Для этих целей, использую реквизит с типом "ФорматированныйДокумент". Чтобы изменения в этом реквизите сохранялись, надо использовать реквизит с типом "ХранилищеЗначений", который я обнаружить не могу. Поэтому написала на форум, с просьбой помочь...
|
|||
21
dft2014
20.05.16
✎
13:17
|
Ап!
|
|||
22
SergTheGreat
20.05.16
✎
13:24
|
(20) Как уже написал Lexey_, обработки ничего в базе не хранят.
Определись где именно в базе будет храниться этот текст. Создай на форме реквизит типа ФорматированныйДокумент. При создании/открытии формы считывай в этот реквизит содержимое ХранилищяЗначения из базы. При закрытии формы (или командой) записывай реквизит формы в ХранилищеЗначения базы. Как считать и записать ты сама указала в (17). |
|||
23
Pro-tone
20.05.16
✎
13:47
|
(0) посмотри доступность типа ХЗ, он доступен только из модуля документа
|
|||
24
Pro-tone
20.05.16
✎
13:50
|
(23) + в твоем случае - только в модуле обработки
|
|||
25
singlych
20.05.16
✎
13:52
|
(23) Ну конечно, наговорите щас.
|
|||
26
Pro-tone
20.05.16
✎
13:52
|
(0) даю на(О_о)водку как получить в модуле формы значение типа ХЗ
&НаКлиенте Процедура СохранитьПравилаПриемника(Команда) ИмяФайла = ВыбратьСохранитьФайл(); ДанныеПравил = ПолучитьДвоичныеДанныеФайлаПравил("а_ФайлПравилПриемника"); ДанныеПравил.Записать(ИмяФайла); КонецПроцедуры &НаСервере Функция ПолучитьДвоичныеДанныеФайлаПравил(ИмяРеквизитаХранилищаФайла) Экспорт ТекОбъект=РеквизитФормыВЗначение("Объект"); ДанныеПравил = ТекОбъект[ИмяРеквизитаХранилищаФайла].Получить(); ЗначениеВРеквизитФормы(ТекОбъект,"Объект"); Возврат ДанныеПравил; КонецФункции |
|||
27
Pro-tone
20.05.16
✎
13:55
|
(25)
![]() |
|||
28
singlych
20.05.16
✎
13:59
|
(27) Ну сделай форму и напиши где-нить в ПриСозданииНаСервере
МоеХЗ = Новый ХранилищеЗначений; То, что он недоступен в данных формы, означает лишь, что если, скажем, у тебя есть реквизит формы, скажем, типа ДанныеФормыСтруктура, в котором, скажем, лежит объект обработки, у которой, скажем, есть реквизит типа ХЗ, то ты не сможешь сделать так: МоеХЗ = Объект.ХЗ |
|||
29
Pro-tone
20.05.16
✎
14:06
|
(28) ну так я о том же, ТС в (0) не находит типа ХЗ в данных формы
|
|||
30
singlych
20.05.16
✎
14:11
|
(28) упс, а про конструктор-то я прогнал, он в тонком клиенте не работает. но из реквизита объекта можно достать.
(29) ну ок, я так, буквоедствую |
|||
31
dft2014
20.05.16
✎
14:16
|
Из всего, что здесь написали, я поняла, что на форме обработки (даже встроенной в конфигурацию, а у меня она именно встроенная), нельзя создать реквизит с типом "ХранилищеЗначения".
Тогда возникают вопросы: 1. Как мне сохранять изменения, введенные пользователем на форме обработки в реквизите "ФорматированныйДокумент"? 2. Может быть, создать новую константу, с типом "ХранилищеЗначения", куда будут записываться изменения и считываться? |
|||
32
singlych
20.05.16
✎
14:23
|
(31) Реквизит _формы_ в принципе нельзя сделать типа ХЗ. Только произвольный, куда можно пихнуть ХЗ.
Реквизит _обработки_ тоже нельзя сделать типа ХЗ. А смысл, если обработка не хранит данные в базе? Если изменения в форматированном доке нужно для каждого пользователя отдельно сохранять, удобно использовать ХранилищеОбщихНастроек. |
|||
33
dft2014
20.05.16
✎
14:28
|
(32) Изменения должны сохраняться для всех пользователей.
|
|||
34
Pro-tone
20.05.16
✎
14:46
|
(33) ты прочитала (26)?
1. преобразуешь свой форматированный документ в двоичные данные сперва. У тебя обработка, 2. хранить данные она не может, тебе нужно использовать тогда спецхранилище - можно справочник, можно регистр сведений с реквизитом или измерением типа ХЗ. 3. Записываешь эти двоичные данные в 2. |
|||
35
singlych
20.05.16
✎
14:58
|
если документ один и тот же всегда, то константа подойдет
|
|||
36
dft2014
20.05.16
✎
15:02
|
(34) Спасибо, прочитала (26), но не поняла, как это применить к моей задаче.
В модуле формы обработки, ПриОткрытии() написала: &НаКлиенте Процедура ПриОткрытии(Отказ) ПриОткрытииНаСервере(); КонецПроцедуры &НаСервере Процедура ПриОткрытииНаСервере() ФорматированныйДокумент = Константы.ХранениеТекстаТабеля.Получить(); КонецПроцедуры В реквизите "ФорматированныйДокумент", ПриИзменении() написала: &НаКлиенте Процедура ФорматированныйДокументПриИзменении(Элемент) ХранилищеНаСервере(ФорматированныйДокумент); КонецПроцедуры &НаСервере Процедура ХранилищеНаСервере(ФорматированныйДокумент) ХранилищеТекста = Новый ХранилищеЗначения(ФорматированныйДокумент); Константы.ХранениеТекстаТабеля = ХранилищеТекста; КонецПроцедуры; Но ничего не получилось: не сохраняются изменения и вообще выдает ошибку: {Обработка.РассылкаТабелей.Форма.Форма.Форма(720)}: Поле объекта недоступно для записи (ХранениеТекстаТабеля) Константы.ХранениеТекстаТабеля = ХранилищеТекста; |
|||
37
dft2014
20.05.16
✎
15:17
|
+(36) Исправила процедуру, ошибку перестал выдавать, но сохранение отредактированного текста не происходит:
Процедура ХранилищеНаСервере(ФорматированныйДокумент) ХранилищеТекста = Новый ХранилищеЗначения(ФорматированныйДокумент); // Константы.ХранениеТекстаТабеля = ХранилищеТекста; Константы.ХранениеТекстаТабеля.Установить(ХранилищеТекста); КонецПроцедуры; |
|||
38
singlych
20.05.16
✎
15:24
|
ХранилищеДокумента = Константы.ХранениеТекстаТабеля.Получить();
ФорматированныйДокумент = ХранилищеДокумента.Получить(); и это можно делать в стандартном событии ПриСозданииНаСервере |
|||
39
Pro-tone
20.05.16
✎
15:34
|
(37) а если у тебя будут разные форматированные доки или будет меняться в зависимости от условий они, тогда твоя константа не подойдет
|
|||
40
singlych
20.05.16
✎
15:38
|
(39) хехе, это нужно было ответить на (35) :))
|
|||
41
dft2014
20.05.16
✎
15:40
|
(35) Документ будет один и тот же, только будет меняться текст рассылки, который я и пытаюсь сохранять в ХЗ, но пока безуспешно!!!
|
|||
42
dft2014
20.05.16
✎
15:41
|
(38) Поправила, все равно не сохраняет отредактированный текст при повторном открытии!!!
|
|||
43
Pro-tone
20.05.16
✎
15:43
|
(41) а какую логику рассылки ты хочешь реализовать?
(40) я что-то подумал, что документ может меняться от условий) |
|||
44
singlych
20.05.16
✎
15:46
|
(42) Что-то не то поправила.
|
|||
45
dft2014
20.05.16
✎
15:49
|
(43) Есть обработка по рассылке табелей, на форме которой задаются условия (месяц и прочее), а также текст, который получатели табелей увидят в письме при получении табеля. Так вот этот текст письма ежемесячно меняется, поэтому надо чтобы пользователи сами редактировали текст.
|
|||
46
dft2014
20.05.16
✎
15:50
|
Этот текст письма, я и запихнула на форму в реквизит "ФорматированныйДокумент" - тип ФорматированныйДокумент.
|
|||
47
Pro-tone
20.05.16
✎
16:03
|
(45) так сделай это на макете табличного документа
|
|||
48
dft2014
20.05.16
✎
16:05
|
(47) Нет, это обработка формирует табеля в формате pdf в определенном каталоге, а затем рассылает их руководителям подразделений.
|
|||
49
Pro-tone
20.05.16
✎
16:21
|
(48) так есть же возможность сохранения в PDF у табдока ж
|
|||
50
dft2014
20.05.16
✎
16:41
|
(49) Неважно, что формируем и в каком формате. Речь идет о тексте, который получают вместе с письмом (например: "Уважаемый руководитель, добрый день!"). Именно этот текст письма, я и запихнула на форму обработки в реквизит "ФорматированныйДокумент" - тип ФорматированныйДокумент, чтобы была возможность написать вместо "Уважаемый руководитель, добрый ДЕНЬ!" - "Уважаемый руководитель, добрый ВЕЧЕР!". И если потом повторно открыть обработку, то будет сохранено последнее редактирование, т.е. будет на форме обработки "Уважаемый руководитель, добрый ВЕЧЕР!"
|
|||
51
dft2014
20.05.16
✎
17:13
|
||||
52
singlych
20.05.16
✎
17:22
|
(51) Ну скачал. Ну работает. ЧЯНТД?
Константа точно типа ХЗ? |
|||
53
dft2014
20.05.16
✎
17:32
|
(52) В пользовательском режиме наберите любой текст на форме обработки, затем закройте и снова откройте обработку. Текст сохранился?
|
|||
54
singlych
20.05.16
✎
17:36
|
(53) угу
|
|||
55
dft2014
20.05.16
✎
17:42
|
(54) А почему тогда у меня не сохраняется?
|
|||
56
singlych
20.05.16
✎
18:09
|
Хороший вопрос. Кэш почистите на всякий.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |