anton13
							
								Участник 
								
								 
								  Offline
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 «  : 06-04-2010 10:04 »   | 
								
								 | 
							  
							 
							Делаю выборку из другого справочника, значение ключа передаю из текущей строки (текущиеданные.столбец), потом к выборке применяю ПолучитьОбъект и указываю имя нужного мне реквизита для получения значения в переменную, запускаю 1с, а он сообщает мне, что элемент не выбран, как будто выборка не получает значение ключа. С чем это может быть связано? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 06-04-2010 15:23 от Алексей1153++ »
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Kivals
							
						 | 
						
							
								  | 
								
									
									 « Ответ #1 : 06-04-2010 10:09 »   | 
								
								 | 
							  
							 
							текущиеданные.столбец какой тип этого значения?  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							anton13
							
								Участник 
								
								 
								  Offline
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #2 : 06-04-2010 12:44 »   | 
								
								 | 
							  
							 
							Строка 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Kivals
							
						 | 
						
							
								  | 
								
									
									 « Ответ #3 : 06-04-2010 14:02 »   | 
								
								 | 
							  
							 
							Напиши полный код, как ты это пытаешься сделать 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	| 
		
		
	 | 
	
		
		
			
				
					
						| 
							Kivals
							
						 | 
						
							
								  | 
								
									
									 « Ответ #5 : 07-04-2010 12:44 »   | 
								
								 | 
							  
							 
							Почитай встроенный помощник на тему СправочникВыборка: тебе нужен еще перебор элементов, полученных отбором: Пока УслугиВыборка.Следующий() Цикл 	... КонецЦикла; Или если уверен что значений не больше одного, тогда Если УслугиВыборка.Следующий() Тогда 	... КонецЕсли;  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							anton13
							
								Участник 
								
								 
								  Offline
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #6 : 07-04-2010 12:52 »   | 
								
								 | 
							  
							 
							Да зачем мне перебор элементов я конкретное значение сообщаю. Он такую же ошибку выдаёт если делаешь отбор по наименованию. И ещё что идивительно если делаешь сообщить(ЗначениеВыборки) вообще игнорирует. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Kivals
							
						 | 
						
							
								  | 
								
									
									 « Ответ #7 : 07-04-2010 13:04 »   | 
								
								 | 
							  
							 
							зачем - читать хелп! 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							anton13
							
								Участник 
								
								 
								  Offline
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #8 : 07-04-2010 13:05 »   | 
								
								 | 
							  
							 
							Квадратные скобки попробовал ПолучитьОбъект()[Всего] тоже самое да и не должно быть так чтобы одно работало, а другое нет. Тут что-то не то. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							anton13
							
								Участник 
								
								 
								  Offline
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #9 : 07-04-2010 13:07 »   | 
								
								 | 
							  
							 
							У меня один элемент пока больше не создавал на него и ссылка в текущей строке справочника он не может себя не находить. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							anton13
							
								Участник 
								
								 
								  Offline
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #10 : 07-04-2010 13:20 »   | 
								
								 | 
							  
							 
							Теперь вот так сделал:
  Процедура СписокУслугКолРазПриИзменении(Элемент)    Кол=ЭлементыФормы.СписокУслуг.ТекущиеДанные.КолРаз; Услуга=ЭлементыФормы.СписокУслуг.ТекущиеДанные.Услуги; Отбор=Новый Структура("Наименование",Услуга); УслугиВыборка=Справочники.Услуги.Выбрать(,,Отбор,); Пока УслугиВыборка.Следующий() Цикл Всего=УслугиВыборка.ПолучитьОбъект().Всего; КонецЦикла; Цена=ЭлементыФормы.СписокУслуг.ТекущиеДанные.Цена; Цена=Кол*Всего; КонецПроцедуры
  Выдаёт:
  {Справочник.Работы.Форма.ФормаЭлемента(16)}: Преобразование значения к типу Число не может быть выполнено Цена=Кол*Всего;
  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							anton13
							
								Участник 
								
								 
								  Offline
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #11 : 07-04-2010 13:30 »   | 
								
								 | 
							  
							 
							Вы вот мне как специалист скажите, после передачи в выборку структуры и совершению выборки что должно быть в переменной куда эта выборка передаётся? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Kivals
							
						 | 
						
							
								  | 
								
									
									 « Ответ #12 : 07-04-2010 13:40 »   | 
								
								 | 
							  
							 
							Это все есть в хелпе, нужно только читать внимательно: в значении переменной будет элемент типа СправочникВыборка, но не спозиционированная ни на один элемент. Чтобы последовательно позиционироваться на элементы и есть метод Следующий(). Код в принципе правильный, поставь точку останова на ошибочную строку (Цена=Кол*Всего;) и проверь значения переменных Кол и Всего.
  И научись пользоваться [code]! 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							anton13
							
								Участник 
								
								 
								  Offline
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #13 : 07-04-2010 15:37 »   | 
								
								 | 
							  
							 
							Пишу так:
  Процедура СписокУслугКолРазПриИзменении(Элемент)    Кол=ЭлементыФормы.СписокУслуг.ТекущиеДанные.КолРаз; Услуга=ЭлементыФормы.СписокУслуг.ТекущиеДанные.Услуги; Отбор=Новый Структура("Наименование",Услуга); УслугиВыборка=Справочники.Услуги.Выбрать(,,Отбор,); Пока УслугиВыборка.Следующий() Цикл Объект=УслугиВыборка.ПолучитьОбъект(); КонецЦикла; Всего=Объек 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 07-04-2010 16:08 от anton13 »
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							anton13
							
								Участник 
								
								 
								  Offline
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #14 : 08-04-2010 07:29 »   | 
								
								 | 
							  
							 
							Ура получилось! Всё оказалось намного проще чем я думал. Вот посмотрите какой короткий код:
  Процедура СписокУслугКолРазПриИзменении(Элемент) ТекущаяСтрока=ЭлементыФормы.СписокУслуг.ТекущиеДанные; СсылкаУслуги=Справочники.Услуги.НайтиПоНаименованию(ТекущаяСтрока.Услуги); ТекущаяСтрока.Цена=ТекущаяСтрока.КолРаз*СсылкаУслуги.Всего; КонецПроцедуры
  Я сделал несколько больших выводов:
  1. Нельзя задавать переменной значение ячейки таблицы напрямую. Например:
  (Неправильно) Цена=ЭлементыФормы.СписокУслуг.ТекущиеДанные.Цена; Цена=Кол*Всего;
  (Правильно) ТекущаяСтрока=ЭлементыФормы.СписокУслуг.ТекущиеДанные; ТекущаяСтрока.Цена=ТекущаяСтрока.Кол*Всего
  2. Нельзя давать имя "Ссылка" переменной. Видимо есть какое-то совпадение хотя в справочнике в таблице это слово не относится к зарезервированым.
  А выборка я так понимаю для более большого количества элементов. И вообще я заметил что с именами в 1С всё время какие-то проблемы например есть наименование элемента, потом создаёшь таблицу в форме этого элемента и там например у тебя тоже столбец наименование так вот программа их путает и возникают ошибки как только создашь разные имена ошибки пропадают.
  НАРОД ВНИМАТЕЛЬНО ОТНОСИТЕСЬ К ИМЕНАМ ТАБЛИЦ, ПЕРЕМЕННЫХ И Т.Д. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Kivals
							
						 | 
						
							
								  | 
								
									
									 « Ответ #15 : 08-04-2010 08:10 »   | 
								
								 | 
							  
							 
							Вот посмотрите какой короткий код: ...
  Если не найдет - вылетит с исключением. Желательна еще проверка Если ЗначениеЗаполнено(СсылкаУслуги) Тогда... 1. Нельзя задавать переменной значение ячейки таблицы напрямую
  Если ты хочешь, чтобы поменялось значение в таблице - то естественно да. ИМХО это и так понятно (если ты понимаешь что такое передача параметров по значению и по ссылке) 2. Нельзя давать имя "Ссылка" переменной
  Естественно - поищи в синтакс-помощнике что такое переменная Ссылка в модулях (и модулях форм) документа/справочника/... И вообще я заметил что с именами в 1С всё время какие-то проблемы ... так вот программа их путает и возникают ошибки
  Просто нужна аккуратность и понимание к чему (какой переменной) ты обращаешься. Я наоборот стараюсь чтобы имена совпадали, при этом никаких подобных проблем не возникает.  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							anton13
							
								Участник 
								
								 
								  Offline
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #16 : 08-04-2010 09:39 »   | 
								
								 | 
							  
							 
							Просто нужна аккуратность и понимание к чему (какой переменной) ты обращаешься. Я наоборот стараюсь чтобы имена совпадали, при этом никаких подобных проблем не возникает. Это глупость в VisualBasic всё проще и значение можно передать разными способами, а в 1С так намудрили, что даже когда всё делаешь правильно получается, что не правильно.  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 08-04-2010 09:42 от anton13 »
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Kivals
							
						 | 
						
							
								  | 
								
									
									 « Ответ #17 : 08-04-2010 09:59 »   | 
								
								 | 
							  
							 
							Offtopic: Ага. А в бейсике на ЕС-1840 еще все проще и понятней было Извини, но форум не для того, чтобы меряться "бейсиками". Свой комментарий я оставил потому, чтобы те, кто будут читать твое сообщение, не сделали неправильных выводов. Если хочешь сравнить 1С и VB - заведи тему в Общении. Но ИМХО конструктивного там ничего не будет. Судя по вопросам - ты только начинаешь осваивать 1С, а уже делаешь вывод что "это глупость".  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							anton13
							
								Участник 
								
								 
								  Offline
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #18 : 08-04-2010 10:14 »   | 
								
								 | 
							  
							 
							Что такое ИМХО? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Алексей++
							
								глобальный и пушистый 
								Глобальный модератор
								
								 
								  Offline
								
								Сообщений: 13
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									«  Ответ #19 : 08-04-2010 10:17 »    | 
								
								 | 
							  
							 
							anton13, ИМХО == "по моему скромному мнению" ) 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Kivals
							
						 | 
						
							
								  | 
								
									
									 « Ответ #20 : 08-04-2010 10:47 »   | 
								
								 | 
							  
							 
							
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	 |