powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Выгрузка данных в динамический список формы обработки 1с 8.3
9 сообщений из 9, страница 1 из 1
Выгрузка данных в динамический список формы обработки 1с 8.3
    #39223713
jediAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Делаю конфигурацию в 1с 8.3. Специфика -проектная деятельность. Есть справочники: Объекты(Код, Наименование, ГИП, РПО,СтатусОбъекта),Сотрудники(Код,Наименование...) и т.д. Документы: РаспределительнаяВедомость(Объект, ГИП, РПО, ПланГИП, ПланРПО, ФактГИП, ФактРПО, ОстатокГИП, ОстатокРПО); ОтчетРуководителяПроекта(РуководительПроекта, СтатусРуководителя,ЧасовВОтчете). Типы данных реквизитов:
ГИП,РПО - СправочникСсылкаСотрудники
СтатусОбъекта - ПеречисленияСсылка.СтатусОбъекта
ПланГИП,ПланРПО, ФактГИП, ФактРПО, ОстатокГИП,ОстатокРПО - Число, 10,3
РуководительПроекта - СправочникСсылкаСотрудники
СтатусРуководителя - ПеречисленияСсылка.СтатусРуководителя
ЧасовВОтчете - Число, 10,3
Руководители проектов (ГИП и РПО) должны формировать отчеты - сколько они затратили времени на работу по своим объектам. Дляэтого я добавил обработку с реквизитами: РуководительПроекта - СправочникСсылкаСотрудники; СтатусРуководителяПроекта - ПеречисленияСсылка.СтатусРуководителя;СтатусОбъектов - ПеречисленияСсылка.СтатусОбъекта. Также в реквизиты формы обработки добавил динамический список "ОбъектыДляОтчета",в который должен выводиться перечень объектов в зависимости от выбранного руководителя, статуса руководителя и статуса объектов. Для списка я сделал запрос(Свойство - Объект.НастройкаСписка):
ВЫБРАТЬ РАЗРЕШЕННЫЕ
Объекты.Наименование КАК ШифрОбъекта,
Объекты.НаименованиеПолное КАК НаименованиеОбъекта,
РаспределительнаяВедомость.ВремяГИП,
РаспределительнаяВедомость.ВремяРуководителяПО,
РаспределительнаяВедомость.ФактГИП,
РаспределительнаяВедомость.ФактРПО,
РаспределительнаяВедомость.ОстатокГИП,
РаспределительнаяВедомость.ОстатокРПО,
Объекты.Активность КАК СтатусОбъекта
ИЗ
Справочник.Объекты КАК Объекты
ЛЕВОЕ СОЕДИНЕНИЕ Документ.РаспределительнаяВедомость КАК РаспределительнаяВедомость
ПО (РаспределительнаяВедомость.Объект = Объекты.Ссылка)
ГДЕ
(Объекты.ГИП = &ГИП
И Объекты.Активность = &СтатусОбъекта
ИЛИ Объекты.РуководительПО = &РПО
И Объекты.Активность = &СтатусОбъекта)

в модуле формы обработки написал код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	
	Объект.РуководительПроекта = ПараметрыСеанса.ТекущийПользователь.ФизЛицо;
	//Объект.Подразделение = ПараметрыСеанса.ТекущийПользователь.ФизЛицо.Подразделение;
		УстановитьЗапросПоОбъектам();
	КонецПроцедуры
&НаСервере
Процедура УстановитьЗапросПоОбъектам()
	Если Объект.СтатусРуководителя=Перечисления.СтатусРуководителяПроекта.ГИП Тогда
	ОбъектыДляОтчета.Параметры.УстановитьЗначениеПараметра("ГИП",Объект.РуководительПроекта);
	ОбъектыДляОтчета.Параметры.УстановитьЗначениеПараметра("СтатусОбъекта",Объект.СтатусОбъектов);
КонецЕсли;
Если Объект.СтатусРуководителя=Перечисления.СтатусРуководителяПроекта.РПО Тогда
	ОбъектыДляОтчета.Параметры.УстановитьЗначениеПараметра("РуководительПО",Объект.РуководительПроекта);
	ОбъектыДляОтчета.Параметры.УстановитьЗначениеПараметра("СтатусОбъекта",Объект.СтатусОбъектов);
КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура СтатусОбъектовПриИзменении(Элемент)
	// Вставить содержимое обработчика.
УстановитьЗапросПоОбъектам();	
КонецПроцедуры


При запуске в режиме предприятия получаю ошибку:
Ошибка при выполнении запроса. Ошибка при выполнении запроса.
по причине:
Ошибка получения данных
по причине:
Ошибка создания набора данных "НаборДанныхДинамическогоСписка"
по причине:
Ошибка при исполнении запроса набора данных
по причине:
{(20, 17)}: Не задано значение параметра "ГИП"
(Объекты.ГИП = <<?>>&ГИП

Что не так? где что я неправильно делаю? помогите пожалуйста.
...
Рейтинг: 0 / 0
Выгрузка данных в динамический список формы обработки 1с 8.3
    #39223741
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
условие не срабатывает, параметры не запонляются
...
Рейтинг: 0 / 0
Выгрузка данных в динамический список формы обработки 1с 8.3
    #39223859
jediAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо, разобрался
...
Рейтинг: 0 / 0
Выгрузка данных в динамический список формы обработки 1с 8.3
    #39227233
jediAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сделал, но неправильно я логику выгрузки. Выгружаются все объекты, где выбранный сотрудник или ГИП или РПО. А нужно так: выгрузить записи где сотрудник только в одном статусе - только ГИП или только РПО. Соответственно для ГИП свои реквизиты -ПланГИП,ФактГИП,ОстатокГИП, ПланРПО, ФактРПО, ОстатокРПО. Т.е. надо перезаписывать запрос данных списка в зависимости от выбранного статуса руководителя. Пытался это сделать так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

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


ОбъектыДляотчета - реквизит формы обработки.Тип - динамический список.СтатусОбъектов -реквизит,тип -ПеречисленияСсылка.СтатусыОбъектов.
При выборе статуса объекта на форме обработки в режиме предприятия вылетают сообщения об ошибке:
{Обработка.ВводОтчетовРуководителейПроектов.Форма.Форма.Форма(11)}: Ошибка при вызове метода контекста (УстановитьЗначениеПараметра)
ОбъектыДляОтчета.Параметры.УстановитьЗначениеПараметра("РПО",Объект.РуководительПроекта);
по причине:
Параметр с указанным именем не найден

Что не так? помогите пожалуйста.
...
Рейтинг: 0 / 0
Выгрузка данных в динамический список формы обработки 1с 8.3
    #39227329
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объект.РуководительПроекта не существует?
...
Рейтинг: 0 / 0
Выгрузка данных в динамический список формы обработки 1с 8.3
    #39227334
jediAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
существует - это реквизит обработки, тип - СправочникСсылка.Сотрудники
...
Рейтинг: 0 / 0
Выгрузка данных в динамический список формы обработки 1с 8.3
    #39227429
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jediAlex, у вас в первом запросе нет рпо, а установить его пытаетесь
...
Рейтинг: 0 / 0
Выгрузка данных в динамический список формы обработки 1с 8.3
    #39227443
jediAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сделал так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
	ОбъектыДляОтчета.Параметры.УстановитьЗначениеПараметра("ГИП",Объект.РуководительПроекта);
  	ОбъектыДляОтчета.Параметры.УстановитьЗначениеПараметра("СтатусОбъекта",Объект.СтатусОбъектов);
	Если Объект.СтатусРуководителя=Перечисления.СтатусРуководителяПроекта.ГИП Тогда
	ОбъектыДляОтчета.ТекстЗапроса="ВЫБРАТЬ РАЗРЕШЕННЫЕ
                              |	Объекты.НаименованиеПолное КАК НаименованиеОбъекта,
                              |	РаспределительнаяВедомость.ВремяГИП,
                              |	РаспределительнаяВедомость.ФактГИП,
                              |	РаспределительнаяВедомость.ОстатокГИП,
                              |	Объекты.Активность КАК СтатусОбъекта,
                              |	Объекты.Ссылка КАК ШифрОбъекта
                              |ИЗ
                              |	Справочник.Объекты КАК Объекты
                              |		ЛЕВОЕ СОЕДИНЕНИЕ Документ.РаспределительнаяВедомость КАК РаспределительнаяВедомость
                              |		ПО (РаспределительнаяВедомость.Объект = Объекты.Ссылка)
                              |ГДЕ
                              |	Объекты.ГИП = &ГИП
                              |	И Объекты.Активность = &СтатусОбъекта
                              |
                              |СГРУППИРОВАТЬ ПО
                              |	Объекты.НаименованиеПолное,
                              |	РаспределительнаяВедомость.ВремяГИП,
                              |	РаспределительнаяВедомость.ФактГИП,
                              |	РаспределительнаяВедомость.ОстатокГИП,
                              |	Объекты.Активность,
                              |	Объекты.Ссылка";
							  
	ОбъектыДляОтчета.Параметры.УстановитьЗначениеПараметра("ГИП",Объект.РуководительПроекта);
	ОбъектыДляОтчета.Параметры.УстановитьЗначениеПараметра("СтатусОбъекта",Объект.СтатусОбъектов);
КонецЕсли;
Если Объект.СтатусРуководителя=Перечисления.СтатусРуководителяПроекта.РПО Тогда
ОбъектыДляОтчета.Параметры.УстановитьЗначениеПараметра("РПО",Объект.РуководительПроекта);	
ОбъектыДляОтчета.ТекстЗапроса="ВЫБРАТЬ РАЗРЕШЕННЫЕ
                              |	Объекты.НаименованиеПолное КАК НаименованиеОбъекта,
                              |	РаспределительнаяВедомость.ВремяРуководителяПО,
                              |	РаспределительнаяВедомость.ФактРПО,
                              |	РаспределительнаяВедомость.ОстатокРПО,
                              |	Объекты.Активность КАК СтатусОбъекта,
                              |	Объекты.Ссылка КАК ШифрОбъекта
                              |ИЗ
                              |	Справочник.Объекты КАК Объекты
                              |		ЛЕВОЕ СОЕДИНЕНИЕ Документ.РаспределительнаяВедомость КАК РаспределительнаяВедомость
                              |		ПО (РаспределительнаяВедомость.Объект = Объекты.Ссылка)
                              |ГДЕ
                              |	Объекты.РуководительПО = &РПО
                              |	И Объекты.Активность = &СтатусОбъекта
                              |
                              |СГРУППИРОВАТЬ ПО
                              |	Объекты.НаименованиеПолное,
                              |	РаспределительнаяВедомость.ВремяРуководителяПО,
                              |	РаспределительнаяВедомость.ФактРПО,
                              |	РаспределительнаяВедомость.ОстатокРПО,
                              |	Объекты.Активность,
                              |	Объекты.Ссылка";
	ОбъектыДляОтчета.Параметры.УстановитьЗначениеПараметра("РПО",Объект.РуководительПроекта);
	ОбъектыДляОтчета.Параметры.УстановитьЗначениеПараметра("СтатусОбъекта",Объект.СтатусОбъектов);
КонецЕсли;
КонецПроцедуры


ругается при запуске приложения:Ошибка при выполнении запроса. Ошибка при выполнении запроса.
по причине:
Ошибка получения данных
по причине:
Ошибка создания набора данных "НаборДанныхДинамическогоСписка"
по причине:
Ошибка при исполнении запроса набора данных
по причине:
{(14, 17)}: Не задано значение параметра "ГИП"
(Объекты.ГИП = <<?>>&ГИП
...
Рейтинг: 0 / 0
Выгрузка данных в динамический список формы обработки 1с 8.3
    #39227447
jediAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в свойстве "Настройка списка" самого реквизита лежит запрос:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	Объекты.НаименованиеПолное КАК НаименованиеОбъекта,
	РаспределительнаяВедомость.ВремяГИП КАК ПланГИП,
	РаспределительнаяВедомость.ФактГИП,
	РаспределительнаяВедомость.ОстатокГИП,
	Объекты.Активность КАК СтатусОбъекта,
	Объекты.Ссылка КАК ШифрОбъекта,
	РаспределительнаяВедомость.ВремяРуководителяПО КАК ПланРПО,
	РаспределительнаяВедомость.ФактРПО,
	РаспределительнаяВедомость.ОстатокРПО
ИЗ
	Справочник.Объекты КАК Объекты
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.РаспределительнаяВедомость КАК РаспределительнаяВедомость
		ПО (РаспределительнаяВедомость.Объект = Объекты.Ссылка)
ГДЕ
	(Объекты.ГИП = &ГИП
				И Объекты.Активность = &СтатусОбъекта
			ИЛИ Объекты.РуководительПО = &РПО
				И Объекты.Активность = &СтатусОбъекта)

СГРУППИРОВАТЬ ПО
	Объекты.Ссылка,
	РаспределительнаяВедомость.ВремяРуководителяПО,
	РаспределительнаяВедомость.ВремяГИП,
	РаспределительнаяВедомость.ФактГИП,
	РаспределительнаяВедомость.ОстатокГИП,
	Объекты.Активность,
	РаспределительнаяВедомость.ФактРПО,
	РаспределительнаяВедомость.ОстатокРПО,
	Объекты.НаименованиеПолное


По условиюзадачи,текс то запроса нужно менять в зависимости от выбранного статуса руководителя и статуса объекта... Не задавать запрос в настройке реквизита платформа не дает. Ругается "Ожидается слово ВЫБРАТЬ..."
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Выгрузка данных в динамический список формы обработки 1с 8.3
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]