| 
			| 
					
						| Kivals | 
								|  | « Ответ #30 : 13-05-2010 10:44 »  |  | 
 
 ТекстЗапроса = "|Без итогов;
 |ТекущийЭлемент = Справочник.Альбомы.ТекущийЭлемент;
 |ГодВыпуска = Справочник.Альбомы.ГодВыпуска;
 |Альбом = Справочник.Альбомы.Наименование;
 |Условие (ГодВыпуска>1999);
 |Группировка(ТекущийЭлемент);
 |";
Ну а дальше доступайся в цикле к нужным реквизитам черезЗапрос.ТекущийЭлемент.<НазваниеРеквизита> |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Ольга111 
								Интересующийся    Offline | 
								|  | « Ответ #31 : 13-05-2010 14:45 »  |  | 
 
 Простите, пожалуйста, но я не совсем понимаю. Дело в том, что я не программист, вы не могли бы мне по-подробней показать, как надо делать. Пока я только ТекстЗапроса написала, как вы сказали. Процедура Сформировать()Запрос = СоздатьОбъект("Запрос");
 ТекстЗапроса = "
 |Без итогов;
 |ТекущийЭлемент = Справочник.Альбомы.ТекущийЭлемент;
 |ГодВыпуска = Справочник.Альбомы.ГодВыпуска;
 |Альбом = Справочник.Альбомы.Наименование;
 |Условие (ГодВыпуска>1999);
 |Группировка(ТекущийЭлемент);
 |";
 Запрос.Выполнить(ТекстЗапроса);
 Таблица  = СоздатьОбъект("Таблица");
 Таблица.ВывестиСекцию("Заголовок");
А дальше никак не разберусь... |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	|  | 
	| 
			| 
					
						| Kivals | 
								|  | « Ответ #33 :  13-05-2010 17:57 »   |  | 
 
 Ольга111, при всем желании не смогу тебе помочь подредактировать Таблицу, которую ты выводишь, так что разбираться все равно придется... Вот что получается дальше: Запрос.Выполнить(ТекстЗапроса);Пока Запрос.Группировка() Цикл
 //Таб.ВывестиСекцию("Данные");
 Сообщить(Запрос.ТекущийЭлемент.Наименование);
 Сообщить(Запрос.ТекущийЭлемент.Группа);
 КонецЦикла;
Как это прикрутить к таблице - попробуй разобраться сама |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Ольга111 
								Интересующийся    Offline | 
								|  | « Ответ #34 : 13-05-2010 18:39 »  |  | 
 
 Большое вам спасибо, но в строке   Пока Запрос.Группировка() Цикл ошибка: Выражение должно иметь логический тип.  Когда я пишу  Пока Запрос.Группировка()=1 Цикл Выдаёт ошибку - Запрос.Выполнить(ТекстЗапроса); {Обработка.ПопулярноеЗа5лет.Форма.Модуль(22)}: Группировка <<?>> (ТекущийЭлемент); Запро |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Ольга111 
								Интересующийся    Offline | 
								|  | « Ответ #35 : 13-05-2010 18:41 »  |  | 
 
 Запрос.Выполнить(ТекстЗапроса);{Обработка.ПопулярноеЗа5лет.Форма.Модуль(22)}: Группировка <<?>> (ТекущийЭлемент);
 Запро
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Dest 
								Опытный    Offline | 
								|  | « Ответ #36 : 14-05-2010 03:18 »  |  | 
 
 |ТекущийЭлемент = Справочник.Альбомы.ТекущийЭлемент;"ТекущийЭлемент" - зарезервированное слово. Попробуй поменять, например на "ТекущийЭл" |ТекущийЭл = Справочник.Альбомы.ТекущийЭлемент; |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Ольга111 
								Интересующийся    Offline | 
								|  | « Ответ #37 : 14-05-2010 04:43 »  |  | 
 
 Спасибо, буду пробовать...
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Kivals | 
								|  | « Ответ #38 : 14-05-2010 12:29 »  |  | 
 
 Ольга111, я не проверял код - писал прямо в форуме. Про цикл - абсолютно верно, там должно быть "=1" Про группировку - по-моему там скобок не нужно, вот так: 	|Группировка ТекущийЭлемент упорядочить по ТекущийЭлемент.Наименование без групп; |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Ольга111 
								Интересующийся    Offline | 
								|  | « Ответ #39 : 14-05-2010 12:46 »  |  | 
 
 Большое спасибо, с тем заданием разобралась... Если можно, подскажите, пожалуйста, как из табличной части записать данные в справочник? т.е. в табл. части документа есть название и количество, надо, чтобы в справочнике у нужного элемента менялось количество. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Ольга111 
								Интересующийся    Offline | 
								|  | « Ответ #40 : 14-05-2010 13:02 »  |  | 
 
 Я попробовала сделать так: Процедура ОбработкаПроведения()СпрКниги = СоздатьОбъект("Справочник.Книги");
 СпрКниги.Новый();
 ДокПост = СоздатьОбъект("Документ.ПоступлениеКниг");
 
 ДокПост. ВыбратьСтроки();
 Пока ДокПост.ПолучитьСтроку()=1 Цикл
 СпрКниги.ВыбратьСтроки();
 Пока СпрКниги.ПолучитьСтроку()=1 Цикл
 Если СпрКниги.Наименование = НазКниги Тогда
 СпрКниги.Количество = Количество;
 //Скажите, пожалуйста, можно ли написать СпрКниги.Количество = СпрКниги.Количество + Количество ?
 //а то мне надо увеличивать количество в справочнике
 КонецЕсли;
 КонецЦикла;
 КонецЦикла;
 КонецПроцедуры
