Необъектный тип Регистратора

1. user1928830 26.01.24 12:09 Сейчас в теме
Всем привет

ошибка регистратор необъектного типа

Запрос1 = Новый Запрос("ВЫБРАТЬ
	                       |	ХозрасчетныйОбороты.Регистратор КАК Регистратор,
	                       |	ХозрасчетныйОбороты.СуммаОборот КАК СуммаОборот,
	                       |	ХозрасчетныйОбороты.КоличествоОборот КАК Количество,
	                       |	ХозрасчетныйОбороты.СуммаОборот / ХозрасчетныйОбороты.КоличествоОборот КАК Цена
	                       |ИЗ
	                       |	РегистрБухгалтерии.Хозрасчетный.Обороты(, , Авто, Счет = &Счет, &ВидыСубконто, Субконто1 = &Номенклатура, , ) КАК ХозрасчетныйОбороты
	                       |ГДЕ
	                       |	ХозрасчетныйОбороты.Регистратор ССЫЛКА Документ.ПередачаМатериаловВЭксплуатацию");
	
	ВидыСубконто = Новый СписокЗначений;
	ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура);
	//ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ПартииМатериаловВЭксплуатации);
	//ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.РаботникиОрганизаций);
	Запрос1.УстановитьПараметр("ВидыСубконто", ВидыСубконто);        
	 	
	Запрос1.УстановитьПараметр("Номенклатура", Номенклатура); 
	Запрос1.УстановитьПараметр("Счет", ПланыСчетов.Хозрасчетный.ИнвентарьИХозяйственныеПринадлежностиВЭксплуатации); //МЦ.04
	
	РезультатЗапроса = Запрос1.Выполнить();
	Выборка = РезультатЗапроса.Выбрать();
	Пока Выборка.Следующий() Цикл  
		Если ТипЗнч(Выборка.Регистратор) = Неопределено
			Тогда 
			Продолжить;
		Структура = Новый Структура("Регистратор, Цена",Выборка.Регистратор,Выборка.Цена);
	КонецЕсли;
	КонецЦикла;
	Возврат Структура;
Показать
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Pavel Rodinchenko 26.01.24 12:11 Сейчас в теме
(1)
Если ТипЗнч(Выборка.Регистратор) = Неопределено
Тогда

Если ТипЗнч(Выборка.Регистратор) = Тип("Неопределено") Тогда
- попробуйте так
3. user1928830 26.01.24 12:16 Сейчас в теме
(2) с неопределено так не прокатит
5. user1863362 26.01.24 13:05 Сейчас в теме
(1) Андрей Николаевич, а как у вас одновременно в голове сочетается
|ГДЕ
| ХозрасчетныйОбороты.Регистратор ССЫЛКА Документ.ПередачаМатериаловВЭксплуатацию"
И
Если ТипЗнч(Выборка.Регистратор) = Неопределено

?
8. пользователь 26.01.24 13:11
Сообщение было скрыто модератором.
...
13. Sashares 35 26.01.24 13:59 Сейчас в теме
(5)Вы узнаете данного товарища по неадекватным вопросам? =)
14. user1928830 26.01.24 14:01 Сейчас в теме
(13) это очевидно здесь сидит тролл
15. user1928830 26.01.24 14:02 Сейчас в теме
(13)подскажите почему на структуру ругань .необъектный тип у регистратора?
17. Sashares 35 26.01.24 14:19 Сейчас в теме
(15) Потому что вы заполняете структуру в условии когда регистратор = неопределено.
Структура никогда не заполняется. Вам это в 10 ответили.
18. user1928830 26.01.24 14:27 Сейчас в теме
(17) я и без регистратор = неопределено тажа ошибка будет .это роли не играет
22. user1863362 26.01.24 15:41 Сейчас в теме
(13) Я Андрея Николаевича знаю с тех пор, как он ИПшником еще был и учет лизинга делать пытался. С той поры ничего не поменялось - все тот же сварливый характер, истерики и контакты с НЛО.
4. user1928830 26.01.24 12:24 Сейчас в теме
при чем консоль все хорошо получает с параметрами .

а в обработке ошибка . регистратор = неопределено .
6. soft_wind 26.01.24 13:07 Сейчас в теме
у вас в запросе явный отбор по Типу документа
|ГДЕ
| ХозрасчетныйОбороты.Регистратор ССЫЛКА Документ.ПередачаМатериаловВЭксплуатацию");



при чем здесь проверка = Неопределено? (там даже Пустой ссылки не может быть, (кажется, не проверял))
7. user1928830 26.01.24 13:10 Сейчас в теме
(6) при том . я уже написал выше . в консоли документ получаю передача материалов
в запросе ругань идет проверяю тип неопределено .

что не понятного?
9. user1928830 26.01.24 13:41 Сейчас в теме
Пока Выборка.Следующий() Цикл // Заполняем табличную часть 
			
			Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Выборка.Номенклатура.Description, Истина);
			ФизическоеЛицо = Справочники.ФизическиеЛица.НайтиПоНаименованию(Выборка.ФизическоеЛицо.Description, Истина);
			ФизическоеЛицоПолучатель = Справочники.ФизическиеЛица.НайтиПоНаименованию(Выборка.ФизическоеЛицоПолучатель.Description, Истина);
			
			Структура = НайтиПартиюИЦенуНоменклатуры(Номенклатура); 
			
		 			
			Регистратор = Структура.Регистратор;
			
 
		
			Цена 		= Структура.Цена;
			
			РегЗапись = РегХозрасчетный.Добавить();
			РегЗапись.Период = ДокОперация.Дата;
			РегЗапись.Регистратор = ДокОперацияСсылка; // Ссылка на операцию
			РегЗапись.Организация = ДокОперация.Организация;
			
			РегЗапись.Содержание  = "Перемещение в эксплуатации";
Показать
10. anton13m 2 26.01.24 13:48 Сейчас в теме
Пока Выборка.Следующий() Цикл  
	Если ТипЗнч(Выборка.Регистратор) = Неопределено Тогда 
		Продолжить;
		Структура = Новый Структура("Регистратор, Цена",Выборка.Регистратор,Выборка.Цена);
	КонецЕсли;
КонецЦикла;

У вас функция возвращает всегда Неопределено.
Вынесите заполнение структуры из условия.
Пока Выборка.Следующий() Цикл  
	Если ТипЗнч(Выборка.Регистратор) = Неопределено Тогда 
		Продолжить;
	КонецЕсли;
	Структура = Новый Структура("Регистратор, Цена",Выборка.Регистратор,Выборка.Цена);
	Прервать;
КонецЦикла;
11. user1928830 26.01.24 13:50 Сейчас в теме
12. user1928830 26.01.24 13:56 Сейчас в теме
ругань идет здесь вот здесь Регистратор = Структура.Регистратор;

Попытка 
		base = новый COMОбъект("V83.COMConnector"); 
		//base = base.Connect("Srvr=""1C-01.corp.enstro.ru"";Ref=""BUH_IS"";Usr="+Логин+";Pwd="+Пароль+";"); // Рабочая БП 
		//base = base.Connect("Srvr=""1C-01"";Ref=""buh_es_copy"";Usr="+Логин+";Pwd="+Пароль+";"); // Копия БП 
		base = base.Connect("Srvr=""1C-01"";Ref=""ERP_ES"";Usr="+Логин+";Pwd="+Пароль+";"); // Рабочая erp 
		//base = base.Connect("Srvr=""1C-01.corp.enstro.ru"";Ref=""ERP_ES_copy1"";Usr="+Логин+";Pwd="+Пароль+";"); // КОпия ERP 
	Исключение
		Возврат Неопределено;
	КонецПопытки; 
	
	ТЗ = Объект.Перемещения.Выгрузить();
	
	Сч = 0;
	
	Для Каждого стр из ТЗ Цикл 
		
		
		
		Если стр.Выбор_ <> Истина Тогда
			Продолжить; 
		Иначе
			Сч = Сч +1;
		КонецЕсли;
		
		Запрос = base.NewObject("Запрос");
		Запрос.Текст = ПрочитатьПеремещение();
		Запрос.УстановитьПараметр("Номер", стр.Номер);
		Результат = Запрос.Выполнить();
		
		Выборка = Результат.Выбрать();
		
		ДокОперация = Документы.ОперацияБух.СоздатьДокумент(); 
		
		// ДокОперация.Дата	=	Стр.Дата;
		ДокОперация.Дата	=	ТекущаяДата();
		
		ДокОперация.Организация = Справочники.Организации.НайтиПоКоду("00-000001");
		ДокОперация.Ответственный = Стр.Ответственный;
		ДокОперация.Содержание = "Перемещение в эксплуатации";
		ДокОперация.Комментарий = "#100223 " + Стр.Номер;
		
		СуммаОперации = 0;
		
		ДокОперация.Записать(РежимЗаписиДокумента.Запись);
		ДокОперацияСсылка = ДокОперация.Ссылка;
		
		РегХозрасчетный = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
		РегХозрасчетный.Отбор.Регистратор.Значение = ДокОперацияСсылка;
		
		СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("МЦ.04"); //
		СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("МЦ.04");
		
		Пока Выборка.Следующий() Цикл // Заполняем табличную часть 
			
			Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Выборка.Номенклатура.Description, Истина);
			ФизическоеЛицо = Справочники.ФизическиеЛица.НайтиПоНаименованию(Выборка.ФизическоеЛицо.Description, Истина);
			ФизическоеЛицоПолучатель = Справочники.ФизическиеЛица.НайтиПоНаименованию(Выборка.ФизическоеЛицоПолучатель.Description, Истина);
			
			Структура = НайтиПартиюИЦенуНоменклатуры(Номенклатура); 
			
		 			
			Регистратор = Структура.Регистратор;
			
		  
 
			
		
			Цена 		= Структура.Цена;
			
			РегЗапись = РегХозрасчетный.Добавить();
			РегЗапись.Период = ДокОперация.Дата;
			РегЗапись.Регистратор = ДокОперацияСсылка; // Ссылка на операцию
			РегЗапись.Организация = ДокОперация.Организация;
			
			РегЗапись.Содержание  = "Перемещение в эксплуатации";
			
			// Дт 
			РегЗапись.СчетДт = СчетДт;
			БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт, "Номенклатура", Номенклатура);
			БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт, "ПартииМатериаловВЭксплуатации", Структура.Регистратор);
			БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт, "РаботникиОрганизаций", ФизическоеЛицоПолучатель);
			
			РегЗапись.КоличествоДт = Выборка.Количество;
			// Кт 
			РегЗапись.СчетКт = СчетКт;
			БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетКт, РегЗапись.СубконтоКт, "Номенклатура", Номенклатура);
			БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетКт, РегЗапись.СубконтоКт, "ПартииМатериаловВЭксплуатации", Структура.Регистратор);
			БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетКт, РегЗапись.СубконтоКт, "РаботникиОрганизаций", ФизическоеЛицо);
			
			РегЗапись.КоличествоКт = Выборка.Количество;
			РегЗапись.Сумма = Цена * Выборка.Количество;
			РегХозрасчетный.Записать(); 
			
			СуммаОперации = СуммаОперации + РегЗапись.Сумма;
			
		КонецЦикла;
		
		ДокОперация.СуммаОперации = СуммаОперации;
		ДокОперация.Записать(РежимЗаписиДокумента.Запись);
		Сообщить(ДокОперацияСсылка);
		
	КонецЦикла;
Показать
16. user1928830 26.01.24 14:18 Сейчас в теме
вот такая фигня
Прикрепленные файлы:
19. Sashares 35 26.01.24 15:11 Сейчас в теме
(16)Это плановое поведение платформы.
Значение выборки можно увидеть только внутри цикла.
20. soft_wind 26.01.24 15:23 Сейчас в теме
(7)
что не понятного?

- вот именно это и не понятно!

- случайно расширения конфигурации не используются?

(16) может от платформы зависит? у меня после выхода из цикла, остаются данные последней строки выборки
платформа 1С:Предприятие 8.3 (8.3.22.2143)
21. Sashares 35 26.01.24 15:33 Сейчас в теме
(20)
может от платформы зависит? у меня после выхода из цикла, остаются данные последней строки выборки
платформа 1С:Предприятие 8.3 (8.3.22.2143)

Действительно, остается последняя строка, был не прав.
23. user1863362 26.01.24 15:47 Сейчас в теме
(20) Всё куда проще. Андрей Николаевич накосорезил с параметрами, оно у него в цикл выборки не попадает. Соответственно в первом случае возвращается неинициализированная (хотя и описанная в коде) переменная, а во втором - данные из неспозиционированной выборки.

Других программистов у меня для вас нет =]
soft_wind; +1 Ответить
24. пользователь 26.01.24 15:49
Сообщение было скрыто модератором.
...
25. пользователь 26.01.24 15:51
Сообщение было скрыто модератором.
...
30. пользователь 26.01.24 16:07
Сообщение было скрыто модератором.
...
32. пользователь 26.01.24 16:11
Сообщение было скрыто модератором.
...
34. пользователь 26.01.24 16:13
Сообщение было скрыто модератором.
...
35. пользователь 26.01.24 16:18
Сообщение было скрыто модератором.
...
36. пользователь 26.01.24 16:23
Сообщение было скрыто модератором.
...
38. пользователь 26.01.24 16:25
Сообщение было скрыто модератором.
...
37. пользователь 26.01.24 16:23
Сообщение было скрыто модератором.
...
26. user2033930 26.01.24 15:57 Сейчас в теме
(24) Да вроде банили несколько раз. Правда,не на 99 лет, как меня...
27. soft_wind 26.01.24 15:59 Сейчас в теме
(23) Действительно, скорее всего так и есть
(сам ни когда вне цикла выборки не проверяю)
я еще удивился зачем в цикле ВСЕ данные в одну структуру помещать?
а этих данных просто - нет
(как же сложно анализировать г..код)
28. soft_wind 26.01.24 16:04 Сейчас в теме
(16) Спасибо, очень полезная тема!
то что везде требуется: - Умение разбираться в ЧУЖОМ коде!
(я выходит не сдал 8*( )
29. user1928830 26.01.24 16:06 Сейчас в теме
да это чужой г код . уже полдня застрял на этом
31. user1863362 26.01.24 16:10 Сейчас в теме
(29)
чужой
То есть вот это вот
Если ТипЗнч(Выборка.Регистратор) = Неопределено
это не вы значит писали. Ну, в попытке починить разыменование Неопределено в вышестоящем коде. Ага.
33. user1928830 26.01.24 16:12 Сейчас в теме
(31) одна из возможных попыток устранить ошибку.
39. user2033930 26.01.24 16:27 Сейчас в теме
(33) В Регистраторе может быть Неопределено?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот