Сохранение значений реквизитов формы обработки
Обработка УФ подключена через расширение.
В форме обработки есть 3 реквизита:
Организация - СправочникСсылка.Организации
СтатьяЗатрат1 - Строка
СтатьяЗатрат2 - Строка
Нужно, чтобы при нажатии кнопки "Сохранить реквизиты", данные куда-то сохранялись, а при изменении организации СтатьяЗатрат1 и СтатьяЗатрат2 заполнялись сохраненными значениями для выбранной Организации.
В форме обработки есть 3 реквизита:
Организация - СправочникСсылка.Организации
СтатьяЗатрат1 - Строка
СтатьяЗатрат2 - Строка
Нужно, чтобы при нажатии кнопки "Сохранить реквизиты", данные куда-то сохранялись, а при изменении организации СтатьяЗатрат1 и СтатьяЗатрат2 заполнялись сохраненными значениями для выбранной Организации.
По теме из базы знаний
- Сохранение произвольных значений реквизитов объекта в реквизите формы
- Сохранение (чтение) настроек внешней обработки в файл (управляемые формы)
- Сохранение реквизитов объектов обработки. Обычное приложение
- Способ хранения данных расширения или дополнительной обработки
- Подсчет итогов в колонках дерева значений на управляемой форме
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
и
СохранитьЗначение (SaveValue)
Синтаксис:
СохранитьЗначение(<Имя>, <Значение>)
Параметры:
<Имя> (обязательный)
Тип: Строка.
Имя, с которым сохраняется значение, используется для идентификации сохраняемых значений.
<Значение> (обязательный)
Тип: Произвольный.
Сохраняемое значение.
Описание:
Сохраняет значение для использования не только в текущем, но и в последующих сеансах работы с программой. Значение хранится индивидуально для каждой пары информационная база - пользователь. Например, можно сохранять значения по умолчанию, используемые данным пользователем.
Доступность:
Толстый клиент.
Пример:
СохранитьЗначение("СрокИсполненияЗаказа", СрокИсполнения);
СохранитьЗначение("СкладПоУмолчанию", МестоХранения);
ПоказатьСинтаксис:
СохранитьЗначение(<Имя>, <Значение>)
Параметры:
<Имя> (обязательный)
Тип: Строка.
Имя, с которым сохраняется значение, используется для идентификации сохраняемых значений.
<Значение> (обязательный)
Тип: Произвольный.
Сохраняемое значение.
Описание:
Сохраняет значение для использования не только в текущем, но и в последующих сеансах работы с программой. Значение хранится индивидуально для каждой пары информационная база - пользователь. Например, можно сохранять значения по умолчанию, используемые данным пользователем.
Доступность:
Толстый клиент.
Пример:
СохранитьЗначение("СрокИсполненияЗаказа", СрокИсполнения);
СохранитьЗначение("СкладПоУмолчанию", МестоХранения);
и
ВосстановитьЗначение (RestoreValue)
Синтаксис:
ВосстановитьЗначение(<Имя>)
Параметры:
<Имя> (обязательный)
Тип: Строка.
Имя сохраненного значения.
Возвращаемое значение:
Тип: Произвольный.
Восстановленное значение. Если восстановить не удалось, возвращает Неопределено.
Описание:
Получает значение, сохраненное ранее с помощью метода СохранитьЗначение.
Доступность:
Толстый клиент.
Пример:
СрокИсполнения = ВосстановитьЗначение("СрокИсполненияЗаказа"));
ДатаИсполнения = ДатаДокумента + Макс(СрокИсполнения, 5);
ПоказатьСинтаксис:
ВосстановитьЗначение(<Имя>)
Параметры:
<Имя> (обязательный)
Тип: Строка.
Имя сохраненного значения.
Возвращаемое значение:
Тип: Произвольный.
Восстановленное значение. Если восстановить не удалось, возвращает Неопределено.
Описание:
Получает значение, сохраненное ранее с помощью метода СохранитьЗначение.
Доступность:
Толстый клиент.
Пример:
СрокИсполнения = ВосстановитьЗначение("СрокИсполненияЗаказа"));
ДатаИсполнения = ДатаДокумента + Макс(СрокИсполнения, 5);
(2) Если просто реквизиты формы сохранять понятно как использовать СохранитьЗначение и ВосстановитьЗначение.
А в данном случае нужно сохранить одни и те же реквизиты для каждой Организации.
В форме обработки есть 3 реквизита:
Организация - СправочникСсылка.Организации
СтатьяЗатрат1 - Строка
СтатьяЗатрат2 - Строка
Например,
Выбираем Организация1, заполняем СтатьиЗатрат: ОплатаТруда, СтраховыеВзносы. Нажимаем кнопку Сохранить,
затем выбираем Организация2, заполняем СтатьиЗатрат: ОплатаТрудаЕНВД, СтраховыеВзносыЕНВД. Нажимаем кнопку Сохранить.
При изменении элемента формы Организация на Организацию1 должны заполниться СтатьиЗатрат1 и СтатьиЗатрат2 : ОплатаТруда и СтраховыеВзносы.
При изменении элемента Организация на Организацию2 должны заполниться СтатьиЗатрат1 и СтатьиЗатрат2 : ОплатаТрудаЕНВД и СтраховыеВзносыЕНВД.
Данные значения должны восстанавливаться и после закрытия формы, программы.
А в данном случае нужно сохранить одни и те же реквизиты для каждой Организации.
В форме обработки есть 3 реквизита:
Организация - СправочникСсылка.Организации
СтатьяЗатрат1 - Строка
СтатьяЗатрат2 - Строка
Например,
Выбираем Организация1, заполняем СтатьиЗатрат: ОплатаТруда, СтраховыеВзносы. Нажимаем кнопку Сохранить,
затем выбираем Организация2, заполняем СтатьиЗатрат: ОплатаТрудаЕНВД, СтраховыеВзносыЕНВД. Нажимаем кнопку Сохранить.
При изменении элемента формы Организация на Организацию1 должны заполниться СтатьиЗатрат1 и СтатьиЗатрат2 : ОплатаТруда и СтраховыеВзносы.
При изменении элемента Организация на Организацию2 должны заполниться СтатьиЗатрат1 и СтатьиЗатрат2 : ОплатаТрудаЕНВД и СтраховыеВзносыЕНВД.
Данные значения должны восстанавливаться и после закрытия формы, программы.
(2) 1. С помощью "СохранитьЗначение" и "ВосстановитьЗначение" можно решить вашу задачу. Например:
2. Если этот вариант не устраивает можешь в конфигураторе добавить регистр сведенный (если нужна история) или добавить два реквизита в справочнике Организации.
3. Если вариант 2 не устраивает, можешь например в блокноте сохранить свои данные, а потом читать из файла.
Сохранение
СтатиЗатрат = Новый Структура("СтатьяЗатрат1, СтатьяЗатрат2", ЗначениеЗатрат1, ЗначениеЗатрат2);
СохранитьЗначение("Организация1", СтатиЗатрат );
Восстановление
СтатиЗатрат = ВосстановитьЗначение("Организация1");
ЗначениеЗатрат1 = СтатиЗатрат.СтатьяЗатрат1;
ЗначениеЗатрат2 = СтатиЗатрат.СтатьяЗатрат2;
2. Если этот вариант не устраивает можешь в конфигураторе добавить регистр сведенный (если нужна история) или добавить два реквизита в справочнике Организации.
3. Если вариант 2 не устраивает, можешь например в блокноте сохранить свои данные, а потом читать из файла.
Решено
&НаСервере
Процедура ВосстановитьСтатьиЗатратНаСервере()
//Восстановление статей затрат в зависимости от организации
//При отсутствии сохраненных данных оставлять пустые значения
КлючОбъекта = Организация.Наименование;
КлючНастроек = "СтатьиЗатрат";
// Для восстановления настроек необходимо воспользоваться функцией Загрузить
СтруктураНастроек = Неопределено;
Попытка
СтруктураНастроек = ХранилищеОбщихНастроек.Загрузить(КлючОбъекта,КлючНастроек,);
// если настроек нет, то будет возвращено значение "Неопределено"
Исключение
Сообщить("Нет прав на восстановление настроек.");
КонецПопытки;
Если НЕ СтруктураНастроек = Неопределено Тогда
СтатьяЗатратОплатаТруда = СтруктураНастроек.СтатьяЗатратОплатаТруда;
СтатьяЗатратСтраховыеВзносы = СтруктураНастроек.СтатьяЗатратСтраховыеВзносы;
СтатьяЗатратНСиПЗ = СтруктураНастроек.СтатьяЗатратНСиПЗ;
Иначе
СтатьяЗатратОплатаТруда = "";
СтатьяЗатратСтраховыеВзносы = "";
СтатьяЗатратНСиПЗ = "";
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВосстановитьСтатьиЗатрат()
ВосстановитьСтатьиЗатратНаСервере();
КонецПроцедуры
&НаСервере
Процедура СохранитьСтатьиЗатратНаСервере()
// Сохранение статей затрат с привязкой к организации
// ключи могут быть произвольными строками
КлючОбъекта = Организация.Наименование;
КлючНастроек = "СтатьиЗатрат";
// настройки могут быть произвольного типа
Настройки = Новый Структура("СтатьяЗатратОплатаТруда, СтатьяЗатратСтраховыеВзносы, СтатьяЗатратНСиПЗ", СтатьяЗатратОплатаТруда, СтатьяЗатратСтраховыеВзносы, СтатьяЗатратНСиПЗ);
ХранилищеОбщихНастроек.Сохранить(КлючОбъекта, КлючНастроек, Настройки);
КонецПроцедуры
&НаКлиенте
Процедура СохранитьСтатьиЗатрат(Команда)
СохранитьСтатьиЗатратНаСервере()
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот