«СохранитьЗначение» в управляемых формах
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Можно ли на управляемых формах создать аналог обычной формы документа «операция» из Бухгалерии
что использовать для отображения данных в табличной части на управляемых формах, чтобы в первой.
КОМ — объект на управляемых формах
Ситуация, есть старая (обычная) форма в которой в двух переменных хранятся ком объекты. Перевожу.
Запись объекта на управляемых формах
пишу обектнакладная= реквизитформывзначение(«объект) обектнакладная.записать(); //////////.
1С 8.3 Розница 2.1.4.9 «Текущая цена розницы» и «Остаток» в форме элемента «Номенклатура»
Есть ли готовое решение, можно через внешнюю форму нужно контроль «Текущая цена розницы» и.
Тип: Произвольный.
Ключ объекта настройки.
(необязательный)
Тип: Строка.
Ключ сохраняемых настроек.
(обязательный)
Тип: Произвольный.
Содержит настройки, которые нужно сохранить в хранилище.
(необязательный)
Тип: ОписаниеНастроек.
Описание настроек.
(необязательный)
Тип: Строка.
Имя пользователя, настройки которого сохраняются.
Если не указан, то сохраняются настройки текущего пользователя.
Описание:
Сохраняет настройку в хранилище.
Вызывает обработчик ОбработкаСохранения.
Сервер, толстый клиент, внешнее соединение.
Источник
Так Где-же Сохраняются Значения?
Дайнеко
Есть одна база 8.2 файловая, в которой СохранитьЗначение() и ВосстановитьЗначение() работают так:
— в течение сеанса все работает нормально.
— а после перезапуска 1С Восстановить выдает одну и туже величину.
Просмотрел статьи по этому вопросу, но уверенного ответа не нашел.
Второй вопрос сродни первому. Где сохраняются положения окон? Одна база никак не хочет главное окно запускать распахнутым. Запуск через 1CStart.exe. Режим — толстый клиент. Файлы в папке пользователя (т.е.кэш) удалял.
Darlock
По вопросу 1 — у вас в форме установлен флаг около реквизита в «Сохраняемых значениях»? Одна и таже величина. нет ли в коде принудительной установки значения реквизита? Может он восстанавливается, а потом принудительно заменяется?
По вопросу 2 — если у вас Винда 7, то кэш там в 2 каталогах хранится — Локал и Роуминг.
Дайнеко
Насчет затирания: неплохая версия. Однако нет похожего реквизита. У меня сохраняется не реквизит, а переменная. Что-то вроде:
СохранитьЗначение(«ЖурналПолный»+ ИмяЗакладки);
Вот хочется для чистоты эксперимента все очистить.
Darlock
Сохраняет значение для использования не только в текущем, но и в последующих сеансах работы с программой. Значение хранится индивидуально для каждой пары информационная база — пользователь. Например, можно сохранять значения по умолчанию, используемые данным пользователем.
А у вас по коду нигде совпадений с именем переменной нет? В смысле строковый идентификатор не встречается еще где-нибудь.
Дайнеко
Кроме запуска отчетика, в 1С ничего не делал.
Результат испытания таков:
— в течение одного сеанса корректно сохраняется и восстанавливается при следующем открытии отчета.
— при следующем запуске 1С, ВосстановитьЗначение() выдает одно и то же запомненное когда-то, не в последнем сеансе.
Правда проблема стоит несколько шире. Программа не запоминает:
— размер главного окна, открывается не распахнутым, всегда одного размера
— список последних файлов в меню Файл.
— в Журналах, установка интервала с галочкой «Использовать при открытии».
Сравнивая базы (все файловые):
— на моем сервере так заклинило на всех базах, правда все они копии от одной исходной.
— не зависит от сессии (Пользователя) сервера
— не зависит от Пользователя 1С. У каждого запомнились свои установки.
— не зависит от компьютера.
Пробовал:
— очищал «c:\Documents and Settings\пользователь\Application Data\1C»
— заново прописывать базу в меню запуска.
— тестирование ИБ
Прихожу к Выводу: вся эта хрень лежит в самой базе. Пока базы была не старая, этого не наблюдалось.
Теперь я эту базу очищаю от данных и ставлю клиентам, перенося и этот «запор».
Кто ковырялся в базе, что там есть?
Darlock
У меня была похожая проблема. Вы терминально работаете? или это на локальной машине?
Подобная ерунда наблюдалась, если был запуск 1С в терминальном режиме по RDP. Выяснилось, что это проблема на стороне сервера, он создавал временный профиль при каждом соединении с сервером в пределах 1 суток. Через 24 часа, профиль уничтожался и создавался заново.
Источник
Не работает «СохранитьЗначение».
В общем бьюсь давно, потому и обращаюсь для начала с таким вопросом: Кто-то стакивался с таким явлением? Поясню подробно.
Суть явления
* Написал отчет их 2-х команд:
— СохранитьЗначение
— ВосстановитьЗначение (вызывается ПередОткрытием() )
* Запустил 1С (толстый клиент 8.2.17 формы обычные) и балуюсь. Все работает.
* Закрыл 1С и запустил заново. Первое-же открытие ничего не помнит.
Обратил внимание, что не помнит и стандартные операции:
— в меню «Файл» список ранее открывавшихся
— размер главного окна приложения (всегда не максимизированное)
— в табличных частях настройка колонок (видимость, размер).
— интервалы в журналах
Зависимости:
— Глючит на моем компе во всех базах с моей нетиповой кон-ей.
— Стал замечать еще на 2-3 компах клиентов, куда базу тиражирую.
— В другой конф-ии нормально, но ее почти не открываю. Когда-то и в моей базе нормально было. Она ежедневно меняется.
Казалось бы, дело в базе — «замусорилась», «износилась». Но!
— парадокс 1: выгружаю на другой комп — Ок
— парадокс 2: на «плохом» компе создаю абсолютно пустую базу (никаких объектов)- нормально. Загружаю конф-ию — сразу стала глючить.
В общем, может и запутал, но вывод такой: на моем компе явление устойчивое. на других иногда. Четкой зависимости не проследил.
О борьбе . Чур не советовать про очистку кэш-а.
— удалял из списка БД
— удалял папку в Application Data\1С
— удалял 1С. Чистил в реестре все со словом «8.2»
Результаты были частичными. Например, в одном компе тупо «застрял» в памяти интервал журнала. Всегда по такое-то число. После манипуляций интервал очистился в «без ограничений». Но сохранить новый — ни в какую!
Источник
Не сохраняются установленные значения.
В модуле справочника в процедуре ПриЗаписи устанавливаю значения некоторых реквизитов, но они не сохраняются.
Если Реквизит1 = 0 Тогда
Реквизит1 = 1;
Реквизит2 = 0;
Иначе
Реквизит2 = 1;
КонецЕсли;
Что я не так делаю?
В данном примере числовой.
Все дело в том что проверяю отладчиком — значения присвоены, закрываю форму — открываю, а значения старые
нажимаю в форме «Записать» (без закрытия) значения даже в поля формы подставляются. Закрыл-открыл — значения старые.
Если записать 2 раза, то сохраняет присвоенные значения.
Не могу понять в чем проблема.
Процедура в МОДУЛЕ ОБЪЕКТА.
(0) Так ты устанавливаешь значения реквизитов формы или объекта? Если формы — то они и не будут сохраняться. Если надо сохранять реквизиты объекта, то пиши
Процедура находится в модуле объекта и к форме не имеет никакого отношения, если я правильно понимаю.
вот реальный код:
(20) я не совсем понял что необходимо сделать.
Как я понял:
1. ПередЗаписью создаем все подчиненные элементы с ссылкой на владельца = пустой
2. ПриЗаписи все пустые ссылки владельца меняем на ссылку текущего элемента.
(28) Не понял. что работает? создание элемента подчиненного справочника у не записанного элемента справочника владельца?
И режимПроведения — как-то к справочникам кажется никакого отношения не имеет
можно и в модуле формы:
(30) Двойной записью я реализовал, но хочется ж правильно сделать. Ведь если делать двойную запись могут быть накладки.
(32) В форме не хочется, вдруг товары будут создаваться программно, какой-нибудь обработкой (с товарами это вряд ли, хотя при переходе с другой базы их никто руками создавать не будет), а с другими справочниками вполне может быть реально.
Можно создавать элемент подчиненного справочника устанавливая ему параметр Владелец равным Ссылке сформированной через УникальныйИдентификатор и ПолучитьСсылку в том случае, если справочник владелец неиерархический, в противном случае, при записи элемента подчиненного справочника выдается ошибка о том, что поле Владелец не заполнено или заполнено неверно.
Возможно существует возможность это обойти, но я ее не нашел.
Особенное спасибо TitanLuchs за идею.
Источник
Замена функции СохранитьЗначения() ВосстановитьЗначения() и штатный справочник «СохраненныеНастройки»
Захотелось мне сохранить некоторые значения в форме сразу для ВСЕХ ПОЛЬЗОВАТЕЛЕЙ и не «где-то на компе» а в моей базе.
Я хочу совместными усилиями упростить код.
Вариант с добавлением кнопок на форму «СохранитьЗначения / Восстановить значения» не предлагать, так не интересно, хочется «покрутить ручки».
Хороший вариант //infostart.ru/public/22132/ но там надо заводить регистр сведений «СохраненныеНастройки»
Итак вот мой код:
Процедура ПриОткрытии ()
// из «Хранилища» справочника «СохраненныеДанные» вытаскиваем значения некоторых полей и восстановим их на этой форме
//Находим строку для текущего документа.
Поиск= СпрСохранениеНастроек.НайтиПоРеквизиту(«НастраиваемыйОбъект» , СокрЛП ( «ОтчетОбъект.» + ЭтаФорма . Метаданные (). Имя ) );
Хранилище = Поиск . ХранилищеНастроек . Получить ();
// Присвоим полям формы данные из Хранилища (если данных еще нет, то «молчим» )
Если Хранилище <>НЕОПРЕДЕЛЕНО Тогда
//Находим строку для текущего документа. Если такой записи еще нет, то создаем
Поиск= СпрСохранениеНастроек.НайтиПоРеквизиту(«НастраиваемыйОбъект» , СокрЛП ( «ОтчетОбъект.» + ЭтаФорма . Метаданные (). Имя ) );
Если ПустаяСтрока ( Поиск ) Тогда
НоваяЗапись = СпрСохранениеНастроек . СоздатьЭлемент ();
НоваяЗапись . НастраиваемыйОбъект = «ОтчетОбъект.» + ЭтаФорма . Метаданные (). Имя ;
//Узнаем имя как заданно в конфигураторе;
НоваяЗапись.Описание = «Храним данные для моей формы» ; // краткое описание строки, на какой хрен она нужна
// Запишем в табличную часть «Пользователи» всего одну строку для «Всех пользователей»
// снова ищем строку, она уже записанна, и становимся на нее.
Поиск= СпрСохранениеНастроек.НайтиПоРеквизиту(«НастраиваемыйОбъект» , СокрЛП ( «ОтчетОбъект.» + ЭтаФорма . Метаданные (). Имя ) );
Элемент = Поиск . ПолучитьОбъект (); // выбираем по этой строке
НоваяСтрока.Пользователь=Справочники.ГруппыПользователей.ВсеПользователи; // в Справ «ГруппыПользователей» есть строка «Все пользователи», ее и берем
НоваяСтрока . ПравоИзменения =Истина;
// Для «Хранилища» справочника «СохраненныеНастройки» укажем какие поля сохранять
СтруктураНастроек = Новый Структура;
// запишем в «Хранилище» справочника «СохраненныеНастройки» указанные данные ( это штатная функция ! )
// уточнить надо ли хранилище очищать ? или перезаписывается повех ?
Источник