перенос документов из Бух 4.5 в ТиС 9.2
Показывать по
10
20
40
сообщений
- 1
- 2
09.06.2010
12:36
#1
"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);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры // ЗаполнитьДокументРеализация()"
бух редакции 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);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры // ЗаполнитьДокументРеализация()"
09.06.2010
12:44
#2
"Впишите перед:
> рн.Скидка=1*мПродажа.Скидка.Наименование;
Сообщить(мПродажа.Вид());
узнаете в документе какого вида система пытается найти реквизит Скидка в то время когда его там нет.
И вообще вопрос, что значит:
1*мПродажа.Скидка.Наименование = ?
число на строку умножается"
> рн.Скидка=1*мПродажа.Скидка.Наименование;
Сообщить(мПродажа.Вид());
узнаете в документе какого вида система пытается найти реквизит Скидка в то время когда его там нет.
И вообще вопрос, что значит:
1*мПродажа.Скидка.Наименование = ?
число на строку умножается"
09.06.2010
13:55
#4
В типовой 1С:Бухгалтерии нет документа вида "Реализация".
Кстати, в документе "РасходнаяНакладная" реквизита "Скидка" тоже нет. Обработка, которая у вас не работает была создана для использования с какой то иной или для использования с измененной конфигурацией.
Кстати, в документе "РасходнаяНакладная" реквизита "Скидка" тоже нет. Обработка, которая у вас не работает была создана для использования с какой то иной или для использования с измененной конфигурацией.
09.06.2010
14:01
#5
что порекомендуете сделать? можно как-то безболезненно избавиться от этой скидки?
09.06.2010
14:48
#7
"закомментировал строки, вроде все пошло, осталось разобраться верно ли теперь все документы переносит.
рн.Скидка=1*мПродажа.Скидка.Наименование;
рн.ЦеныИзДокумента=шаблонРеализ.ЦеныИзДокумента;
и
рн.СумСкидка=рн.Количество*рн.Цена-рн.Сумма;
спасибо!"
рн.Скидка=1*мПродажа.Скидка.Наименование;
рн.ЦеныИзДокумента=шаблонРеализ.ЦеныИзДокумента;
и
рн.СумСкидка=рн.Количество*рн.Цена-рн.Сумма;
спасибо!"
11.06.2010
10:44
#8
"Теперь выдаёт еще одну ошибку:
текДок.Записать();
{}:Номер не уникальный!
чтобы вернуть всё в первоначальное положение по базе данных, что нужно сделать? или нужно было скопировать её, а потом если что заменить?
// Сывак 11.06.2009 Начало
//==============================================r>// СоздатьДокумент()
//==============================================
Проц едура СоздатьДокумент(текДок, Продажа = """", текДатаДок = """")
Перем Ч;
Перем М;
Перем С;
Ч = 0;
М = 0;
С = 0;
текДок.Новый();
Если (текДок.Вид() <> "ГотоваяПродукция") И (текДок.Вид() <> "ПлановаяСебестоимость") Тогда
текДок.ДатаДок = Продажа.ДатаДок;
текДок.НомерДок = ПолучитьНомерДокумента(Продажа.НомерДок);
Иначе
текДок.ДатаДок = текДатаДок;
КонецЕсли;
Если (текДок.Вид() = "ГотоваяПродукция") ИЛИ (текДок.Вид() = "ПлановаяСебестоимость") Тогда
текДок.Комментарий = "Создан по реализации и возвратам загруженым из Торговли-Склад " + Формат(ТекущаяДата(),"Д (0)ДДММММГГГГ");
Иначе
текДок.Комментарий = "Загружен из Торговли-Склад " + Формат(ТекущаяДата(),"Д (0)ДДММММГГГГ");
КонецЕсли;
текДок.Записать();
Если текДок.Вид() = "РасходнаяНакладная" Тогда
Ч = 12;
ИначеЕсли текДок.Вид() = "ПоступлениеТоваров" Тогда
Ч = 9;
ИначеЕсли текДок.Вид() = "ГотоваяПродукция" Тогда
Ч = 8;
ИначеЕсли текДок.Вид() = "ПлановаяСебестоимость" Тогда
Ч = 6;
КонецЕсли;
М = 0;
С = 0;
текДок.УстановитьВремя(Ч, М, С);
текДок.Записать();
текДок.ПолучитьВремя(Ч, М, С);
Сообщить(""""+ текДок.ТекущийДокумент() + " " + Строка(Ч) + ":" + Строка(М) + ":" + Строка(С),"i");
КонецПроцедуры // СоздатьДокумент() // Сывак 11.06.2009 Окончание"
текДок.Записать();
{}:Номер не уникальный!
чтобы вернуть всё в первоначальное положение по базе данных, что нужно сделать? или нужно было скопировать её, а потом если что заменить?
// Сывак 11.06.2009 Начало
//==============================================r>// СоздатьДокумент()
//==============================================
Проц
Перем Ч;
Перем М;
Перем С;
Ч = 0;
М = 0;
С = 0;
текДок.Новый();
Если (текДок.Вид() <> "ГотоваяПродукция") И (текДок.Вид() <> "ПлановаяСебестоимость") Тогда
текДок.ДатаДок = Продажа.ДатаДок;
текДок.НомерДок = ПолучитьНомерДокумента(Продажа.НомерДок);
Иначе
текДок.ДатаДок = текДатаДок;
КонецЕсли;
Если (текДок.Вид() = "ГотоваяПродукция") ИЛИ (текДок.Вид() = "ПлановаяСебестоимость") Тогда
текДок.Комментарий = "Создан по реализации и возвратам загруженым из Торговли-Склад " + Формат(ТекущаяДата(),"Д (0)ДДММММГГГГ");
Иначе
текДок.Комментарий = "Загружен из Торговли-Склад " + Формат(ТекущаяДата(),"Д (0)ДДММММГГГГ");
КонецЕсли;
текДок.Записать();
Если текДок.Вид() = "РасходнаяНакладная" Тогда
Ч = 12;
ИначеЕсли текДок.Вид() = "ПоступлениеТоваров" Тогда
Ч = 9;
ИначеЕсли текДок.Вид() = "ГотоваяПродукция" Тогда
Ч = 8;
ИначеЕсли текДок.Вид() = "ПлановаяСебестоимость" Тогда
Ч = 6;
КонецЕсли;
М = 0;
С = 0;
текДок.УстановитьВремя(Ч, М, С);
текДок.Записать();
текДок.ПолучитьВремя(Ч, М, С);
Сообщить(""""+ текДок.ТекущийДокумент() + " " + Строка(Ч) + ":" + Строка(М) + ":" + Строка(С),"i");
КонецПроцедуры // СоздатьДокумент() // Сывак 11.06.2009 Окончание"
- 1
- 2
Читают тему
(гостей: 1)