Только начал изучать 1с и это мое первое сообщение, поэтому если что-то не так оформлено напишите, учту в будущем.
1С 8.3.8 (учебная версия)
Не срабатывает группировка по полю в регистре сведений.
Имеется Регистр сведений с наименованием ХарактеристикиПКТест, в нем создана форма списка с наименованием ФормаДобавлениеПК
ХарактеристикиПКТест имеет:
Измерения:
ИнвентарныйНомер
КомплектующиеКатегория
Ресурсы:
Комплектующие
ФормаДобавлениеПК имеет Табличную часть, тип Динамический список (РегистрСведений.ХарактеристикиПКТест.СрезПоследних), запрос произвольный
Имеем документ, в котором есть кнопка с командой КомандаВыбратьПК
В таком варианте группировка не срабатывает.
Если в форме ФормаДобавлениеПК в Динамическом списке в настройках убрать Основную таблицу, то группировка срабатывает.
Но при выборе нужной строки из этой формы в процедуру ПриЗакрытииФормы в переменную РезультатЗакрытия (тип число) имеет в качестве значение число, которое равно номеру строки.
Если Основную таблицу не убирать, то в переменную РезультатЗакрытия (тип РегистрСведенийКлючЗаписи.ХарактеристикиПКТест) имеет в качестве значения РегистрСведенийКлючЗаписи.ХарактеристикиПКТест, из которого можно получить нужную информацию.
Предполагаю, что группировка не проходит, из-за того, что каждая строка имеет свой уникальный ключ.
Просьба помочь с ответами
1) Как решить вопрос с группировкой?
2) Можно ли сделать так, чтобы в переменную РезультатЗакрытия попадала например таблица значений или структура?
1С 8.3.8 (учебная версия)
Не срабатывает группировка по полю в регистре сведений.
Имеется Регистр сведений с наименованием ХарактеристикиПКТест, в нем создана форма списка с наименованием ФормаДобавлениеПК
ХарактеристикиПКТест имеет:
Измерения:
ИнвентарныйНомер
КомплектующиеКатегория
Ресурсы:
Комплектующие
ФормаДобавлениеПК имеет Табличную часть, тип Динамический список (РегистрСведений.ХарактеристикиПКТест.СрезПоследних), запрос произвольный
ВЫБРАТЬ
МАКСИМУМ(ВЫБОР
КОГДА РегистрСведенийХарактеристикиПКТестСрезПоследних.КомплектующиеКатегория = &парПроцессор
ТОГДА РегистрСведенийХарактеристикиПКТестСрезПоследних.Комплектующие
ИНАЧЕ NULL
КОНЕЦ) КАК Процессор,
МАКСИМУМ(ВЫБОР
КОГДА РегистрСведенийХарактеристикиПКТестСрезПоследних.КомплектующиеКатегория = &парМатеринскаяПлата
ТОГДА РегистрСведенийХарактеристикиПКТестСрезПоследних.Комплектующие
ИНАЧЕ NULL
КОНЕЦ) КАК МатеринскаяПлата,
РегистрСведенийХарактеристикиПКТестСрезПоследних.ИнвентарныйНомер
ИЗ
РегистрСведений.ХарактеристикиПКТест.СрезПоследних КАК РегистрСведенийХарактеристикиПКТестСрезПоследних
ГДЕ
РегистрСведенийХарактеристикиПКТестСрезПоследних.КомплектующиеКатегория В (&парПроцессор, &парМатеринскаяПлата)
СГРУППИРОВАТЬ ПО
РегистрСведенийХарактеристикиПКТестСрезПоследних.ИнвентарныйНомер
ПоказатьИмеем документ, в котором есть кнопка с командой КомандаВыбратьПК
&НаКлиенте
Процедура КомандаВыбратьПК(Команда)
Оповещение = Новый ОписаниеОповещения("ПриЗакрытииФормы", ЭтаФорма);
ОткрытьФорму("РегистрСведений.ХарактеристикиПКТест.Форма.ФормаДобавлениеПК",,ЭтаФорма,,,,Оповещение,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаСервере
Процедура ПриЗакрытииФормы(РезультатЗакрытия, ДопПараметры) Экспорт
Если РезультатЗакрытия = Неопределено Тогда
Возврат;
КонецЕсли;
Если ЗначениеЗаполнено(РезультатЗакрытия) Тогда
КонецЕсли;
КонецПроцедуры
ПоказатьВ таком варианте группировка не срабатывает.
Если в форме ФормаДобавлениеПК в Динамическом списке в настройках убрать Основную таблицу, то группировка срабатывает.
Но при выборе нужной строки из этой формы в процедуру ПриЗакрытииФормы в переменную РезультатЗакрытия (тип число) имеет в качестве значение число, которое равно номеру строки.
Если Основную таблицу не убирать, то в переменную РезультатЗакрытия (тип РегистрСведенийКлючЗаписи.ХарактеристикиПКТест) имеет в качестве значения РегистрСведенийКлючЗаписи.ХарактеристикиПКТест, из которого можно получить нужную информацию.
Предполагаю, что группировка не проходит, из-за того, что каждая строка имеет свой уникальный ключ.
Просьба помочь с ответами
1) Как решить вопрос с группировкой?
2) Можно ли сделать так, чтобы в переменную РезультатЗакрытия попадала например таблица значений или структура?
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) в открываемой форме можно предусмотреть формирование нужных данных (хоть ТЗ, хоть структура) и выполнять метод Закрыть с передачей нужных данных.
Из СП:
Из СП:
ФормаКлиентскогоПриложения (ClientApplicationForm)
Закрыть (Close)
Синтаксис:
Закрыть(<ПараметрЗакрытия>)
Параметры:
<ПараметрЗакрытия> (необязательный)
Тип: Произвольный.
Параметр закрытия формы, открытой в модальном режиме. Это значение будет возвращено как результат метода, открывающего форму модально.
В режиме отказа от модальности параметр передается в процедуру, описанную параметром ОписаниеОповещенияОЗакрытии метода ОткрытьФорму или свойством формы ОписаниеОповещенияОЗакрытии.
Значение по умолчанию: Неопределено.
.
Закрыть (Close)
Синтаксис:
Закрыть(<ПараметрЗакрытия>)
Параметры:
<ПараметрЗакрытия> (необязательный)
Тип: Произвольный.
Параметр закрытия формы, открытой в модальном режиме. Это значение будет возвращено как результат метода, открывающего форму модально.
В режиме отказа от модальности параметр передается в процедуру, описанную параметром ОписаниеОповещенияОЗакрытии метода ОткрытьФорму или свойством формы ОписаниеОповещенияОЗакрытии.
Значение по умолчанию: Неопределено.
(5)
Добавил, но ничего не изменилось. Я слаб в запросах, но логически мы же делаем группировку по ИнвентарныеНомера,т.к он встречается несколько раз, а КомплектующиеКатегория наоборот имеют разные значения для ИнвентарныеНомера.
Как писал выше, если очистить поле Основная таблица, то запрос выполняется корректно, получается запрос верный, а когда добавляем Основную таблицу что-то изменяется, возможно добавляется еще какое-то измерение уникальное измерение.
ВЫБРАТЬ
МАКСИМУМ(ВЫБОР
КОГДА РегистрСведенийХарактеристикиПКТестСрезПоследних.КомплектующиеКатегория = &парПроцессор
ТОГДА РегистрСведенийХарактеристикиПКТестСрезПоследних.Комплектующие
ИНАЧЕ NULL
КОНЕЦ) КАК Процессор,
МАКСИМУМ(ВЫБОР
КОГДА РегистрСведенийХарактеристикиПКТестСрезПоследних.КомплектующиеКатегория = &парМатеринскаяПлата
ТОГДА РегистрСведенийХарактеристикиПКТестСрезПоследних.Комплектующие
ИНАЧЕ NULL
КОНЕЦ) КАК МатеринскаяПлата,
РегистрСведенийХарактеристикиПКТестСрезПоследних.ИнвентарныйНомер,
РегистрСведенийХарактеристикиПКТестСрезПоследних.КомплектующиеКатегория
ИЗ
РегистрСведений.ХарактеристикиПКТест.СрезПоследних КАК РегистрСведенийХарактеристикиПКТестСрезПоследних
ГДЕ
РегистрСведенийХарактеристикиПКТестСрезПоследних.КомплектующиеКатегория В (&парПроцессор, &парМатеринскаяПлата)
СГРУППИРОВАТЬ ПО
РегистрСведенийХарактеристикиПКТестСрезПоследних.ИнвентарныйНомер,
РегистрСведенийХарактеристикиПКТестСрезПоследних.КомплектующиеКатегория
ПоказатьДобавил, но ничего не изменилось. Я слаб в запросах, но логически мы же делаем группировку по ИнвентарныеНомера,т.к он встречается несколько раз, а КомплектующиеКатегория наоборот имеют разные значения для ИнвентарныеНомера.
Как писал выше, если очистить поле Основная таблица, то запрос выполняется корректно, получается запрос верный, а когда добавляем Основную таблицу что-то изменяется, возможно добавляется еще какое-то измерение уникальное измерение.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот