hiller
							
								Интересующийся 
								
								 
								  Offline
								Пол:   
								жить тоже опасно, говорят это смертельно
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 «  : 29-09-2010 04:39 »   | 
								
								 | 
							  
							 
							Я только начинаю обучаться программированию в 1с. Но так и не смог найти самый простешеи отчет, всегда попадались с наворотами, откуда новичку трудно выявить алгоритм построения. А хотелось бы начать с травиального и постепенно переходить на более сложные конструкци.
  Помогите создать небольшой  отчетик: по нажатию кнопки "сформировать" выводилась таблица с ФИО сотрудников + нужно, чтобы можно было сделать выборку по полу.
  И, если не трудно, то еще объясните конструкцию модуля(т.е какое действие что делает)...Я немного алгоритм понимать начал, но еще раз закрепить не помешает...
 
  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 29-09-2010 05:02 от Алексей1153++ »
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Kivals
							
						 | 
						
							
								  | 
								
									
									 « Ответ #1 : 29-09-2010 04:58 »   | 
								
								 | 
							  
							 
							В плане структуры программы 1С 7.7 построена несколько не логично. Вот несколько вспомнившихся фактов: - реквизиты, добавленные на форму, доступны в модуле просто по идентификатору. При этом если в модуле есть еще и переменная с таким именем - ошибки это не вызовет, но работа будет трудно предсказуема
 - обработка событий формы происходит процедурами с задаными названиями (предопределенными процедурами), в то время как события реквизитов формы (только одно, какое именно - зависит от типа) прописываются в свойствах реквизита.
 - методы объектов разных типов, выполняющих одно и то же действие, называются по-разному
 
 В этом плане 8.Х построена намного лучше. Внимание вопрос: о какой платформе ты говоришь?  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							hiller
							
								Интересующийся 
								
								 
								  Offline
								Пол:   
								жить тоже опасно, говорят это смертельно
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #2 : 29-09-2010 05:01 »   | 
								
								 | 
							  
							 
							7.7 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Kivals
							
						 | 
						
							
								  | 
								
									
									 « Ответ #3 : 29-09-2010 05:42 »   | 
								
								 | 
							  
							 
							Пойдем по порядку: Удалось создать отчет? Удалось разместить реквизит для выбора пола на форме?
  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							hiller
							
								Интересующийся 
								
								 
								  Offline
								Пол:   
								жить тоже опасно, говорят это смертельно
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #4 : 29-09-2010 05:49 »   | 
								
								 | 
							  
							 
							до риквизита особо дело не дошло...я никак не создам модуль...не разобрался еще точно что за чем идет...когда в ход идет создание секций... 
  Добавлено через 8 минут и 32 секунды: Прецедура Сформировать()
  сотр = СоздатьОбъект("Справочник.Сотрудники");
  Таб = СоздатьОбъект(ТаблицаЗначений);
  Таб.НоаваяКолонка("ФИО"); Таб.НоваяКолонка("Должность"); Таб.НоваяКолонка("Подразделение"); Таб.НоваяКолонка("Код");
  //-------------------- Таб.Код=сотр.Код; Таб.Фио=сотр.Наименование; Таб.Подразделение=сотр.Подразделение.Получить(); Таб.Должность=сотр.Должность.Получть();
 
 
 
  дальше я пока запнулся 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 29-09-2010 05:58 от hiller »
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							kiser
							
								Участник 
								
								 
								  Offline
								
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #5 : 29-09-2010 07:02 »   | 
								
								 | 
							  
							 
							Прецедура Сформировать() сотр = СоздатьОбъект("Справочник.Сотрудники"); Таб = СоздатьОбъект(ТаблицаЗначений); Таб.НоаваяКолонка("ФИО"); Таб.НоваяКолонка("Должность"); Таб.НоваяКолонка("Подразделение"); Таб.НоваяКолонка("Код"); //-------------------- Таб.Код=сотр.Код; Таб.Фио=сотр.Наименование; Таб.Подразделение=сотр.Подразделение.Получить(); Таб.Должность=сотр.Должность.Получть(); дальше я пока запнулся
  вроде так ты ничего не выбрал чтоб почитать всех сотрудников из справочника нужно так: Прецедура Сформировать() Таб = СоздатьОбъект("ТаблицаЗначений"); //не забываем указывать тип и размерность Таб.НоаваяКолонка("ФИО,"Строка",50,0); Таб.НоваяКолонка("Должность","Строка",15,0); Таб.НоваяКолонка("Подразделение","Спрвочник.Подразделение"); Таб.НоваяКолонка("Код","Число",5,0);
  сотр = СоздатьОбъект("Справочник.Сотрудники"); сотр.ВыбратьЭлементы(); //выбираем всех из справочника Пока сотр.ПолучитьЭлемент()=1 Цикл //читаем по одному         //проверка 	Если Сотр.ЭтоГруппа() = 1 Тогда 		Продолжить; 	КонецЕсли;
  	//Теперь добавление в таблицу значений 	Таб.НоваяСтрока();	//не забываем про это         Таб.Код=сотр.Код;         Таб.Фио=сотр.Наименование;         //далее периодические реквизиты получаем по дате,          //где ДатаДок – можно указать на форме отчета или создать переменную.         Таб.Подразделение=сотр.Подразделение.Получить(ДатаДок);         Таб.Должность=сотр.Должность.Получить(ДатаДок); КонецЦикла;
  КонецПроцедуры;
   
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 29-09-2010 07:05 от kiser »
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							hiller
							
								Интересующийся 
								
								 
								  Offline
								Пол:   
								жить тоже опасно, говорят это смертельно
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #6 : 29-09-2010 07:29 »   | 
								
								 | 
							  
							 
							с этим, вроде, разобрался, а как теперь правильно передать значение из этой ТаблицыЗначений в таблицу отчета, которая будет открываться после нажатия кнопки "Сформировать"?
  Добавлено через 6 минут и 46 секунд: нужно ли как-то объявлять имя и поля этой таблицы и когда объявлять секции? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 29-09-2010 07:36 от hiller »
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							kiser
							
								Участник 
								
								 
								  Offline
								
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #7 : 29-09-2010 07:54 »   | 
								
								 | 
							  
							 
							да нужно, но тут лучше смотреть на примерах в готовых отчетах или документах. В таблицах глянь как они оформляются и выделяются секции, а в модуле смотри как формируется таблица в коде ищи Таб=СоздатьОбъект("Таблица"); 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							hiller
							
								Интересующийся 
								
								 
								  Offline
								Пол:   
								жить тоже опасно, говорят это смертельно
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #8 : 29-09-2010 09:42 »   | 
								
								 | 
							  
							 
							 выводит ошибку почему-то:
  Таб.НоваяКолонка("ФИО", "Строка", 50,1); {Отчет.новый4.Форма.Модуль(6)}: после агрегатного объекта не обнаружено(НоваяКолонка) 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Kivals
							
						 | 
						
							
								  | 
								
									
									 « Ответ #9 : 29-09-2010 09:48 »   | 
								
								 | 
							  
							 
							В твоем случае должно быть Таб = СоздатьОбъект("ТаблицаЗначений");вместо Таб = СоздатьОбъект(ТаблицаЗначений); Попробуй сделать отчет с использованием запроса, а сам запрос - с помощью конструктора запроса (Меню: Конструкторы - Запрос...). Он тебе нарисует и запрос, и обход по нему, и вывод на экран - а после почитаешь текст и задашь вопросы.  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							hiller
							
								Интересующийся 
								
								 
								  Offline
								Пол:   
								жить тоже опасно, говорят это смертельно
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #10 : 30-09-2010 09:57 »   | 
								
								 | 
							  
							 
							большое спасибо, немного стал разбираться....решил попробывать оформить выбор пола через радиокнопки....как выглядит программный код, чтобы при флажке на радио кнопке 1 выводились все женщины...
  я отчет делал через запрос....предполагаю, что код будет выглядеть примерно так:
  Если ВыбПол = 1   Тогда ТекстЗапроса = ТекстЗапроса + РазделительСтрок + "Условие ( )" ; КонецЕсли;
  Добавлено через 44 секунды: что в скобках долно быть? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 30-09-2010 09:58 от hiller »
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Kivals
							
						 | 
						
							
								  | 
								
									
									 « Ответ #11 : 30-09-2010 13:32 »   | 
								
								 | 
							  
							 
							Во-первых в кавычках должна быть ";" после скобок, во-вторых с радиокнопками лучше разбирайся позже (они достаточно плохо реализованы в 7.7) ну и лучше выбор пола задай тем же типом, что у тебя реквизит в справочнике (скорее всего - перечисление) Тогда (если ты реквизит назовешь ВыбПол) то код будет такой: Если ВыбПол.Выбран()=1 Тогда     ТекстЗапроса = ТекстЗапроса + " Условие(Пол=ВыбПол);"; // РазделительСтрок на выполнение не влияет КонецЕсли; И вообще - опубликуй свой запрос (легче будет пояснять на живом коде)  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							hiller
							
								Интересующийся 
								
								 
								  Offline
								Пол:   
								жить тоже опасно, говорят это смертельно
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #12 : 01-10-2010 07:27 »   | 
								
								 | 
							  
							 
							Процедура Сотрудники()
  	Перем Запрос, ТекстЗапроса, Таб; 	 	Запрос = СоздатьОбъект("Запрос"); 	ТекстЗапроса =  	"//{{ЗАПРОС(Сотрудники) 	|Сотрудники = Справочник.Сотрудники.ТекущийЭлемент;      	|Пол = Справочник.Сотрудники.Пол; 	|Подразделение=  Справочник.Сотрудники.Подразделение;  	|Группировка Сотрудники упорядочить по Сотрудники.Код, Сотрудники.Наименование, Сотрудники.Должность, Сотрудники.Подразделение;      |Условие(Пол = ВыбПол);    	|Условие(Подразделение = ВыбПодразделение); 	|"//}}ЗАПРОС 	; 	// Если ошибка в запросе, то выход из процедуры 	Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда 		Возврат; 	КонецЕсли;
  //	 Если ВыбПол1 = 1 Тогда 	//		ТекстЗапроса = ТекстЗапроса + РазделительСтрок + "Условие (Пол=2);"; 		    	//	КонецЕсли; 	// Подготовка к заполнению выходных форм данными запроса 	Таб = СоздатьОбъект("Таблица"); 	Таб.ИсходнаяТаблица("Сотрудники"); 	// Заполнение полей "Заголовок" 	Таб.ВывестиСекцию("Заголовок"); 	Состояние("Заполнение выходной таблицы..."); 	Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); 	Пока Запрос.Группировка(1) = 1 Цикл 		// Заполнение полей Сотрудники 		Таб.ВывестиСекцию("Сотрудники"); 	КонецЦикла;           	 	Таб.ТолькоПросмотр(1); 	Таб.Показать("Сотрудники", "");  
  КонецПроцедуры    //выводит только пол из справочника ОКИН    Процедура ПриНачалеВыбораЗначения(Элемент,ФлагОбработки)   Если Элемент="ВыбПол" Тогда 		ФлагОбработки = 0; 		МодальныйРежим=Форма.МодальныйРежим(); 		Если МодальныйРежим = 0 тогда 			ОткрытьПодбор("Справочник.ОКИН","ДляВыбораПоФасету","01",0,ВыбПол); 		Иначе                                                              			ВыбранноеЗначение = "01"; 			ОткрытьФорму("Справочник.ОКИН.ДляВыбораПоФасету", ВыбранноеЗначение); 			Если ПустоеЗначение(ВыбранноеЗначение) = 0 тогда 				ВыбПол = ВыбранноеЗначение; 			КонецЕсли; 		КонецЕсли;    КонецЕсли; 			  КонецПроцедуры  Добавлено через 3 минуты и 54 секунды:теперь думаю как можно в конце таблицы вывести поле ИТОГО с колличеством найденых сотрудников и создать флажок, чтобы если флажок=1 выводились все сотрудники(штатные, физлица, уволенные), а если флажок=0, то выводились только штатные как это реализовать в том случае, если создается ТаблицаЗначений, я нашел....а вот как это сделать обойдясь одними запросами? такое вообще можно реализовать? Добавлено через 2 дня, 23 часа, 39 минут и 28 секунд:с ИТОГО тоже разобрался, осталось с флажком уволенных  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 04-10-2010 09:53 от hiller »
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Kivals
							
						 | 
						
							
								  | 
								
									
									 « Ответ #13 : 04-10-2010 14:44 »   | 
								
								 | 
							  
							 
							hiller, А какой признак уволенности сотрудника? Установлена Дата увольнения или что-то другое?  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							hiller
							
								Интересующийся 
								
								 
								  Offline
								Пол:   
								жить тоже опасно, говорят это смертельно
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #14 : 05-10-2010 05:16 »   | 
								
								 | 
							  
							 
							hiller, А какой признак уволенности сотрудника? Установлена Дата увольнения или что-то другое? 
  в справочнике "Сотрудники" есть колонка "Состояние" (забивается  в сотрудники/места работы) ...там и прописывается какой он: штатный, физлицо, внешний или уволенный пишется так: Штатный сотрудник с 00.00.2000 или Сотрудник уволен 00.00.2000 Добавлено через 26 минут и 26 секунд:хотя зачем такие сложности?, как сделать чтобы он  просто выводил всех штатных сотрудников по умолчанию, без каких либо флажковых кнопок? я так понимаю, что это как-то связано с " Справочник.Сотрдудники.СостояниеФизЛица" Добавлено через 1 час, 23 минуты и 42 секунды:и вот еще: если из языка компьютера на наш родной язык перевести: ПустоеЗначение(сотр.СостояниеФизЛица.Получить(ДатаА))<>1 что получится?  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 05-10-2010 07:09 от hiller »
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Kivals
							
						 | 
						
							
								  | 
								
									
									 « Ответ #15 : 05-10-2010 08:17 »   | 
								
								 | 
							  
							 
							и вот еще: если из языка компьютера на наш родной язык перевести:
  ПустоеЗначение(сотр.СостояниеФизЛица.Получить(ДатаА))<>1
  что получится?
  "Заполнено состояние на дату ДатаА" С периодическими реквизитами в запросах сложности    
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							hiller
							
								Интересующийся 
								
								 
								  Offline
								Пол:   
								жить тоже опасно, говорят это смертельно
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #16 : 05-10-2010 12:01 »   | 
								
								 | 
							  
							 
							я смотрю, можно списки нужныхколонок можно оформить с помощью элемента диалга "Список"
  хочу попробывать создать два списка: в одном множество колонок, а в другом те, которые я выберу из первого...
  первое на чем встрял: Как заполнить первый список интерисующими меня параметрами? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Kivals
							
						 | 
						
							
								  | 
								
									
									 « Ответ #17 : 05-10-2010 13:39 »   | 
								
								 | 
							  
							 
							Смотри в синтакс-помощнике методы работы со значениями типа СписокЗначений. Заполнять в предопределенной процедуре ПриОткрытии() - см. там же 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							hiller
							
								Интересующийся 
								
								 
								  Offline
								Пол:   
								жить тоже опасно, говорят это смертельно
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #18 : 06-10-2010 09:44 »   | 
								
								 | 
							  
							 
							спасибо, разобрался, правда на примере, т.к. работаю на портейбол версси, а там нет такого помощника....а есть такой помощник, чтобы он отдельно работал, как хелп какой-нть? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Kivals
							
						 | 
						
							
								  | 
								
									
									 « Ответ #19 : 06-10-2010 09:59 »   | 
								
								 | 
							  
							 
							hiller, тяжело тебе без синтакс-помощника придется... С portable версиями не работал - а что значит "нет"? Синтакс-помощник - это набор файлов *.als в каталогах программы / базы. Можешь где-то установить обычную версию и скопировать оттуда эти файлы в каталог базы, на которой ты тренируешься. Дальше вызывается по Ctrl+F1 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							hiller
							
								Интересующийся 
								
								 
								  Offline
								Пол:   
								жить тоже опасно, говорят это смертельно
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #20 : 07-10-2010 05:19 »   | 
								
								 | 
							  
							 
							а ЖКК не тоже самое будет?, такую я нашел Добавлено через 3 часа, 40 минут и 31 секунду:а как реализовать такое:  нажав на кнопку"Цеха" открывается справочник цеха(лежит он тут: Справочники.ИК_Цеха)? Добавлено через 20 часов, 16 минут и 24 секунды:все, спасибо, не надо, сделал  Добавлено через 1 час, 6 минут и 13 секунд:новай проблема:хочу, чтобы выбранные элементы из справочника попадали в список "Цеха"...пытаюсь через ОбработкаПодбора,но, пока, ничего не выходит...как это сделать правильно? Добавлено через 14 минут и 5 секунд:все сделал...вошебный форум(мучаешься-мучаешься, заходишь в тупик - отписываешься сдесь и все сразу получается)  Добавлено через 3 дня, 3 часа, 1 минуту и 40 секунд:еще такой вопрос: хочу, чтобы при нажатии первой кнопки открывался список с цехами(справочник.ИК_Цеха), из которого я добавляю нужные цеха в первый список(с идентификатором "подбор") при нажатии второй кнопки должен открываться список с профессиями(справочник.Должности), из которого я добавляю нужные долности в другой список(с идентификатором "долности") у меня пока только получается, что какой бы из двух справочников я не открыл, все выбранные из него поля добавляются в первый список, либо во все два одновременно. В чем моя ошибка? Процедура Подбор(); 
  	ОткрытьПодбор("Справочник.ИК_Цеха", "ИК_Цеха");  КонецПроцедуры      //************************************************** Процедура Подбор2(); 
 
  	ОткрытьПодбор("Справочник.Должности", "Должности");	 КонецПроцедуры            
  //************************************************** Процедура ОбработкаПодбора(Элемент,КонтФормы)    	 	Если ПустоеЗначение(Элемент)=0 Тогда 		Если Элемент.ЭтоГруппа()=0 Тогда 			Если ИК_Цеха.НайтиЗначение(Элемент)=0 Тогда 				ИК_Цеха.ДобавитьЗначение(Элемент,""+Элемент+?(Элемент.Наименование = Элемент,""," ")); 			Иначе 				Предупреждение("Цех уже выбран в списке!",10); 			КонецЕсли;                                            	 		КонецЕсли; 	КонецЕсли;  	 	//Если ПустоеЗначение(Элемент)=0 Тогда 	//	Если Элемент.ЭтоГруппа()=0 Тогда 	//		Если Должности.НайтиЗначение(Элемент)=0 Тогда 	//			Должности.ДобавитьЗначение(Элемент,""+Элемент+?(Элемент.Наименование = Элемент,""," ")); 	//		Иначе 	//			Предупреждение("Профессия уже выбрана в списке!",10); 	//		КонецЕсли;                                            	 	//	КонецЕсли; //	КонецЕсли;  // таким образом  добавляется в оба списка//            КонецПроцедуры	// ОбработкаПодбора
  //**************************************************   
      Процедура ОбработкаПодбора2(ЭЛ,Конт)
  	 	Если ПустоеЗначение(ЭЛ)=0 Тогда 		Если ЭЛ.ЭтоГруппа()=0 Тогда 			Если Должности.НайтиЗначение(ЭЛ)=0 Тогда 				Должности.ДобавитьЗначение(ЭЛ.Наименование,"ЭЛ" ); 			Иначе 				Предупреждение("Профессия уже выбрана в списке!",10); 			КонецЕсли;                                            	 		КонецЕсли; 	КонецЕсли;            КонецПроцедуры	  //а так только в первый    
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 11-10-2010 09:38 от hiller »
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							KolyaVasya
							
								Участник 
								
								 
								  Offline
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #21 : 06-05-2011 10:36 »   | 
								
								 | 
							  
							 
							Приветы форумчанам. Последую наблюдениям предшествинника отпишусь а форуме .... авось и я разберусь ) В программировании 1с новичек, но имею сильное желание вкурить этот язык.  ТЗ следующего рода: необходимо написать отчет,  в котором бы была возможность выбирать перемещения товара из оптовой точки в розничную. Таки  есть нужда отследить чего мы, кому и в каких колличествах отправляем )  Решил учиЦо сразу на ТЗ но чуть чуть его упростить, попытался сделать выборку по дате, Склад, СкладКуда (Делал через конструктор) вот что получилось, точнее НЕ получилось. МБ просветлённые   гуру подскажут, в чем я не прав ?    Заранее признателен ) 1с 7.7 скуль 2к на w2k3 //******************************************* // Процедура генерации запроса Сформировать. // Процедура Сформировать() 	Перем Запрос, ТекстЗапроса, Таб; 	//Создание объекта типа Запрос 	Запрос = СоздатьОбъект("Запрос"); 	ТекстЗапроса =  	"//{{ЗАПРОС(Сформировать) 	|Период с ВыбНачПериода по ВыбКонПериода; 	|Обрабатывать НеПомеченныеНаУдаление; 	|Перемещение = Документ.Перемещение.ТекущийДокумент; 	|Склад = Документ.Перемещение.Склад; 	|СкладКуда = Документ.Перемещение.СкладКуда; 	|Группировка Перемещение упорядочить по Перемещение.Склад, Перемещение.СкладКуда, Перемещение.НомерДок, Перемещение.Фирма, Перемещение.Выгружен, Перемещение.Товар, Перемещение.Цена, Перемещение.Сумма; 	|Условие(Склад = ВыбСклад); 	|Условие(СкладКуда = ВыбСкладКуда); 	|"//}}ЗАПРОС 	; 	// Если ошибка в запросе, то выход из процедуры 	Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда 		Возврат; 	КонецЕсли;
  	// Подготовка к заполнению выходных форм данными запроса 	Таб = СоздатьОбъект("Таблица"); 	Таб.ИсходнаяТаблица("Сформировать"); 	// Заполнение полей "Заголовок" 	Таб.ВывестиСекцию("Заголовок"); 	Состояние("Заполнение выходной таблицы..."); 	Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); 	Пока Запрос.Группировка(1) = 1 Цикл 		// Заполнение полей Перемещение 		Таб.ВывестиСекцию("Перемещение"); 	КонецЦикла; 	// Вывод заполненной формы 	Таб.ТолькоПросмотр(1); 	Таб.Показать("Сформировать", ""); КонецПроцедуры
   
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Kivals
							
						 | 
						
							
								  | 
								
									
									 « Ответ #22 : 06-05-2011 14:09 »   | 
								
								 | 
							  
							 
							KolyaVasya, на первый взляд все Ок -  что не так? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							KolyaVasya
							
								Участник 
								
								 
								  Offline
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #23 : 07-05-2011 09:04 »   | 
								
								 | 
							  
							 
							Привет, форум и правда волшебный .... все запахало разобрался.... Стопанулся на том что не умею работать со СписокЗначений. Как написать код чтобы в список значений по нажатию кнопки добавить открывался список товаров, из которого бы можно было добавить товар из Справочники.Номенклатура Можно описать народ ?  Помогите новичку      Наваял следующее: Процедура КнДобавить ()    Список = СоздатьОбъект("СписокЗначений");      Товар = ОткрытьФорму("Справочник.Номенклатура.Наименование",,);    // ОткрытьФорму("Справочник.Склады","Наши");       ВыбТовар.ДобавитьЗначение(Товар); КонецПроцедуры Но в список добавляются единицы "1"   
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							RXL
							
						 | 
						
							
								  | 
								
									
									 « Ответ #24 : 07-05-2011 09:54 »   | 
								
								 | 
							  
							 
							KolyaVasya, не все так считают. Кто сам выполняет работу и только прочит помощи разобраться - тому хорошо, кто хочет халявы - уходит разочарованным. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							KolyaVasya
							
								Участник 
								
								 
								  Offline
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									«  Ответ #25 : 07-05-2011 10:33 »    | 
								
								 | 
							  
							 
							KolyaVasya, не все так считают. Кто сам выполняет работу и только прочит помощи разобраться - тому хорошо, кто хочет халявы - уходит разочарованным.
   Так с кнопкой и списком значений то не подскажешь ?    
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							RXL
							
						 | 
						
							
								  | 
								
									
									 « Ответ #26 : 07-05-2011 17:21 »   | 
								
								 | 
							  
							 
							Не - 1С не моя стезя. Могу только сказать, что 1С и не-1С - примерно одно и тоже, но одно на русском, а другое на английском. Короче, документацию надо смотреть: объекты, их свойства и методы. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Sla
							
						 | 
						
							
								  | 
								
									
									 « Ответ #27 : 09-05-2011 20:25 »   | 
								
								 | 
							  
							 
							KolyaVasya,  
  Процедура КнДобавить ()    Список = СоздатьОбъект("СписокЗначений");      Товар = ОткрытьФорму("Справочник.Номенклатура.Наименование",,);    // ОткрытьФорму("Справочник.Склады","Наши");       ВыбТовар.ДобавитьЗначение(Товар); КонецПроцедуры
  Но в список добавляются единицы "1" 
 
 
 Ты можешь объяснить, что здесь написано... Я читаю, и не понимаю Список = СоздатьОбъект("СписокЗначений"); Создал Список Товар = ОткрытьФорму("Справочник.Номенклатура.Наименование",,);  Это из формы я получил (назовем так ссылку на товар и его свойства) ВыбТовар.ДобавитьЗначение(Товар); Стоп... стоп.... Что мы здесь делаем. Куда добавляем?  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Мы все учились понемногу... Чему-нибудь и как-нибудь. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Kivals
							
						 | 
						
							
								  | 
								
									
									 « Ответ #28 : 10-05-2011 05:12 »   | 
								
								 | 
							  
							 
							KolyaVasya, ага, ты точно перемудрил... Похоже у тебя ВыбТовар - это список на форме? тогда "Список = СоздатьОбъект("СписокЗначений");" - не нужно. А "1" добавляется потому, что ОткрытьФорму() "Возвращает: 1 - если действие выполнено, 0 - иначе." В твоем случае можно использовать либо   либо Спр = СоздатьОбъект("Справочник.Номенклатура"); Спр.Выбрать();Можно, конечно, и через ОткрытьФорму(), но тогда нужно использовать предопределенную процедуру ОбработкаПодбора()  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							KolyaVasya
							
								Участник 
								
								 
								  Offline
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #29 : 11-05-2011 05:14 »   | 
								
								 | 
							  
							 
							ребят спсб коЭшн )) но форум и правда волшбный, и я давно разобралСо с кнопками сам ) 
  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	 |