# Форум 1С > Общие вопросы по 1С - Предприятие > 1С - Предприятие 7.7 >  Поле агрегатного объекта не обнаружено

## SooRok

Пожалуйста помогите, в 1с я полный ноль. Конфигурация Бух. учет, редакция 4.5 Мисофт 7.70.160531.
После обновления не могу создать счет протокол. При добавлении товара пишет: 
*Если партия.ПервыйИмпортер=1 Тогда
{Документ.ПротоколСчет.Фор  а.Модуль(382)}: Поле агрегатного объекта не обнаружено (ПервыйИмпортер)*

При попытке вывести печатную форму - 
*Если (Партия.Выбран()=1) и (ПустаяСтрока(Партия.Стран  Происхождения)=0) Тогда
{Документ.ПротоколСчет.Фор  а.Модуль(481)}: Поле агрегатного объекта не обнаружено (СтранаПроисхождения)*

Что мне делать? Подскажите пожалуйста.

----------


## avm3110

> Что мне делать?


Ну для начала:
1. Открыть конфигуратор. 
2. Найти и открыть модуль объекта  Документ.ПротоколСчет 
3. Посмотреть самому, а если непонятно, то скопировать сюда что же находится в области 382 строки и в области 481 (желательно "захватить" куски кода побольше)

----------


## SooRok

Я смотрю, но не знаю что мне искать. Как оно должно правильно выглядеть.
Процедура Печать1()
	таб=СоздатьОбъект("ТАБЛИЦА"  );
    таб.ИсходнаяТаблица("СчФак"  );   
	Таб.ВывестиСекцию("Шапка");  
	ВыбратьСтроки();
	ИтСуБНДС=0;
	Пока ПолучитьСтроку()>0 Цикл  
*Если (Партия.Выбран()=1) и (ПустаяСтрока(Партия.Стран  Происхождения)=0) Тогда*
			СтранПР = ", "+СокрП(СокрЛ(Партия.Страна  роисхождения));
		ИначеЕсли ПустаяСтрока(Товар.СтранаП  роисхождения)=0 Тогда
			СтранПР = ", "+СокрП(СокрЛ(Товар.СтранаП  оисхождения)); 
		Иначе
			СтранПР="";
		КонецЕсли;
	ЦенаПер=ЦенаИзготовителя; 
	СумбНДС=Окр(ЦенаОтп*Количе  тво,0,0);
	ИтСуБНДС=СумбНДС+ИтСуБНДС;
	Таб.ВывестиСекцию("Строка");	
КонецЦикла;
Таб.ВывестиСекцию("Итого");
Таб.ВывестиСекцию("Дно"); 
Таб.ВывестиСекцию("Дно1");
Таб.ВывестиСекцию("Дно2");
Таб.ПараметрыСтраницы(1,,,5,5,  5,,,,1);
Таб.Опции(0,0,0,0);
Таб.Показать() ;
КонецПроцедуры


Процедура ОбработкаПодбора(ВыбрТова  ) 
	Кол = 1;
	Спис = СоздатьОбъект("СписокЗначе  ний");
	Спис.ДобавитьЗначение(Выбр  Товар,"Товар");
	Если ПустоеЗначение(ТекущийДок  мент()) = 1 Тогда //документ еще не записан
		//Тогда передаем дату документа
		Спис.ДобавитьЗначение(Дата  Док,"Док");
	Иначе 
		//иначе позицию документа
		Спис.ДобавитьЗначение(Теку  щийДокумент(),"Док");
	КонецЕсли;
	Спис.ДобавитьЗначение(Мест  оХранения,"Склад");
	ОткрытьФормуМодально("Обра  ботка.ПодборПартий",Спис);
	Если ВвестиЧисло(Кол, "Введите количество", 14, 3) = 0 Тогда
		Возврат;
	ИначеЕсли Кол = 0 Тогда
		Возврат;
	КонецЕсли;

	НоваяСтрока();
	Товар = ВыбрТовар; 

	Партия = Спис.Получить("Партия");


	Прейскурант=Партия.Прейску  рант; 
	Сертификат=Партия.Сертифик  ат; 
    ПредпрИзготовитель=Товар.П  редприятиеИзготовитель;   
    СтранаПроисхождения=Товар.  СтранаПроисхождения;
 	//Единица=Товар.ЕдиницаИзмер  ения;
	Количество = Кол;

	НдСПр=Товар.СтавкаНДС.Полу  ить(ДатаДок).Ставка;  
 	Если партия.выбран()=1 Тогда  
