Как сделать так, чтобы данные формы сохранялись для всех пользователей?
Есть обработка, с помощью которой пользователь проставляет статусы документов(флажками).
Таким образом сохраняю значения таблицы значений, чтобы при следующих открытиях, статусы документов сохранялись.Пользователь флажками ставит статусы документов и они должны сохранится.С помощью этого кода данные сохраняются, но сохраняются только для того пользователя, который проставил флажки. Как сделать так, чтобы данные сохранялись и показывались не только для того пользователя, кто изменял данные, а сохранялись и показывались для всех пользователей?
Обычные формы
Процедура СохранитьСтатусыДокументов()
Для каждого строкаТЗ Из ТаблицаСтатуса Цикл
УИД = Строка(строкаТЗ.Документ);
СохранитьЗначение("Вернул"+УИД, строкаТЗ.Вернул);
СохранитьЗначение("НакладнаяЗакрыта"+УИД, строкаТЗ.НакладнаяЗакрыта);
СохранитьЗначение("БезПечати"+УИД, строкаТЗ.БезПечати);
СохранитьЗначение("ИзменениеЦены"+УИД, строкаТЗ.ИзменениеЦены);
СохранитьЗначение("НакладнаяСКорректировкой"+УИД, строкаТЗ.НакладнаяСКорректировкой);
КонецЦикла;
КонецПроцедуры
Процедура ЗагрузитьСтатусыДокументов()
Для каждого строкаТЗ Из ТаблицаСтатуса Цикл
УИД = Строка(строкаТЗ.Документ);
строкаТЗ.Вернул = ВосстановитьЗначение("Вернул"+УИД);
строкаТЗ.НакладнаяЗакрыта = ВосстановитьЗначение("НакладнаяЗакрыта"+УИД);
строкаТЗ.БезПечати = ВосстановитьЗначение("БезПечати"+УИД);
строкаТЗ.ИзменениеЦены = ВосстановитьЗначение("ИзменениеЦены"+УИД);
строкаТЗ.НакладнаяСКорректировкой = ВосстановитьЗначение("НакладнаяСКорректировкой"+УИД);
КонецЦикла;
КонецПроцедуры
ПоказатьТаким образом сохраняю значения таблицы значений, чтобы при следующих открытиях, статусы документов сохранялись.Пользователь флажками ставит статусы документов и они должны сохранится.С помощью этого кода данные сохраняются, но сохраняются только для того пользователя, который проставил флажки. Как сделать так, чтобы данные сохранялись и показывались не только для того пользователя, кто изменял данные, а сохранялись и показывались для всех пользователей?
Обычные формы
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(9)В этой форме пользователь ставит флажки (ставит статусы документам) и эти данные сохраняются в регистре сведений
Вот полный код:
Было бы хорошо,если смогли бы привести пример кода,как это сделать
Вот полный код:
Процедура СохранитьСтатусыДокументов()
Для каждого строкаТЗ Из ТаблицаСтатуса Цикл
УИД = Строка(строкаТЗ.Документ);
СохранитьЗначение("Вернул"+УИД, строкаТЗ.Вернул);
СохранитьЗначение("НакладнаяЗакрыта"+УИД, строкаТЗ.НакладнаяЗакрыта);
СохранитьЗначение("БезПечати"+УИД, строкаТЗ.БезПечати);
СохранитьЗначение("ИзменениеЦены"+УИД, строкаТЗ.ИзменениеЦены);
СохранитьЗначение("НакладнаяСКорректировкой"+УИД, строкаТЗ.НакладнаяСКорректировкой);
КонецЦикла;
КонецПроцедуры
Процедура ЗагрузитьСтатусыДокументов()
Для каждого строкаТЗ Из ТаблицаСтатуса Цикл
УИД = Строка(строкаТЗ.Документ);
строкаТЗ.Вернул = ВосстановитьЗначение("Вернул"+УИД);
строкаТЗ.НакладнаяЗакрыта = ВосстановитьЗначение("НакладнаяЗакрыта"+УИД);
строкаТЗ.БезПечати = ВосстановитьЗначение("БезПечати"+УИД);
строкаТЗ.ИзменениеЦены = ВосстановитьЗначение("ИзменениеЦены"+УИД);
строкаТЗ.НакладнаяСКорректировкой = ВосстановитьЗначение("НакладнаяСКорректировкой"+УИД);
КонецЦикла;
СохранениеДанныхФормыВНастройках
КонецПроцедуры
Процедура КнопкаЗаписатьНажатие(Кнопка)
НаборЗаписей = РегистрыСведений.СтатусыДокументов.СоздатьНаборЗаписей();
Для Каждого Строка Из ТаблицаСтатуса Цикл
мУникальный = Новый УникальныйИдентификатор;
НаборЗаписей.Отбор.Документ.Установить(Строка.Документ);
НаборЗаписей.Отбор.Документ.Использование = Истина;
НаборЗаписей.Отбор.УникальныйИдентификатор.Установить(мУникальный);
НаборЗаписей.Прочитать();
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.УникальныйИдентификатор = мУникальный;
НоваяЗапись.Период =ТекущаяДата();
НоваяЗапись.Пользователь =ПараметрыСеанса.ТекущийПользователь;
ЗаполнитьЗначенияСвойств(НоваяЗапись,Строка);
НаборЗаписей.Записать(Ложь);
КонецЦикла;
КонецПроцедуры
Процедура ПриОткрытии()
Таблица=ТаблицаСтатуса;
Таблица.Колонки.Добавить("Вернул", Новый ОписаниеТипов("Булево"));
Таблица.Колонки.Добавить("НакладнаяЗакрыта", Новый ОписаниеТипов("Булево"),"Накладная закрыта");
Таблица.Колонки.Добавить("БезПечати", Новый ОписаниеТипов("Булево"),"Без печати");
Таблица.Колонки.Добавить("ИзменениеЦены", Новый ОписаниеТипов("Булево",),"Изменение цены");
Таблица.Колонки.Добавить("НакладнаяСКорректировкой", Новый ОписаниеТипов("Булево"),"Накладная с корректировкой");
Таблица.Колонки.Добавить("НомерНакладной", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(30)),"Номер накладной");
Таблица.Колонки.Добавить("ДатаНакладной", Новый ОписаниеТипов("Дата", Новый КвалификаторыДаты(ЧастиДаты.Дата)),"Дата накладной");
Таблица.Колонки.Добавить("Контрагент", Новый ОписаниеТипов("СправочникСсылка.Контрагенты"));
Таблица.Колонки.Добавить("СуммаНакладной", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3)),"Сумма накладной");
Таблица.Колонки.Добавить("НомерМаршрутногоЗадания", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(20)),"Номер маршрутного задания");
Таблица.Колонки.Добавить("Документ", Новый ОписаниеТипов("ДокументСсылка.РеализацияТоваровУслуг"));
Таблица.Колонки.Добавить("Комментарий", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(200)));
ЭлементыФормы.ТаблицаСтатуса.СоздатьКолонки();
КолонкаФлаг = ЭлементыФормы.ТаблицаСтатуса.Колонки.Найти("Вернул");
КолонкаФлаг.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
КолонкаФлаг.УстановитьЭлементУправления(Тип("Флажок"));
КолонкаФлаг.ДанныеФлажка = "Вернул";
КолонкаФлаг.Данные = "";
КолонкаФлаг = ЭлементыФормы.ТаблицаСтатуса.Колонки.Найти("НакладнаяЗакрыта");
КолонкаФлаг.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
КолонкаФлаг.УстановитьЭлементУправления(Тип("Флажок"));
КолонкаФлаг.ДанныеФлажка = "НакладнаяЗакрыта";
КолонкаФлаг.Данные = "";
КолонкаФлаг = ЭлементыФормы.ТаблицаСтатуса.Колонки.Найти("БезПечати");
КолонкаФлаг.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
КолонкаФлаг.УстановитьЭлементУправления(Тип("Флажок"));
КолонкаФлаг.ДанныеФлажка = "БезПечати";
КолонкаФлаг.Данные = "";
КолонкаФлаг = ЭлементыФормы.ТаблицаСтатуса.Колонки.Найти("ИзменениеЦены");
КолонкаФлаг.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
КолонкаФлаг.УстановитьЭлементУправления(Тип("Флажок"));
КолонкаФлаг.ДанныеФлажка = "ИзменениеЦены";
КолонкаФлаг.Данные = "";
КолонкаФлаг = ЭлементыФормы.ТаблицаСтатуса.Колонки.Найти("НакладнаяСКорректировкой");
КолонкаФлаг.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
КолонкаФлаг.УстановитьЭлементУправления(Тип("Флажок"));
КолонкаФлаг.ДанныеФлажка = "НакладнаяСКорректировкой";
КолонкаФлаг.Данные = "";
КонецПроцедуры
Процедура ВыборМЗПриИзменении(Элемент)
СохранитьСтатусыДокументов();
ТаблицаСтатуса.Очистить();
СсылкаМЗ=ВыборМЗ.Ссылка;
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| МаршрутноеЗаданиеДокументыРеализации.Реализация.Номер КАК НомерНакладной,
| МаршрутноеЗаданиеДокументыРеализации.Реализация.Дата КАК ДатаНакладной,
| МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент КАК Контрагент,
| МаршрутноеЗаданиеДокументыРеализации.Ссылка.Номер КАК НомерМаршрутногоЗадания,
| МаршрутноеЗаданиеДокументыРеализации.Реализация.Ссылка КАК Документ,
| МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент,
| МаршрутноеЗаданиеДокументыРеализации.Реализация.СуммаДокумента КАК СуммаНакладной
|ИЗ
| Документ.МаршрутноеЗадание.ДокументыРеализации КАК МаршрутноеЗаданиеДокументыРеализации
|ГДЕ
| МаршрутноеЗаданиеДокументыРеализации.Ссылка = &Ссылка
| И НЕ МаршрутноеЗаданиеДокументыРеализации.Реализация.ПометкаУдаления";
Запрос.УстановитьПараметр("Ссылка",СсылкаМЗ);
Выборка=Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
НовСтрока = ТаблицаСтатуса.Добавить();
НовСтрока.НомерНакладной = Выборка.НомерНакладной;
НовСтрока.ДатаНакладной = Выборка.ДатаНакладной;
НовСтрока.Контрагент = Выборка.Контрагент;
НовСтрока.СуммаНакладной = Выборка.СуммаНакладной;
НовСтрока.НомерМаршрутногоЗадания = Выборка.НомерМаршрутногоЗадания;
НовСтрока.Документ = Выборка.Документ;
КонецЦикла;
ЗагрузитьСтатусыДокументов();
КонецПроцедуры
Процедура ПриЗакрытии()
СохранитьСтатусыДокументов();
КонецПроцедуры
ПоказатьБыло бы хорошо,если смогли бы привести пример кода,как это сделать
Прикрепленные файлы:
Есть пример, правда он для упр. форм, но может и прокатит
Программно на форме создаётся форма, заполняется данными, а при следующем открытии восстанавливается.
Все данные открываются и записываются под одним и тем же пользователем в привилегированном режиме.
Программно на форме создаётся форма, заполняется данными, а при следующем открытии восстанавливается.
Все данные открываются и записываются под одним и тем же пользователем в привилегированном режиме.
&НаСервере
Процедура СохранитьНастройки()
УстановитьПривилегированныйРежим(Истина);
Настройки = Новый Соответствие;
МТЗ = РеквизитФормыВЗначение("ТЗ",Тип("ТаблицаЗначений"));
Настройки.Вставить("МТЗ", ЗначениеВСтрокуВнутр(МТЗ));
Если ЗначениеЗаполнено(объект.УИД_Формы) тогда
ХранилищеНастроекДанныхФорм.Удалить(объект.УИД_Формы,"ЗаполнениеКроссТаблицы","Администратор");
Иначе
Объект.УИД_Формы = новый УникальныйИдентификатор;
КонецЕсли;
ХранилищеНастроекДанныхФорм.Сохранить(Объект.УИД_Формы ,"ЗаполнениеКроссТаблицы", Настройки,,"Администратор");
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
Показать&НаСервере
Процедура ВосстановитьНастройки()
УстановитьПривилегированныйРежим(Истина);
ЗначениеНастроек = ХранилищеНастроекДанныхФорм.Загрузить(объект.УИД_Формы,"ЗаполнениеКроссТаблицы",,"Администратор");
Если ТипЗнч(ЗначениеНастроек) = Тип("Соответствие") Тогда
м = ЗначениеИзСтрокиВнутр(ЗначениеНастроек.Получить("МТЗ"));
// ... Восстанавливаем и прорисовываем форму
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
Показать
(15) Посмотрите в синтакс помощнике есть там ХранилищеНастроекДанныхФорм. Если есть то можно.
Смысл в том, что таблицы как объекта на форме нет, в момент открытия он отрисовывается програмнно, пользователь заполняет колонки и при записи документа, данная таблица сохраняется в ХранилищеНастроекДанныхФорм. Документ закрывается, форма перестаёт существовать, и таблица удаляется.
При повторном открытии идет попытка чтения из хранилища сохранненых данных для открываемого документа, и если данные есть, идет заполнение таблицы.
Смысл в том, что таблицы как объекта на форме нет, в момент открытия он отрисовывается програмнно, пользователь заполняет колонки и при записи документа, данная таблица сохраняется в ХранилищеНастроекДанныхФорм. Документ закрывается, форма перестаёт существовать, и таблица удаляется.
При повторном открытии идет попытка чтения из хранилища сохранненых данных для открываемого документа, и если данные есть, идет заполнение таблицы.
Содержит объект, с помощью которого осуществляется чтение, изменение, добавление и удаление настроек данных форм.
Если в свойстве конфигурации "ХранилищеНастроекДанныхФорм" не указано хранилище, то содержит объект СтандартноеХранилищеНастроекМенеджер, предназначенный для чтения, изменения, добавления и удаления настроек данных форм.
Если в свойстве конфигурации "ХранилищеНастроекДанныхФорм" указано хранилище, созданное в конфигурации, то содержит объект ХранилищеНастроекМенеджер.<Имя хранилища>.
Если в свойстве конфигурации "ХранилищеНастроекДанныхФорм" не указано хранилище, то содержит объект СтандартноеХранилищеНастроекМенеджер, предназначенный для чтения, изменения, добавления и удаления настроек данных форм.
Если в свойстве конфигурации "ХранилищеНастроекДанныхФорм" указано хранилище, созданное в конфигурации, то содержит объект ХранилищеНастроекМенеджер.<Имя хранилища>.
(20)
СтандартноеХранилищеНастроекМенеджер (StandardSettingsStorageManager)
Сохранить (Save)
Синтаксис:
Сохранить(<КлючОбъекта>, <КлючНастроек>, <Настройки>, <ОписаниеНастроек>, <ИмяПользователя>)
ЗаполнениеКроссТаблицы - <КлючНастроек> (необязательный)
Тип: Строка.
Ключ сохраняемых настроек.
Значение по умолчанию: Пустая строка.
С этим ключом сохраняю настройку форму.
(22) Ничего добавлять не нужно, у конфигурации оно уже есть по умолчанию.
СтандартноеХранилищеНастроекМенеджер (StandardSettingsStorageManager)
Сохранить (Save)
Синтаксис:
Сохранить(<КлючОбъекта>, <КлючНастроек>, <Настройки>, <ОписаниеНастроек>, <ИмяПользователя>)
ЗаполнениеКроссТаблицы - <КлючНастроек> (необязательный)
Тип: Строка.
Ключ сохраняемых настроек.
Значение по умолчанию: Пустая строка.
С этим ключом сохраняю настройку форму.
(22) Ничего добавлять не нужно, у конфигурации оно уже есть по умолчанию.
(26) ЗаполнениеКроссТаблицы этим значением я заполняю этот параметр.
СтандартноеХранилищеНастроекМенеджер .Сохранить(<КлючОбъекта>, <КлючНастроек>, <Настройки>, <ОписаниеНастроек>, <ИмяПользователя>)
сюда можно любую строку загнать, т.к. это просто представление имени настройки
СтандартноеХранилищеНастроекМенеджер .Сохранить(<КлючОбъекта>, <КлючНастроек>, <Настройки>, <ОписаниеНастроек>, <ИмяПользователя>)
сюда можно любую строку загнать, т.к. это просто представление имени настройки
(12)
здесь таблицу значений преобразовываем в произвольный тип и передаем в "настройки"?
РеквизитФормыВЗначение есть только в управляемом форме.Не знаете, для обычной формы есть что-то типа этого, который преобразовывает в произвольный тип? Если это конечно обязательно
Настройки = Новый Соответствие;
МТЗ = РеквизитФормыВЗначение("ТЗ",Тип("ТаблицаЗначений"));
Настройки.Вставить("МТЗ", ЗначениеВСтрокуВнутр(МТЗ));
МТЗ = РеквизитФормыВЗначение("ТЗ",Тип("ТаблицаЗначений"));
Настройки.Вставить("МТЗ", ЗначениеВСтрокуВнутр(МТЗ));
здесь таблицу значений преобразовываем в произвольный тип и передаем в "настройки"?
РеквизитФормыВЗначение есть только в управляемом форме.Не знаете, для обычной формы есть что-то типа этого, который преобразовывает в произвольный тип? Если это конечно обязательно
(28) в обычных ничего не надо преобразовывать
НЕ НАДО - преобразование из данных формы коллекция в Таблицу значений
НАДО - преобразование таблицы в строку, для последующего сохранения в настройках.
НЕ НАДО
МТЗ = РеквизитФормыВЗначение("ТЗ",Тип("ТаблицаЗначений"));
НАДО
Настройки.Вставить("МТЗ", ЗначениеВСтрокуВнутр(МТЗ));
(12)
В отладке "м" видно, что заполняется данными таблица статуса, но ничего не сохраняется.
вот полный код:
Что делаю не так?
Процедура СохранитьСтатусыДокументов()
УстановитьПривилегированныйРежим(Истина);
Настройки= Новый Соответствие;
Настройки.Вставить("ТаблицаСтатуса",ЗначениеВСтрокуВнутр(ТаблицаСтатуса));
ЗагрузитьСтатусыДокументов();
ХранилищеНастроекДанныхФорм.Сохранить("Форма","ЗаполнениеКроссТаблицы" ,Настройки ,,"Админ");
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
Процедура ЗагрузитьСтатусыДокументов()
УстановитьПривилегированныйРежим(Истина);
ЗначениеНастроек = ХранилищеНастроекДанныхФорм.Загрузить("Форма","ЗаполнениеКроссТаблицы",,"Админ");
м = ЗначениеИзСтрокиВнутр(ЗначениеНастроек.Получить("ТаблицаСтатуса"));
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
ПоказатьВ отладке "м" видно, что заполняется данными таблица статуса, но ничего не сохраняется.
вот полный код:
Процедура СохранитьСтатусыДокументов()
УстановитьПривилегированныйРежим(Истина);
Настройки= Новый Соответствие;
Настройки.Вставить("ТаблицаСтатуса",ЗначениеВСтрокуВнутр(ТаблицаСтатуса));
ЗагрузитьСтатусыДокументов();
ХранилищеНастроекДанныхФорм.Сохранить("Форма","ЗаполнениеКроссТаблицы" ,Настройки ,,"Админ");
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
Процедура ЗагрузитьСтатусыДокументов()
УстановитьПривилегированныйРежим(Истина);
ЗначениеНастроек = ХранилищеНастроекДанныхФорм.Загрузить("Форма","ЗаполнениеКроссТаблицы",,"Админ");
м = ЗначениеИзСтрокиВнутр(ЗначениеНастроек.Получить("ТаблицаСтатуса"));
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
Процедура КнопкаЗаписатьНажатие(Кнопка)
НаборЗаписей = РегистрыСведений.СтатусыДокументов.СоздатьНаборЗаписей();
Для Каждого Строка Из ТаблицаСтатуса Цикл
мУникальный = Новый УникальныйИдентификатор;
НаборЗаписей.Отбор.Документ.Установить(Строка.Документ);
НаборЗаписей.Отбор.Документ.Использование = Истина;
НаборЗаписей.Отбор.УникальныйИдентификатор.Установить(мУникальный);
НаборЗаписей.Прочитать();
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.УникальныйИдентификатор = мУникальный;
НоваяЗапись.Период =ТекущаяДата();
НоваяЗапись.Пользователь =ПараметрыСеанса.ТекущийПользователь;
ЗаполнитьЗначенияСвойств(НоваяЗапись,Строка);
НаборЗаписей.Записать(Ложь);
КонецЦикла;
КонецПроцедуры
Процедура ПриОткрытии()
Таблица=ТаблицаСтатуса;
Таблица.Колонки.Добавить("Вернул", Новый ОписаниеТипов("Булево"));
Таблица.Колонки.Добавить("НакладнаяЗакрыта", Новый ОписаниеТипов("Булево"),"Накладная закрыта");
Таблица.Колонки.Добавить("БезПечати", Новый ОписаниеТипов("Булево"),"Без печати");
Таблица.Колонки.Добавить("ИзменениеЦены", Новый ОписаниеТипов("Булево",),"Изменение цены");
Таблица.Колонки.Добавить("НакладнаяСКорректировкой", Новый ОписаниеТипов("Булево"),"Накладная с корректировкой");
Таблица.Колонки.Добавить("НомерНакладной", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(30)),"Номер накладной");
Таблица.Колонки.Добавить("ДатаНакладной", Новый ОписаниеТипов("Дата", Новый КвалификаторыДаты(ЧастиДаты.Дата)),"Дата накладной");
Таблица.Колонки.Добавить("Контрагент", Новый ОписаниеТипов("СправочникСсылка.Контрагенты"));
Таблица.Колонки.Добавить("СуммаНакладной", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3)),"Сумма накладной");
Таблица.Колонки.Добавить("НомерМаршрутногоЗадания", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(20)),"Номер маршрутного задания");
Таблица.Колонки.Добавить("Документ", Новый ОписаниеТипов("ДокументСсылка.РеализацияТоваровУслуг"));
Таблица.Колонки.Добавить("Комментарий", Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(200)));
ЭлементыФормы.ТаблицаСтатуса.СоздатьКолонки();
КолонкаФлаг = ЭлементыФормы.ТаблицаСтатуса.Колонки.Найти("Вернул");
КолонкаФлаг.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
КолонкаФлаг.УстановитьЭлементУправления(Тип("Флажок"));
КолонкаФлаг.ДанныеФлажка = "Вернул";
КолонкаФлаг.Данные = "";
КолонкаФлаг = ЭлементыФормы.ТаблицаСтатуса.Колонки.Найти("НакладнаяЗакрыта");
КолонкаФлаг.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
КолонкаФлаг.УстановитьЭлементУправления(Тип("Флажок"));
КолонкаФлаг.ДанныеФлажка = "НакладнаяЗакрыта";
КолонкаФлаг.Данные = "";
КолонкаФлаг = ЭлементыФормы.ТаблицаСтатуса.Колонки.Найти("БезПечати");
КолонкаФлаг.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
КолонкаФлаг.УстановитьЭлементУправления(Тип("Флажок"));
КолонкаФлаг.ДанныеФлажка = "БезПечати";
КолонкаФлаг.Данные = "";
КолонкаФлаг = ЭлементыФормы.ТаблицаСтатуса.Колонки.Найти("ИзменениеЦены");
КолонкаФлаг.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
КолонкаФлаг.УстановитьЭлементУправления(Тип("Флажок"));
КолонкаФлаг.ДанныеФлажка = "ИзменениеЦены";
КолонкаФлаг.Данные = "";
КолонкаФлаг = ЭлементыФормы.ТаблицаСтатуса.Колонки.Найти("НакладнаяСКорректировкой");
КолонкаФлаг.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
КолонкаФлаг.УстановитьЭлементУправления(Тип("Флажок"));
КолонкаФлаг.ДанныеФлажка = "НакладнаяСКорректировкой";
КолонкаФлаг.Данные = "";
КонецПроцедуры
Процедура ВыборМЗПриИзменении(Элемент)
СохранитьСтатусыДокументов();
ТаблицаСтатуса.Очистить();
СсылкаМЗ=ВыборМЗ.Ссылка;
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| МаршрутноеЗаданиеДокументыРеализации.Реализация.Номер КАК НомерНакладной,
| МаршрутноеЗаданиеДокументыРеализации.Реализация.Дата КАК ДатаНакладной,
| МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент КАК Контрагент,
| МаршрутноеЗаданиеДокументыРеализации.Ссылка.Номер КАК НомерМаршрутногоЗадания,
| МаршрутноеЗаданиеДокументыРеализации.Реализация.Ссылка КАК Документ,
| МаршрутноеЗаданиеДокументыРеализации.Реализация.Контрагент,
| МаршрутноеЗаданиеДокументыРеализации.Реализация.СуммаДокумента КАК СуммаНакладной
|ИЗ
| Документ.МаршрутноеЗадание.ДокументыРеализации КАК МаршрутноеЗаданиеДокументыРеализации
|ГДЕ
| МаршрутноеЗаданиеДокументыРеализации.Ссылка = &Ссылка
| И НЕ МаршрутноеЗаданиеДокументыРеализации.Реализация.ПометкаУдаления";
Запрос.УстановитьПараметр("Ссылка",СсылкаМЗ);
Выборка=Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
НовСтрока = ТаблицаСтатуса.Добавить();
НовСтрока.НомерНакладной = Выборка.НомерНакладной;
НовСтрока.ДатаНакладной = Выборка.ДатаНакладной;
НовСтрока.Контрагент = Выборка.Контрагент;
НовСтрока.СуммаНакладной = Выборка.СуммаНакладной;
НовСтрока.НомерМаршрутногоЗадания = Выборка.НомерМаршрутногоЗадания;
НовСтрока.Документ = Выборка.Документ;
КонецЦикла;
ЗагрузитьСтатусыДокументов();
КонецПроцедуры
Процедура ПриЗакрытии()
СохранитьСтатусыДокументов();
КонецПроцедуры
ПоказатьЧто делаю не так?
(40)
тут есть ваша таблица?
ЗначениеНастроек = ХранилищеНастроекДанныхФорм.Загрузить("Форма","ЗаполнениеКроссТаблицы",,"Админ");
м = ЗначениеИзСтрокиВнутр(ЗначениеНастроек.Получить("ТаблицаСтатуса"));
В отладке "м" видно, что заполняется данными таблица статуса, но ничего не сохраняется.
тут есть ваша таблица?
ЗначениеНастроек = ХранилищеНастроекДанныхФорм.Загрузить("Форма","ЗаполнениеКроссТаблицы",,"Админ");
м = ЗначениеИзСтрокиВнутр(ЗначениеНастроек.Получить("ТаблицаСтатуса"));
(44) чтобы восстанавливать данные текущего документа нужен уникальный идентификатор, по которому этот документ можно идентифицировать, в моём примере
это реквизит документа. объект.УИД_Формы
а у Вас настройки сохраняются в текстовое представлние одно и тоже "Форма", потому перезатираются.
Создайте реквизит документа, и туда пишите УИД, тогда уникальность каждого документа обеспечена.
это реквизит документа. объект.УИД_Формы
Если ЗначениеЗаполнено(объект.УИД_Формы)тогда
ХранилищеНастроекДанныхФорм.Удалить(объект.УИД_Формы,"ЗаполнениеКроссТаблицы","Администратор");
Иначе
Объект.УИД_Формы = новый УникальныйИдентификатор;
КонецЕсли;
ХранилищеНастроекДанныхФорм.Сохранить(Объект.УИД_Формы ,"ЗаполнениеКроссТаблицы", Настройки,,"Администратор");
а у Вас настройки сохраняются в текстовое представлние одно и тоже "Форма", потому перезатираются.
ХранилищеНастроекДанныхФорм.Сохранить("Форма","ЗаполнениеКроссТаблицы" ,Настройки ,,"Админ");
Создайте реквизит документа, и туда пишите УИД, тогда уникальность каждого документа обеспечена.
(47) нельзя просто в обработке каждому документу давать уникальный идентификатор, который только для обработки будет, а в сами реквизиты документа ничего не добавлять? Как было сделано у меня в коде. У меня в коде , обработка присваивала каждому документу код, без добавления реквизита в сам документ конфигурации
(47) статусы , проставленные флажками в сам документ не записываются, а записываются в регистр сведений. Смысл обработки в том,чтобы флажками проставить статусы документов, например документ в пути, эти статусы фиксируются в РС. И чтобы эти поставленные статусы видели все пользователи, которые открыли обработку
Можешь попробовать подключить обработку как дополнительную.
Там в справочнике дополнительных настроек есть реквизит "ХранилищеНастроек" типа Хранилище значения.
Можешь при открытии формы получать из ссылки на доп.обработку значения из этого хранилища и, если нужно, сохранять в него в произвольный момент или при закрытии.
Там в справочнике дополнительных настроек есть реквизит "ХранилищеНастроек" типа Хранилище значения.
Можешь при открытии формы получать из ссылки на доп.обработку значения из этого хранилища и, если нужно, сохранять в него в произвольный момент или при закрытии.
(31)
На форме обработки добавляете реквизит типа СправочникСсылка.ДополнительныеОтчетыИОбработки
При создании формы на сервере код:
Теперь, у Вас в переменной "ОбъектСсылка" будет ссылка на обработку (если она, конечно, была открыта как дополнительная обработка, а не через Файл/открыть)
Дальше, можете написать
Теперь у Вас в "ХранилищеНастроек" будут настройки, которые Вы сохранили ранее.
Сохранение, опять же в таком порядке:
На форме обработки добавляете реквизит типа СправочникСсылка.ДополнительныеОтчетыИОбработки
При создании формы на сервере код:
Параметры.Свойство("ДополнительнаяОбработкаСсылка", ОбъектСсылка);
Теперь, у Вас в переменной "ОбъектСсылка" будет ссылка на обработку (если она, конечно, была открыта как дополнительная обработка, а не через Файл/открыть)
Дальше, можете написать
ХранилищеНастроек = ОбъектСсылка.ХранилищеНастроек.Получить();
Теперь у Вас в "ХранилищеНастроек" будут настройки, которые Вы сохранили ранее.
Сохранение, опять же в таком порядке:
Если ЗначениеЗаполнено(ОбъектСсылка) Тогда
ЗначенияНастроек = Новый Структура("КлючНастройки", "ЗначениеНастройки");
ОбработкаОбъект = ОбъектСсылка.ПолучитьОбъект();
ОбработкаОбъект.ХранилищеНастроек = Новый ХранилищеЗначения(ЗначенияНастроек, Новый СжатиеДанных(9));
ОбработкаОбъект.Записать();
КонецЕсли;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот