PDA

Просмотр полной версии : Поле агрегатного объекта не обнаружено



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

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

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

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

SooRok
04.07.2016, 10:20
Я смотрю, но не знаю что мне искать. Как оно должно правильно выглядеть.
Процедура Печать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
04.07.2016, 17:55
Я смотрю, но не знаю что мне искать. Как оно должно правильно выглядеть.
Запускаешь отладчик и смотришь.

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

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

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

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

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

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

avm3110
04.07.2016, 20:33
Я смотрю, но не знаю что мне искать. Как оно должно правильно выглядеть.
Запускаешь отладчик и смотришь.

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

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

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

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

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

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