перенос документов из Бух 4.5 в ТиС 9.2

Новая тема
Показывать по 10 20 40 сообщений
"1С 7.7 сетевая (7.70.027)
бух редакции 4.5 (7.70.513)
торговля+склад 9.2 (7.70.938)

при нажатии в обработчике на кнопку сформировать выдает ошибку:
рн.Скидка=1*мПродажа.Скидка.Наименование;
{путь к файлу обработчика(281)}: Поле агрегатного объекта не обнаружено (Скидка)
Раньше все работало, как выяснилось были установлены какие-то обновления, после чего все и рухнуло.

Вот та часть кода в которой находится ошибка. Помогите пожалуйста и если можно объясните общедоступным языком что и куда, т.к. я не сильно разбираюсь в 1С. Заранее спасибо

//===========================================­===
// ЗаполнитьДокументРеализация()                  
//==============================================
Процедура ЗаполнитьДокументРеализация(мПродажа, рн)
Перем СтавкаНДС;

вариантРасчетаНДС=мПродажа.СуммаВклНДС;
                   

рн.Контрагент=ПолучитьКонтрагента(мПродажа.Контрагент.НаименованиеБух);
рн.Договор=рн.Контрагент.ОсновнойДоговор;
рн.МестоХранения=шаблонРеализ.МестоХранения;
рн.ВидОтгрузки=шаблонРеализ.ВидОтгрузки;
рн.УчитыватьНП=шаблонРеализ.УчитыватьНП;
рн.ЗачитыватьАванс=шаблонРеализ.ЗачитыватьАванс;
рн.Курс=шаблонРеализ.Курс;
рн.Скидка=1*мПродажа.Скидка.Наименование;

Если фПродажаСНДС = 1 Тогда
Если вариантРасчетаНДС=1 тогда
рн.ВариантРасчетаНалогов=НДСВнутри;
Иначе
    рн.ВариантРасчетаНалогов=НДССверху;
КонецЕсли;
Иначе
рн.ВариантРасчетаНалогов=шаблонРеализ.ВариантРасчетаНалогов;
КонецЕсли;

рн.РасчетныйСчет=шаблонРеализ.РасчетныйСчет;
рн.ВерсияОбъекта=шаблонРеализ.ВерсияОбъекта;
//рн.НДСвключатьВСтоимость=шаблонРеализ.НДСвключатьВСтоимость;
рн.ТипЦен=шаблонРеализ.ТипЦен;
рн.ПоставщикуВыставляетсяСчетФактураНаВозврат=шаблонРеализ.ПоставщикуВыставляетсяСчетФактураНаВозврат;
рн.Скидка=1*мПродажа.Скидка.Наименование;
рн.ЦеныИзДокумента=шаблонРеализ.ЦеныИзДокумента;

мПродажа.ВыбратьСтроки();
пока мПродажа.ПолучитьСтроку()=1 цикл
рн.НоваяСтрока();  

Если мПродажа.Номенклатура.родитель.Наименование="Тара" Тогда
продолжить;
КонецЕсли;

рн.Товар = ПолучитьНоменклатуру(мПродажа.номенклатура.НаименованиеБух,мПродажа.номенклатура.СтавкаНДС, рн.ДатаДок);
Если фПродажаСНДС = 1 Тогда
СтавкаНДС=рн.Товар.СтавкаНДС.Получить(рн.ДатаДок).Ставка;
КонецЕсли;
рн.Количество=мПродажа.Количество;
рн.Цена=мПродажа.Цена;
рн.Сумма=мПродажа.сумма;
рн.СумСкидка=рн.Количество*рн.Цена-рн.Сумма;
Если фПродажаСНДС = 1 Тогда
рн.НДС=мПродажа.СуммаНДС;
Если вариантРасчетаНДС=1 Тогда
рн.всего=рн.Сумма;
Иначе
РасчетНДС=Окр(рн.Сумма*ставкаНДС/100,2,1);
Если РасчетНДС<>рн.НДС Тогда
Сообщить("В докумененте реализация "+ мПродажа.НомерДок + " для товара " + рн.Товар + " не верно расчитан НДС");
КонецЕсли;
рн.всего=рн.Сумма+рн.НДС;
КонецЕсли;
Иначе
рн.всего=рн.Сумма;
КонецЕсли;
       
Если фГотоваяПродукция = 1 Тогда
ТаблицаГП.НоваяСтрока();
ТаблицаГП.ДатаДок = мПродажа.ДатаДок;
ТаблицаГП.Товар = рн.Товар;
ТаблицаГП.Количество = рн.Количество;
Если фПлановаяСебестоимость = 1 Тогда
ТаблицаГП.Стоимость = рн.Цена;
ТаблицаГП.Сумма = Окр(рн.Количество*рн.Цена, 2, 1);
КонецЕсли;
КонецЕсли;

КонецЦикла;

КонецПроцедуры // ЗаполнитьДокументРеализация()"
"Впишите перед:
> рн.Скидка=1*мПродажа.Скидка.Наименование;
Сообщить(мПродажа.Вид());

узнаете в документе какого вида система пытается найти реквизит Скидка в то время когда его там нет.
И вообще вопрос, что значит:
1*мПродажа.Скидка.Наименование  = ?

число на строку умножается"
Реализация и ниже та же ошибка
В типовой 1С:Бухгалтерии нет документа вида "Реализация".
Кстати, в документе "РасходнаяНакладная" реквизита "Скидка" тоже нет. Обработка, которая у вас не работает была создана для использования с какой то иной или для использования с измененной конфигурацией.
что порекомендуете сделать? можно как-то безболезненно избавиться от этой скидки?
Запросто, просто закомментарьте строку
"закомментировал строки, вроде все пошло, осталось разобраться верно ли теперь все документы переносит.

рн.Скидка=1*мПродажа.Скидка.Наименование;
рн.ЦеныИзДокумента=шаблонРеализ.ЦеныИзДокумента;

и

рн.СумСкидка=рн.Количество*рн.Цена-рн.Сумма;

спасибо!"
"Теперь выдаёт еще одну ошибку:

текДок.Записать();
{}:Номер не уникальный!

чтобы вернуть всё в первоначальное положение по базе данных, что нужно сделать? или нужно было скопировать её, а потом если что заменить?

// Сывак 11.06.2009 Начало
//==============================================­r>// СоздатьДокумент()                  
//==============================================
Проц­едура СоздатьДокумент(текДок, Продажа = """", текДатаДок = """")
Перем Ч;
Перем М;
Перем С;

Ч = 0;
М = 0;
С = 0;

текДок.Новый();
Если (текДок.Вид() <> "ГотоваяПродукция") И (текДок.Вид() <> "ПлановаяСебестоимость") Тогда
текДок.ДатаДок  = Продажа.ДатаДок;
текДок.НомерДок = ПолучитьНомерДокумента(Продажа.НомерДок);
Иначе
текДок.ДатаДок  = текДатаДок;
КонецЕсли;

Если (текДок.Вид() = "ГотоваяПродукция") ИЛИ (текДок.Вид() = "ПлановаяСебестоимость") Тогда
   текДок.Комментарий = "Создан по реализации и возвратам загруженым из Торговли-Склад " + Формат(ТекущаяДата(),"Д (0)ДДММММГГГГ");
Иначе
текДок.Комментарий = "Загружен из Торговли-Склад " + Формат(ТекущаяДата(),"Д (0)ДДММММГГГГ");
КонецЕсли;

текДок.Записать();

Если текДок.Вид() = "РасходнаяНакладная" Тогда
Ч = 12;
ИначеЕсли текДок.Вид() = "ПоступлениеТоваров" Тогда
Ч = 9;
ИначеЕсли текДок.Вид() = "ГотоваяПродукция" Тогда
Ч = 8;
ИначеЕсли текДок.Вид() = "ПлановаяСебестоимость" Тогда
Ч = 6;
КонецЕсли;
М = 0;
С = 0;
текДок.УстановитьВремя(Ч, М, С);
текДок.Записать();    
текДок.ПолучитьВремя(Ч, М, С);
Сообщить(""""+ текДок.ТекущийДокумент() + " " + Строка(Ч) + ":" + Строка(М) + ":" + Строка(С),"i");
КонецПроцедуры // СоздатьДокумент() // Сывак 11.06.2009 Окончание"
А что в этой процедуре : ПолучитьНомерДокумента(Продажа.НомерДок) ?
я не знаю =( где можно посмотреть что там или что?
Читают тему
(гостей: 1)

Быстрый переход