* Если партия.ПервыйИмпортер=1 Тогда*
 		Себестоимость=Партия.Себес  тоимость;
 		ЦенаИзготовителя=Партия.Це  наОтп;  
 		ЦенаОтп=Партия.ЦенаОтп; 
 		Иначе
 		Себестоимость=Партия.Себес  тоимость;
 		ЦенаИзготовителя=Партия.Це  наИзготовителя;  
 		ЦенаОтп=Партия.ЦенаОтп; 
 		КонецЕсли;
 		//Надб=Партия.Надб;
 		//НадбавкаДругая=Партия.Надб  авкаДругая;  
 		Пересчет("Товар"); 
 		Пересчет2();             //Расчет надбавок  
 	Иначе    
 		//Себ=0;
 		//Если ВвестиЧисло(Себ, "Введите Себестоимость", 16, 2) = 0 Тогда          
 		//	Себестоимость=Себ;
 		//Иначе   
 		Себестоимость=0;
 		//КонецЕсли;
 		//ЦенаИз=0;  
 		//Если ВвестиЧисло(ЦенаИз, "Введите Цену Изготовителя", 16, 2) = 0 Тогда          
 		//	ЦенаИзготовителя=ЦенаИз;
 		//Иначе   
 		ЦенаИзготовителя=0;  
 		//КонецЕсли;  
 		//ЦенаОп=0;
 		//Если ВвестиЧисло(ЦенаОп, "Введите Цену Оптовую", 16, 2) = 0 Тогда          
 		//	ЦенаОптовая=ЦенаОп;
 		//Иначе   
 		ЦенаОптовая=0;
 		//КонецЕсли; 
 		//НадбДр=0;
 		//НадбДр=0;
 	КонецЕсли;

---------- Post added at 09:19 ---------- Previous post was at 09:18 ----------

Я смотрю, но не знаю что мне искать. Как оно должно правильно выглядеть.
Процедура Печать1()
	таб=СоздатьОбъект("ТАБЛИЦА"  );
    таб.ИсходнаяТаблица("СчФак"  );   
	Таб.ВывестиСекцию("Шапка");  
	ВыбратьСтроки();
	ИтСуБНДС=0;
	Пока ПолучитьСтроку()>0 Цикл  
*Если (Партия.Выбран()=1) и (ПустаяСтрока(Партия.Стран  Происхождения)=0) Тогда*
			СтранПР = ", "+СокрП(СокрЛ(Партия.Страна  роисхождения));
		ИначеЕсли ПустаяСтрока(Товар.СтранаП  роисхождения)=0 Тогда
			СтранПР = ", "+СокрП(СокрЛ(Товар.СтранаП  оисхождения)); 
		Иначе
			СтранПР="";
		КонецЕсли;
	ЦенаПер=ЦенаИзготовителя; 
	СумбНДС=Окр(ЦенаОтп*Количе  тво,0,0);
	ИтСуБНДС=СумбНДС+ИтСуБНДС;
	Таб.ВывестиСекцию("Строка");	
КонецЦикла;
Таб.ВывестиСекцию("Итого");
Таб.ВывестиСекцию("Дно"); 
Таб.ВывестиСекцию("Дно1");
Таб.ВывестиСекцию("Дно2");
Таб.ПараметрыСтраницы(1,,,5,5,  5,,,,1);
Таб.Опции(0,0,0,0);
Таб.Показать() ;
КонецПроцедуры


Процедура ОбработкаПодбора(ВыбрТова  ) 
	Кол = 1;
	Спис = СоздатьОбъект("СписокЗначе  ний");
	Спис.ДобавитьЗначение(Выбр  Товар,"Товар");
	Если ПустоеЗначение(ТекущийДок  мент()) = 1 Тогда //документ еще не записан
		//Тогда передаем дату документа
		Спис.ДобавитьЗначение(Дата  Док,"Док");
	Иначе 
		//иначе позицию документа
		Спис.ДобавитьЗначение(Теку  щийДокумент(),"Док");
	КонецЕсли;
	Спис.ДобавитьЗначение(Мест  оХранения,"Склад");
	ОткрытьФормуМодально("Обра  ботка.ПодборПартий",Спис);
	Если ВвестиЧисло(Кол, "Введите количество", 14, 3) = 0 Тогда
		Возврат;
	ИначеЕсли Кол = 0 Тогда
		Возврат;
	КонецЕсли;

	НоваяСтрока();
	Товар = ВыбрТовар; 

	Партия = Спис.Получить("Партия");


	Прейскурант=Партия.Прейску  рант; 
	Сертификат=Партия.Сертифик  ат; 
    ПредпрИзготовитель=Товар.П  редприятиеИзготовитель;   
    СтранаПроисхождения=Товар.  СтранаПроисхождения;
 	//Единица=Товар.ЕдиницаИзмер  ения;
	Количество = Кол;

	НдСПр=Товар.СтавкаНДС.Полу  ить(ДатаДок).Ставка;  
 	Если партия.выбран()=1 Тогда  
* Если партия.ПервыйИмпортер=1 Тогда*
 		Себестоимость=Партия.Себес  тоимость;
 		ЦенаИзготовителя=Партия.Це  наОтп;  
 		ЦенаОтп=Партия.ЦенаОтп; 
 		Иначе
 		Себестоимость=Партия.Себес  тоимость;
 		ЦенаИзготовителя=Партия.Це  наИзготовителя;  
 		ЦенаОтп=Партия.ЦенаОтп; 
 		КонецЕсли;
 		//Надб=Партия.Надб;
 		//НадбавкаДругая=Партия.Надб  авкаДругая;  
 		Пересчет("Товар"); 
 		Пересчет2();             //Расчет надбавок  
 	Иначе    
 		//Себ=0;
 		//Если ВвестиЧисло(Себ, "Введите Себестоимость", 16, 2) = 0 Тогда          
 		//	Себестоимость=Себ;
 		//Иначе   
 		Себестоимость=0;
 		//КонецЕсли;
 		//ЦенаИз=0;  
 		//Если ВвестиЧисло(ЦенаИз, "Введите Цену Изготовителя", 16, 2) = 0 Тогда          
 		//	ЦенаИзготовителя=ЦенаИз;
 		//Иначе   
 		ЦенаИзготовителя=0;  
 		//КонецЕсли;  
 		//ЦенаОп=0;
 		//Если ВвестиЧисло(ЦенаОп, "Введите Цену Оптовую", 16, 2) = 0 Тогда          
 		//	ЦенаОптовая=ЦенаОп;
 		//Иначе   
 		ЦенаОптовая=0;
 		//КонецЕсли; 
 		//НадбДр=0;
 		//НадбДр=0;
 	КонецЕсли;

---------- Post added at 09:20 ---------- Previous post was at 09:19 ----------

Я смотрю, но не знаю что мне искать. Как оно должно правильно выглядеть.
Процедура Печать1()
	таб=СоздатьОбъект("ТАБЛИЦА"  );
    таб.ИсходнаяТаблица("СчФак"  );   
	Таб.ВывестиСекцию("Шапка");  
	ВыбратьСтроки();
	ИтСуБНДС=0;
	Пока ПолучитьСтроку()>0 Цикл  
*Если (Партия.Выбран()=1) и (ПустаяСтрока(Партия.Стран  Происхождения)=0) Тогда*
			СтранПР = ", "+СокрП(СокрЛ(Партия.Страна  роисхождения));
		ИначеЕсли ПустаяСтрока(Товар.СтранаП  роисхождения)=0 Тогда
			СтранПР = ", "+СокрП(СокрЛ(Товар.СтранаП  оисхождения)); 
		Иначе
			СтранПР="";
		КонецЕсли;
	ЦенаПер=ЦенаИзготовителя; 
	СумбНДС=Окр(ЦенаОтп*Количе  тво,0,0);
	ИтСуБНДС=СумбНДС+ИтСуБНДС;
	Таб.ВывестиСекцию("Строка");	
КонецЦикла;
Таб.ВывестиСекцию("Итого");
Таб.ВывестиСекцию("Дно"); 
Таб.ВывестиСекцию("Дно1");
Таб.ВывестиСекцию("Дно2");
Таб.ПараметрыСтраницы(1,,,5,5,  5,,,,1);
Таб.Опции(0,0,0,0);
Таб.Показать() ;
КонецПроцедуры


Процедура ОбработкаПодбора(ВыбрТова  ) 
	Кол = 1;
	Спис = СоздатьОбъект("СписокЗначе  ний");
	Спис.ДобавитьЗначение(Выбр  Товар,"Товар");
	Если ПустоеЗначение(ТекущийДок  мент()) = 1 Тогда //документ еще не записан
		//Тогда передаем дату документа
		Спис.ДобавитьЗначение(Дата  Док,"Док");
	Иначе 
		//иначе позицию документа
		Спис.ДобавитьЗначение(Теку  щийДокумент(),"Док");
	КонецЕсли;
	Спис.ДобавитьЗначение(Мест  оХранения,"Склад");
	ОткрытьФормуМодально("Обра  ботка.ПодборПартий",Спис);
	Если ВвестиЧисло(Кол, "Введите количество", 14, 3) = 0 Тогда
		Возврат;
	ИначеЕсли Кол = 0 Тогда
		Возврат;
	КонецЕсли;

	НоваяСтрока();
	Товар = ВыбрТовар; 

	Партия = Спис.Получить("Партия");


	Прейскурант=Партия.Прейску  рант; 
	Сертификат=Партия.Сертифик  ат; 
    ПредпрИзготовитель=Товар.П  редприятиеИзготовитель;   
    СтранаПроисхождения=Товар.  СтранаПроисхождения;
 	//Единица=Товар.ЕдиницаИзмер  ения;
	Количество = Кол;

	НдСПр=Товар.СтавкаНДС.Полу  ить(ДатаДок).Ставка;  
 	Если партия.выбран()=1 Тогда  
* Если партия.ПервыйИмпортер=1 Тогда*
 		Себестоимость=Партия.Себес  тоимость;
 		ЦенаИзготовителя=Партия.Це  наОтп;  
 		ЦенаОтп=Партия.ЦенаОтп; 
 		Иначе
 		Себестоимость=Партия.Себес  тоимость;
 		ЦенаИзготовителя=Партия.Це  наИзготовителя;  
 		ЦенаОтп=Партия.ЦенаОтп; 
 		КонецЕсли;
 		//Надб=Партия.Надб;
 		//НадбавкаДругая=Партия.Надб  авкаДругая;  
 		Пересчет("Товар"); 
 		Пересчет2();             //Расчет надбавок  
 	Иначе    
 		//Себ=0;
 		//Если ВвестиЧисло(Себ, "Введите Себестоимость", 16, 2) = 0 Тогда          
 		//	Себестоимость=Себ;
 		//Иначе   
 		Себестоимость=0;
 		//КонецЕсли;
 		//ЦенаИз=0;  
 		//Если ВвестиЧисло(ЦенаИз, "Введите Цену Изготовителя", 16, 2) = 0 Тогда          
 		//	ЦенаИзготовителя=ЦенаИз;
 		//Иначе   
 		ЦенаИзготовителя=0;  
 		//КонецЕсли;  
 		//ЦенаОп=0;
 		//Если ВвестиЧисло(ЦенаОп, "Введите Цену Оптовую", 16, 2) = 0 Тогда          
 		//	ЦенаОптовая=ЦенаОп;
 		//Иначе   
 		ЦенаОптовая=0;
 		//КонецЕсли; 
 		//НадбДр=0;
 		//НадбДр=0;
 	КонецЕсли;

----------


## avm3110

> Я смотрю, но не знаю что мне искать. Как оно должно правильно выглядеть.


Запускаешь отладчик и смотришь.

Как я понимаю, у тебя проблемы со строками:

Если (Партия.Выбран()=1) и (ПустаяСтрока(Партия.Стран  Происхождения)=0) Тогда

Если партия.ПервыйИмпортер=1 Тогда

Вот ставишь на них точки останова и смотришь, а что же у тебя находится в "Партия"

Судя по коду у тебя должны быть значения и Партия.СтранаПроисхождени   и партия.ПервыйИмпортер

А судя по диагностике программа таких свойств у Партии "не знает".

----------


## avm3110

> Я смотрю, но не знаю что мне искать. Как оно должно правильно выглядеть.


Запускаешь отладчик и смотришь.

Как я понимаю, у тебя проблемы со строками:

Если (Партия.Выбран()=1) и (ПустаяСтрока(Партия.Стран  Происхождения)=0) Тогда

Если партия.ПервыйИмпортер=1 Тогда

Вот ставишь на них точки останова и смотришь, а что же у тебя находится в "Партия"

Судя по коду у тебя должны быть значения и Партия.СтранаПроисхождени   и партия.ПервыйИмпортер

А судя по диагностике программа таких свойств у Партии "не знает".

----------