Но в справочнике ничего не меняется, правда и ошибок тоже нет... |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Kivals | 
								|  | « Ответ #41 : 14-05-2010 13:39 »  |  | 
 
 Ну что не меняется - неудивительно: цикл не выполняется ни разу, т.к. табличной части для вновь созданного объекта нет. Если ты это делаешь в ОбработкеПроведения, то нужно приблизительно так: 	ВыбратьСтроки();Пока ПолучитьСтроку()=1 Цикл
 ...
 КонецЦикла;
А у тебя в табличной части документа только названия, а не ссылка на элемент справочника? |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| Ольга111 
								Интересующийся    Offline | 
								|  | « Ответ #42 : 14-05-2010 13:56 »  |  | 
 
 Спасибо Вам. НазКниги (из табличной части документа) имеет тип Справочник.Книги. Примерно так, как вы показали я уже пробовала: Процедура ОбработкаПроведения()СпрКниги = СоздатьОбъект("Справочник.Книги");
 ВыбратьСтроки();
 Пока ПолучитьСтроку()=1 Цикл   //цикл по таб. части документа
 //перебираю элементы справочника и ищу нужные, чтобы увеличить в них количество
 //Пока СпрКниги.ПолучитьСтроку()=1 Цикл    //когда раскомментировано - ругается, на эту строку: Поле агрегатного
 //объекта не   обнаружено (ПолучитьСтроку)
 Если СпрКниги.Наименование = НазКниги Тогда
 СпрКниги.Количество = Количество;
 КонецЕсли;
 // КонецЦикла;
 КонецЦикла;
 КонецПроцедуры
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	|  | 
	| 
			| 
					
						| Kivals | 
								|  | « Ответ #44 : 14-05-2010 22:37 »  |  | 
 
 	СпрКниги = СоздатьОбъект("Справочник.Книги");ВыбратьСтроки();
 Пока ПолучитьСтроку()=1 Цикл
 СпрКниги.НайтиЭлемент(НазКниги); // НазКниги - это реквизит табл.части
 СпрКниги.Количество = СпрКниги.Количество + Количество; // Можно.
 // Только: 1. При каждом проведении одного и того же документа к-во будет добавляться
 // 2. Не забудь отнять назад в процедуре ОбработкаУдаленияПроведения()
 СпрКниги.Записать();
 КонецЦикла;
 
 |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	| 
			| 
					
						| AndyG 
								Постоялец    Offline | 
								|  | « Ответ #45 : 07-07-2010 09:45 »  |  | 
 
 Ольга111, Та дались вам эти запросы!:(
 Не обязательно использовать их для всего и вся.
 
 Вот вам решение
 
 Таб = СоздатьОбъект("Таблица");
 Таб.ВывестиСекцию("Заголовок");
 Спр=СоздатьОбъект("Справочник.Альбомы");
 Спр.ВыбратьЭлементы();
 Пока Спр.ПолучитьЭлемент()=1 Цикл
 ТекЭл=Спр.ТекущийЭлемент();
 Если ТекЭл.ПометкаУдаления()=1 Тогда Продолжить; КонецЕсли;
 Если ТекЭл.ГодВыпуска<1999 Тогда Продолжить; КонецЕсли;
 //ОПРЕДЕЛИМ Ваши переменные
 альбом=ТекЭл.Альбом;
 ГодВыпуска=ТекЭл.ГодВыпуска;
 //или в таблице заполняем переменными  ТекЭл.Альбом и ТекЭл.ГодВыпуска
 ТаБ.ВывестиСекцию("ТаЧёХочешьВыводи"); //тут точное название горизонтальной секции Вашей таблицы
 КонецЦикла;
 |  
						| 
								|  |  
								| « Последнее редактирование: 07-07-2010 09:54 от AndyG » |  Записан | 
 |  |  | 
	|  |