Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 апр 2024, 12:05

Данные не попадают в элементы формы

Автор Михаил Демин, 29 апр 2016, 12:20

0 Пользователей и 1 гость просматривают эту тему.

Михаил Демин

Хочу сделать чтоб данные из настроек пользователя автоматически подставлялись в нужные поля формы списка ЧекаККМ (1с.Розница).
А именно Магазин, КассаККМ.
Создаю процедуру в модуле формы списка и вызываю ее из процедуры ПриОткрытии
Запрос = Новый Запрос;
Запрос.Текст ="ВЫБРАТЬ
              | НастройкиПользователей.Значение КАК Значение,
              | НастройкиПользователей.Магазин КАК Магазин
              |ИЗ
              | РегистрСведений.НастройкиПользователей КАК НастройкиПользователей
              |ГДЕ
              | НастройкиПользователей.Настройка.Наименование = &Наименование
              | И НастройкиПользователей.Пользователь.Наименование = &Пользователь" ;
Запрос.УстановитьПараметр("Пользователь", Строка(Пользователи.ТекущийПользователь()));  
Запрос.УстановитьПараметр("Наименование", "Касса ККМ");
Результат = Запрос.Выполнить();
Выборка=Результат.Выбрать();
Выборка.Следующий();

   Сообщить(Строка(Выборка.Магазин)+Строка(Выборка.Значение)); // сообщение отображается
   ОтборМагазин =Выборка.Магазин;
   ОтборКассаККМ=Выборка.Значение;


Но ничего не происходит. Что  я не так делаю?

Rasty

версия розницы? и что такое ОтборМагазин?
Добавлено: 29 апр 2016, 12:30


http://novichok1c.ru/programmnoe-sozdanie-otbora-v-dinamicheskom-spiske

Статья: Программное создание отбора в динамическом списке

Опубликовано пт, 09/08/2013 - 12:02 пользователем guru

Для установки отбора в динамическом списке используется свойство Отбор.

Добавление нового элемента отбора осуществляется следующим образом:

ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

Для того чтобы новый отбор начал работать необходимо установить у элемента отбора свойства ЛевоеЗначение, ВидСравнения и ПравоеЗначение, а также установить свойство Использование в Истина.

ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Поле1");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = Значение1;

Кроме простых условий в отборе возможно создание условий по нескольким полям. При чём как по условию "И", так и по условиям "Или" и "Не". Для данной операции используется специальный тип данных ГруппаЭлементовОтбораКомпоновкиДанных.

ГруппаОтбора = Список.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;

ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.Родитель = ГруппаОтбора;
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Поле1");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = Значение1;

ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.Родитель = ГруппаОтбора;
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Поле2");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = Значение2;
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Михаил Демин

Розница 8. Магазин отделочных и строительных материалов 2.0.8.12
ОтборМагазин - Поле в форме списка.
http://hkar.ru/Igxv

Rasty

у ОтборМагазин 100% есть событие при изменении, его надо вызывать после того как вы его заполняете, и нужно ваш код писать в самый конец процедуры ПриОткрытии()
хотя вроде в 2.0 есть же стандартный функционал сохранения пользовательских настреок
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Михаил Демин

Код пишу и так в конце. В моей конфе почемуто эти поля не заполняются автоматичеси. Попробую вызвать "при изменении".

Михаил Демин

Не получилось....
Пробовал так
&НаКлиенте
Процедура ПриОткрытии(Отказ, Элемент)

УстановитьДоступностьКомандСозданияДокументов();

ПолучитДанныеПользователя();
ОтборМагазинПриИзменении(Элемент);
ОтборКассаККМПриИзменении(элемент) ;

КонецПроцедуры  //



&НаСервере
Процедура ПолучитДанныеПользователя()

Запрос = Новый Запрос;
Запрос.Текст ="ВЫБРАТЬ
              | НастройкиПользователей.Значение КАК Значение,
              | НастройкиПользователей.Магазин КАК Магазин
              |ИЗ
              | РегистрСведений.НастройкиПользователей КАК НастройкиПользователей
              |ГДЕ
              | НастройкиПользователей.Настройка.Наименование = &Наименование
              | И НастройкиПользователей.Пользователь.Наименование = &Пользователь" ;
Запрос.УстановитьПараметр("Пользователь", Строка(Пользователи.ТекущийПользователь()));  
Запрос.УстановитьПараметр("Наименование", "Касса ККМ");
Результат = Запрос.Выполнить();
Выборка=Результат.Выбрать();
Выборка.Следующий();

//  Сообщить(Строка(Выборка.Магазин)+Строка(Выборка.Значение));
   ОтборМагазин =Выборка.Магазин;
   ОтборКассаККМ=Выборка.Значение;

КонецПроцедуры

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск