Пожалуйста помогите, в 1с я полный ноль. Конфигурация Бух. учет, редакция 4.5 Мисофт 7.70.160531.
После обновления не могу создать счет протокол. При добавлении товара пишет:
Если партия.ПервыйИмпортер=1 Тогда
{Документ.ПротоколСчет.Фор� �а.Модуль(382)}: Поле агрегатного объекта не обнаружено (ПервыйИмпортер)
При попытке вывести печатную форму -
Если (Партия.Выбран()=1) и (ПустаяСтрока(Партия.Стран� �Происхождения)=0) Тогда
{Документ.ПротоколСчет.Фор� �а.Модуль(481)}: Поле агрегатного объекта не обнаружено (СтранаПроисхождения)
Что мне делать? Подскажите пожалуйста.
Что мне делать?
Ну для начала:
1. Открыть конфигуратор.
2. Найти и открыть модуль объекта Документ.ПротоколСчет
3. Посмотреть самому, а если непонятно, то скопировать сюда что же находится в области 382 строки и в области 481 (желательно "захватить" куски кода побольше)
Я смотрю, но не знаю что мне искать. Как оно должно правильно выглядеть.
Процедура Печать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;
КонецЕсли;
Я смотрю, но не знаю что мне искать. Как оно должно правильно выглядеть.
Запускаешь отладчик и смотришь.
Как я понимаю, у тебя проблемы со строками:
Если (Партия.Выбран()=1) и (ПустаяСтрока(Партия.Стран� �Происхождения)=0) Тогда
Если партия.ПервыйИмпортер=1 Тогда
Вот ставишь на них точки останова и смотришь, а что же у тебя находится в "Партия"
Судя по коду у тебя должны быть значения и Партия.СтранаПроисхождени� � и партия.ПервыйИмпортер
А судя по диагностике программа таких свойств у Партии "не знает".
Я смотрю, но не знаю что мне искать. Как оно должно правильно выглядеть.
Запускаешь отладчик и смотришь.
Как я понимаю, у тебя проблемы со строками:
Если (Партия.Выбран()=1) и (ПустаяСтрока(Партия.Стран� �Происхождения)=0) Тогда
Если партия.ПервыйИмпортер=1 Тогда
Вот ставишь на них точки останова и смотришь, а что же у тебя находится в "Партия"
Судя по коду у тебя должны быть значения и Партия.СтранаПроисхождени� � и партия.ПервыйИмпортер
А судя по диагностике программа таких свойств у Партии "не знает".
Powered by vBulletin™ Version 4.2.5 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot