Есть табличная часть РС. на этой же форме есть ТЗ в которую должно заноситься номенклатура и количество этой номенклатуры в списке на форме. К примеру пользователь установил отбор, в форме списка вывелись строки, нужно посчитать сколько строк вывелось и с какой номенклатурой.
пишу вот так:
Пример1:
//Процедура РегистрСведенийСписокПриПолученииДанных(Элемент, ОформленияСтрок)
ТЧИнформация.Очистить();
СтрокаТЧ = ТЧИнформация.Добавить();
СтрокаТЧ.Номенклатура = ОформленияСтрок[0].ДанныеСтроки.НоменклатураПрибытие;
СтрокаТЧ.Количество = 1;
ТЧИнформация.Свернуть("Номенклатура","Количество");
КонецПроцедуры
Пример2:
Процедура РегистрСведенийСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
//ТЧИнформация.Очистить();
СтрокаТЧ = ТЧИнформация.Добавить();
СтрокаТЧ.Номенклатура = ДанныеСтроки.НоменклатураПрибытие;
СтрокаТЧ.Количество = 1;
ТЧИнформация.Свернуть("Номенклатура","Количество");
КонецПроцедуры
Думаю Вы имеете ввиду вот это : http://pro1c.org.ua/redirect.php?http://kb.mista.ru/article.php?id=471
Процедура РегистрСведенийСписокПриПолученииДанных(Элемент, ОформленияСтрок)
Источник = Элемент.Значение;
//Запрос = Новый Запрос;
ОтборСтрок = Элемент.Значение.Отбор;
ПостроительЗапроса = Новый ПостроительЗапроса;
ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(Источник);
// Добавляются необходимые отборы, такие же как в отборы в табличной части.
Для Каждого ЭлементОтбора Из ОтборСтрок Цикл
Если ЭлементОтбора.Использование Тогда
НовыйОтбор = ПостроительЗапроса.Отбор;
НовыйОтбор.Добавить(ЭлементОтбора.Имя); // ОШИБКА НЕ УДАЕТСЯ ДОБАВИТЬ!
НовыйОтбор.Использование = Истина;
НовыйОтбор.ВидСравнения = ЭлементОтбора.ВидСравнения; // нужный вид сравнения
НовыйОтбор.ЗначениеС = ЭлементОтбора.ЗначениеС;
НовыйОтбор.ЗначениеПо = ЭлементОтбора.ЗначениеПо;
НовыйОтбор.Значение = ЭлементОтбора.Значение;
КонецЕсли;
КонецЦикла;
ПостроительЗапроса.Выполнить ();
Результат = ПостроительЗапроса.Результат.Выгрузить(); // отобранные строки типа РезультатЗапроса
Если ЗначениеЗаполнено(Результат) Тогда
ТабличноеПолеИнформация = Результат;
ТабличноеПолеИнформация.Колонки.Добавить("КоличествоВагонов",,"Количество вагонов",);
Для каждого Строка Из ТабличноеПолеИнформация Цикл
Строка.КоличествоВагонов = 1;
КонецЦикла;
ТабличноеПолеИнформация.Свернуть("НоменклатураПрибытие","ВесПоПрибытию, КоличествоВагонов");
КонецЕсли;
КонецПроцедуры
Процедура РегистрСведенийСписокПриПолученииДанных(Элемент, ОформленияСтрок)
Источник = Элемент.Значение;
ОтборСтрок = Элемент.Значение.Отбор;
ПостроительЗапроса = Новый ПостроительЗапроса;
ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(Источник);
ПостроительЗапроса.ДоступныеПоля.Добавить("КоличествоВагонов",,,);
ПостроительЗапроса.ДоступныеПоля.КоличествоВагонов = 1;
Для Каждого НастройкаОтбора Из ПостроительЗапроса.ДоступныеПоля Цикл
НастройкаОтбора.Отбор = Истина;
КонецЦикла;
// Добавляются необходимые отборы, такие же как в отборы в табличной части.
Для Каждого ЭлементОтбора Из ОтборСтрок Цикл
Если ЭлементОтбора.Использование Тогда
//Есть = Истина;
НовыйОтбор = ПостроительЗапроса.Отбор;
НовыйОтбор.Добавить(Строка(ЭлементОтбора.Имя));
НовыйОтбор[ЭлементОтбора.Имя].Использование = Истина;
НовыйОтбор[ЭлементОтбора.Имя].ВидСравнения = ЭлементОтбора.ВидСравнения; // нужный вид сравнения
НовыйОтбор[ЭлементОтбора.Имя].ЗначениеС = ЭлементОтбора.ЗначениеС;
НовыйОтбор[ЭлементОтбора.Имя].ЗначениеПо = ЭлементОтбора.ЗначениеПо;
НовыйОтбор[ЭлементОтбора.Имя].Значение = ЭлементОтбора.Значение;
КонецЕсли;
КонецЦикла;
ПостроительЗапроса.Выполнить ();
Результат = ПостроительЗапроса.Результат.Выгрузить(); // отобранные строки типа РезультатЗапроса
Если ЗначениеЗаполнено(Результат) Тогда
ТабличноеПолеИнформация = Результат;
ТабличноеПолеИнформация.Колонки.Добавить("КоличествоВагонов",,"Количество вагонов",);
Для каждого Строка Из ТабличноеПолеИнформация Цикл
Строка.КоличествоВагонов = 1;
КонецЦикла;
ТабличноеПолеИнформация.Свернуть("НоменклатураПрибытие","ВесПоПрибытию, КоличествоВагонов");
КонецЕсли;
КонецПроцедуры
ПостроительЗапроса = Новый ПостроительЗапроса;
НовыйОтбор = ПостроительЗапроса.Отбор;
НовыйОтбор.Добавить(Строка(ЭлементОтбора.Имя));
НовыйОтбор[ЭлементОтбора.Имя].Использование = Истина;
НовыйОтбор[ЭлементОтбора.Имя].Значение = 1;
НовыйОтбор[ЭлементОтбора.Имя].Использование = Истина;
ПостроительЗапроса = Новый ПостроительЗапроса;
НовыйОтбор = ПостроительЗапроса.Отбор;
НовыйОтбор.Добавить(Строка(ЭлементОтбора.Имя));
НовыйОтбор[ЭлементОтбора.Имя].Использование = Истина;
НовыйОтбор[ЭлементОтбора.Имя].Значение = 1;
НовыйОтбор[ЭлементОтбора.Имя].Использование = Истина;
Процедура РегистрСведенийСписокПриПолученииДанных(Элемент, ОформленияСтрок)
Источник = Элемент.Значение;
ОтборСтрок = Элемент.Значение.Отбор;
ПостроительЗапроса = Новый ПостроительЗапроса;
ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(Источник);
Для Каждого НастройкаОтбора Из ПостроительЗапроса.ДоступныеПоля Цикл
НастройкаОтбора.Отбор = Истина;
КонецЦикла;
// Добавляются необходимые отборы, такие же как в отборы в табличной части.
ОтборЗапроса = ПостроительЗапроса.Отбор;
ОтборЗапроса.Сбросить();
Для Каждого ЭлементОтбора Из ОтборСтрок Цикл
Если ЭлементОтбора.Использование Тогда
НовыйОтбор = ОтборЗапроса.Добавить(Строка(ЭлементОтбора.Имя));
КонецЕсли;
КонецЦикла;
ПостроительЗапроса.Выполнить ();
Результат = ПостроительЗапроса.Результат.Выгрузить(); // отобранные строки типа РезультатЗапроса
Если ЗначениеЗаполнено(Результат) Тогда
ТабличноеПолеИнформация = Результат;
ТабличноеПолеИнформация.Колонки.Добавить("КоличествоВагонов",,"Количество вагонов",);
//Вот тут, подскажите как добавить это поле КоличествоВагонов в построитель запросов со значением "1", чтобы потом в цикле не проставлять эту "1"???
Для каждого Строка Из ТабличноеПолеИнформация Цикл
Строка.КоличествоВагонов = 1;
КонецЦикла;
ТабличноеПолеИнформация.Свернуть("НоменклатураПрибытие","ВесПоПрибытию, КоличествоВагонов");
КонецЕсли;
КонецПроцедуры
тогда после ВЫБРАТЬ вставить текст
Запрос = ПостроительЗапроса.ПолучитьЗапрос();
Запрос.Текст = ....
Запрос.Выполнить()
Запрос = ПостроительЗапроса.ПолучитьЗапрос();
Запрос.Текст = ....
Запрос.Выполнить()
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua