|
v7: ЗначениеВСтроку | ☑ | ||
---|---|---|---|---|
0
Рябина
22.05.12
✎
10:16
|
Доброе утро! В справочнике нужно ТЗ(таблица Значений) сохранить в при закрытии методом ЗначениВСтроку(). Создала реквизит справочника СохрТЗ - тип Строка, неогранич. ПриЗакрытии пишу СохрТЗ = ЗначениеВСтроку(ТЗ). А ПриОткрытии делаю запись ТЗ = ЗначениеИзСтроки("Стр"). Ничего не получается. Подскажите, кто знает, что не так я делаю?
|
|||
1
big
22.05.12
✎
10:20
|
ТЗ = ЗначениеИзСтроки(СохрТЗ)
наверное как-то так |
|||
2
Рябина
22.05.12
✎
10:23
|
Ой ! Да, я так и прописала ТЗ = ЗначениеИзСтроки(СохрТЗ) . Ничего не выходит
|
|||
3
viktor_vv
22.05.12
✎
10:25
|
Это надо в ПриЗаписи() писать, а не в при закрытии.
|
|||
4
viktor_vv
22.05.12
✎
10:26
|
Плюс в ПРиЗакрытии() проверять модифицированность формы и в случае чего записывать, перед закрытием.
|
|||
5
Рябина
22.05.12
✎
10:27
|
Прописала в ПриЗаписи. Как проверять модифицированность формы?
|
|||
6
PRADA
22.05.12
✎
10:29
|
(0) скорее всего вы не сохраняли значение реквизита СохрТЗ при записи елемента справочника. Вообще использование реквизитов типа "Неограниченная длинна" в 7 плохо. Нужно стараться избегать подобных реквизитов.
|
|||
7
aka AMIGO
22.05.12
✎
10:32
|
до кучи можно еще попробовать ЗначениеВСтрокуВнутр и обратно :)
|
|||
8
aka AMIGO
22.05.12
✎
10:37
|
(6)избегать, конечно, нужно.. но у меня прекрасно работал этот вариант в документе.. т.е. запоминалась ТЗ в строку неогранич. длины
|
|||
9
big
22.05.12
✎
10:38
|
(8) а ссылочная целостность?
|
|||
10
Рябина
22.05.12
✎
10:39
|
Процдура ПриЗаписи() :
СохрТЗ = ЗначениеВСтроку(ТЗ); КонецПроцедуры Процедура ПриОткрытии() ТЗ = ЗначениеИзСтроки(СохрТЗ) КонецПроцедуры Пробовала и ЗначениеВСтрокуВнутр() тоже самое...??? |
|||
11
viktor_vv
22.05.12
✎
10:40
|
Так отладчиком в ПриЗаписи заходит ?
|
|||
12
viktor_vv
22.05.12
✎
10:44
|
В ПриОткрытии инициализируете переменную модуля типа ФлагИзменения = 0. При модификации ТЗ этот ФлагИзменения = 1.
В Призакрытии() Если ФлагИзменения = 1 Тогда СохрТЗ = ЗначениеВСтроку(ТЗ); Записать(); КонецЕсли ; Как-то так. |
|||
13
viktor_vv
22.05.12
✎
10:44
|
Это чтобы при каждом закрытии не записывать, а только при изменении.
|
|||
14
viktor_vv
22.05.12
✎
10:45
|
Ну и в приЗаписи оставить тоже.
|
|||
15
PRADA
22.05.12
✎
10:45
|
(9) не совсем понял к чему вопрос про удаление объектов?
|
|||
16
aka AMIGO
22.05.12
✎
10:49
|
Проверка модифицированности:
Если Модифицированность()=1 Тогда //были изменения в реквизитах |
|||
17
big
22.05.12
✎
10:50
|
(15) когда в ТЗ есть ссылки на другие объекты метаданных, то при удалении эти ссылки будут игнорироваться
|
|||
18
aka AMIGO
22.05.12
✎
10:54
|
(10) вариант такой:
Процедура ПриОткрытии() ТЗ = создатьОбъект("ТаблицаЗначений"); ТЗ = ЗначениеИзСтроки(СохрТЗ) КонецПроцедуры |
|||
19
PRADA
22.05.12
✎
10:55
|
(17) :) соглашусь с Вами, но мы же не читали техническое задание вопроса данной темы... можем спросить у автора...
(0) а какие типы данных хранит ваша ТЗ? |
|||
20
viktor_vv
22.05.12
✎
10:55
|
(16) ПриИзмении ТЗ на форме Модифицированность() не меняется.
|
|||
21
aka AMIGO
22.05.12
✎
10:56
|
+18 это если ТЗ не есть реквизит формы!!
|
|||
22
aka AMIGO
22.05.12
✎
10:56
|
(20)согласен :)
|
|||
23
1Сергей
22.05.12
✎
10:57
|
ТЗ реквизит формы?
|
|||
24
1Сергей
22.05.12
✎
11:02
|
(23)+ если да, то:
Процедура ПриОткрытии() ТЗврем = ЗначениеИзСтроки(СохрТЗ) ТЗ.Загрузить(ТЗврем); КонецПроцедуры |
|||
25
Ёпрст
22.05.12
✎
11:05
|
Процедура ПриОткрытии()
ЗначениеИзСтроки(СохрТЗ).Выгрузить(ТЗ); КонецПроцедуры |
|||
26
aka AMIGO
22.05.12
✎
11:13
|
вот работающий код:
Если ПустоеЗначение(СтрокаТЗ)=1 Тогда СтатусАкта = Перечисление.СтатусАктаОБраке.НеОформлен; ТЗдляТЗ.Очистить(); ТЗдляТЗ.НоваяКолонка("Метка","Перечисление",,,"Учтен",5); ТЗдляТЗ.НоваяКолонка("Док",,,,"ДокВыпПрод",25); ТЗдляТЗ.НоваяКолонка("Дата","Дата",,,,6); ТЗдляТЗ.НоваяКолонка("Изделие",,,,"Изделие",15); ТЗдляТЗ.НоваяКолонка("КоличествоИзделий",,,,"Кол.изд.",4); ТЗдляТЗ.НоваяКолонка("Цех"); ТЗдляТЗ.НоваяКолонка("ТоварБрак",,,,"Брак",25); ТЗдляТЗ.НоваяКолонка("КолБрака","Число",,,,5); Иначе //СтатусАкта = Перечисление.СтатусАктаОБраке.НеУчтен; ТмпТаб = СоздатьОбъект("ТаблицаЗначений"); ТмпТаб = ЗначениеИзСтрокиВнутр(СтрокаТЗ); ТЗдляТЗ.Загрузить(ТмпТаб); |
|||
27
aka AMIGO
22.05.12
✎
11:15
|
+26 ТЗдляТЗ - это на форме, тз такая
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |