Имя: Пароль:
1C
1С v8
Можно ли во внешней обработке хранить информацию?
0 loonypy
 
22.11.12
12:17
8.2. В обработке есть табличная часть с ее графическим отображением. Пользователь заносит в эту табличную часть перечень информации. Можно ли хранить эту информацию в обработке, чтобы каждый раз при ее открытии не заполнять заново? Хранить в текстовом документе (либо таблице), а затем загружать ее в обработку, не хочется.
1 Maxus43
 
22.11.12
12:25
где-то же надо хранить, сама по себе обработка не хранит
2 ZanderZ
 
22.11.12
12:50
(0) обработка не хранит информации - в базе храни
3 Aprobator
 
22.11.12
12:55
Сохранить реквизиты формы.
4 Linx2
 
22.11.12
12:58
В форме можно сохранять значения. Из макета обработки организовать начальное заполнение значений по умолчанию.
5 Alex S D
 
22.11.12
12:59
в макете
6 Alex S D
 
22.11.12
13:00
не. туплю)
7 drcrasher
 
22.11.12
13:00
(5) макет вроде ридонли. уже нет?
8 Мимо Проходил
 
22.11.12
13:11
Посмотри, как организовано хранение инфы в регламентированных отчетах
9 ICWiner
 
22.11.12
13:20
Свойства формы, ставишь галочку что-то типо сохранять данные, потом в поле сохраняемые данные галочками отмечаешь что конкретно сохранять. Ну и стандартные кнопки сохранить настройки - восстановить настройки.
10 loonypy
 
22.11.12
13:28
(7)Макет тоже использовать не получится?
(8)Поищу. Только если там как с (9), то не работает.
(9)У формы:
Сохранять значения: отметил.
Сохраняемые значения: отметил нужную табличную часть.
Восстанавливать ЗначенияПриОткрытии: отметил.
Не работает - при переоткрытии табличная часть чистая.
11 Sammo
 
22.11.12
13:31
(10) И созранил перед выходом?
+ в некоторых конфах есть дополнительно свой механизм хранения настроек
12 ICWiner
 
22.11.12
13:31
(10)Кнопки в командную панель нужно стандартные добавить Сохранить значение и загрузить значение. Сейчас поточнее посмотрю как называются. Выглядят как в стандартных отчетах. Заполни раз данные, сохрани значение кнопкой, профит...
13 ICWiner
 
22.11.12
13:34
Ну да, перед закрытием можно попробовать поставить процедуру типа СохранитьНастройкиПользователя();
14 loonypy
 
22.11.12
13:39
(11)(12) нет, не сохранил. Кнопок, пустая форма - что добавлю, то и будет. Может из-за того, что обработка обычная, а не управляемая.
15 mistеr
 
22.11.12
13:41
СохранитьЗначение() - без формы, без кнопок.
-----------------------------------------
Глобальный контекст
СохранитьЗначение (SaveValue)
Синтаксис:
СохранитьЗначение(<Имя>, <Значение>)
Параметры:
<Имя> (обязательный)
Тип: Строка. Имя, с которым сохраняется значение, используется для идентификации сохраняемых значений.
<Значение> (обязательный)
Тип: Произвольный. Сохраняемое значение.
Описание:
Сохраняет значение для использования не только в текущем, но и в последующих сеансах работы с программой. Значение хранится индивидуально для каждой пары информационная база - пользователь. Например, можно сохранять значения по умолчанию, используемые данным пользователем.
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
Пример:
СохранитьЗначение("СрокИсполненияЗаказа", СрокИсполнения);
СохранитьЗначение("СкладПоУмолчанию", МестоХранения);
См. также:
Глобальный контекст, метод ВосстановитьЗначение
16 ICWiner
 
22.11.12
13:42
(14) Нет. Добавь командную панель( закладка вверху Форма - добавить элемент управления - командная панель). На ней пустая кнопка будет. Выдели, залезь в свойства и выбери Сохранить значение. Потом рядом такую же кнопку загрузить значение.
17 sadden
 
22.11.12
13:49
(10) нужно ещё добавить кнопку со стандартным действием "сохранить значения" ; если хочешь, чтобы автоматом сохранялись значения при закрытии формы, то нужно использовать функцию "СохранитьЗначение(<имя>, <значение>) в событии "Перед закрытием формы", где в <значение> выгружаешь строки табличной части, а "При открытии", восстанавливаешь значение и  заполняешь таб часть
18 loonypy
 
22.11.12
14:01
(16) Не знал о такой штуке, спасибо. Жаль только, что работает в пределах одной базы.
(17)Эти процедуры, случаем, не привязываются к кнопкам Сохранить значения"\"Восстановить значения", о которых  ICWiner написал? Т.е. не одно и тоже?
19 loonypy
 
22.11.12
14:04
mister в (15) привел описание. Похоже тоже самое, только в случае использования кнопок этой "механики" не видно.
20 sadden
 
22.11.12
14:08
(18) нет, в случае с кнопкой ты в конфигураторе указываешь через свойство формы что да и как сохранять, в случае с функциями ты вообще можешь сохранять нечто абстрактное, главное используй уникальные имена, чтобы вдруг нечаянно не перезабивать значения в разных формах
21 loonypy
 
22.11.12
14:12
(20) ага, не додумал.
выходит, что способа хранения информации во внешней обработке не в пределах не существует.. Только хранение во внешнем файле?
22 Sammo
 
22.11.12
14:14
(21) если речь идет про хранение информации во внешней обработке вне базы, то только те же способы хранения информации, что и обычно - файл, скуль и т.д. и т.п. Сама обработка данные хранить не может.
23 kosts
 
22.11.12
14:18
Авто сохранение ТЗ в файле.


Перем ПолноеИмяИмяФайла;
Перем ПолноеИмяИмяФайлаАвтосохранения;

Процедура ПриОткрытии()
   
   ПолноеИмяИмяФайла = "c:\физ.sv";
   ПолноеИмяИмяФайлаАвтосохранения = ПолноеИмяИмяФайла;
   ВыбФайл = Новый Файл(ПолноеИмяИмяФайлаАвтосохранения);
   Если ВыбФайл.Существует() Тогда
       ПрочитатьИзФайла(ПолноеИмяИмяФайлаАвтосохранения, СотрудникиСЗаданнойУплаченнойСуммой);
   КонецЕсли;
   
КонецПроцедуры

Процедура ПрочитатьИзФайла(ПолноеИмяИмяФайла, Таблица)
   
   Попытка
       знстр = ЗначениеИзФайла(ПолноеИмяИмяФайла);
       ТаблицаТМП = ЗначениеИзСтрокиВнутр(знстр);
       Если ТипЗнч(ТаблицаТМП) <> Тип("ТаблицаЗначений") Тогда
           Предупреждение("Ошибка при открытии таблицы");
           Возврат ;
       КонецЕсли;
       Таблица.Очистить();
       Для каждого т Из ТаблицаТМП Цикл
           т1 = Таблица.Добавить();
           ЗаполнитьЗначенияСвойств(т1, т);
       КонецЦикла;                
   Исключение
       Предупреждение(ОписаниеОшибки());
       Возврат ;
   КонецПопытки;
   
КонецПроцедуры

Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
   
   СохранитьВФайл(ПолноеИмяИмяФайлаАвтосохранения, СотрудникиСЗаданнойУплаченнойСуммой);
   
КонецПроцедуры

Процедура СохранитьВФайл(ПолноеИмяИмяФайла, Таблица)
   
   зн = ЗначениеВСтрокуВнутр(Таблица);
   Попытка
       ЗначениеВФайл(ПолноеИмяИмяФайла, зн);
   Исключение
       Предупреждение(ОписаниеОшибки());
   КонецПопытки;
   
КонецПроцедуры
24 sadden
 
22.11.12
14:20
(21) СохранитьЗначение() не сохраняет во внешнем файле, есть ещё другая функция СохранитьВФайл(<путь к файлу>). Эта функция сохраняет в базе, т.е. если ты запустишь обработку в другой базе, то да, значение в этом случае будет пустым