Редактирование правил УТ 10.3 - БП 3.0 (из оприходования делаем выпуск)
Всем привет!
Задача из документа "Оприходование товаров" (УТ) сделать "Отчет производства за смену" (БП).
Я открыл в КД стандартные правила конвертации из папки шаблонов БП.
Отредактировал правила, сопоставил свойства объектов.
При обмене получаю ошибку.
У ОтчетаОПроизводствеЗаСмену нет табличной части "Товары", но есть аналогичная - "Продукция", с которой я и делал сопоставление.
Подскажите куда еще посмотреть?
см. скриншоты
Задача из документа "Оприходование товаров" (УТ) сделать "Отчет производства за смену" (БП).
Я открыл в КД стандартные правила конвертации из папки шаблонов БП.
Отредактировал правила, сопоставил свойства объектов.
При обмене получаю ошибку.
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(3702)}: Ошибка в обработчике события ПослеЗагрузкиОбъекта
ИмяПКО = ОприходованиеТоваров
ТипОбъекта = Отчет производства за смену
Объект = Отчет производства за смену ЦБ000000013 от 12.04.2015 10:13:07
Обработчик = ПослеЗагрузкиОбъекта
ОписаниеОшибки = Поле объекта не обнаружено (Товары)
ПозицияМодуля = (1)
КСообщенияОбОшибках = 21
ВызватьИсключение СтрокаСообщенияОбОшибке;
ПоказатьУ ОтчетаОПроизводствеЗаСмену нет табличной части "Товары", но есть аналогичная - "Продукция", с которой я и делал сопоставление.
Подскажите куда еще посмотреть?
см. скриншоты
По теме из базы знаний
- Перенос данных из УПП 1.3 / КА 1.1 в БП 3. Переносятся документы, справочники и начальные остатки
- Загрузка документов из Excel в 1С: УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы
- Распознавание и загрузка сканов в 1С "одним нажатием". УПД, ТОРГ-12, накладные, счета, номенклатура, заказы и т.д.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) El_Loco, дабы не гадать, попробуйте поставить в базе-приемнике "Остановка по ошибке" - и посмотрите, где остановится. Если на выполнении обработчика - как раз и узнаете, какой там текст. Потому что если бы ругалось на глобальный обработчик, то в описании ошибки стояло бы что-то вроде "Обработчик = ПослеЗагрузкиОбъекта (глобальный)".
(8) Ел_Лосо, Со скринами все ОК, вообщем, исчерпывающее описание проблемы))
Это я не про скрины, а про проблему ...
А попробуйте ка, посмотреть файл обмена, в том же notepade++, пошукайте там вхождение "Товары".
Проверьте также алгоритмы: ЗаполнитьРеквизитыПоУмолчанию., у Вас на скрине в (3) посте.
Может прояснится что?
Это я не про скрины, а про проблему ...
А попробуйте ка, посмотреть файл обмена, в том же notepade++, пошукайте там вхождение "Товары".
Проверьте также алгоритмы: ЗаполнитьРеквизитыПоУмолчанию., у Вас на скрине в (3) посте.
Может прояснится что?
(2) dubrovin, вот такое там, если я вас правильно понял.
в коде алгоритма не нашел ничего по таб.часть...
в коде алгоритма не нашел ничего по таб.часть...
//подставляет обязательные значения
МетаданныеДокумента = Объект.Метаданные();
Если Метаданные.Документы.Содержит(МетаданныеДокумента) Тогда
ОбъектСодержитРеквизитОрганизация = ОбщегоНазначения.ЕстьРеквизитОбъекта("Организация", МетаданныеДокумента);
ОбъектСодержитРеквизитСклад = ОбщегоНазначения.ЕстьРеквизитОбъекта("Склад", МетаданныеДокумента);
ОбъектСодержитПодразделениеОрганизации = ОбщегоНазначения.ЕстьРеквизитОбъекта("ПодразделениеОрганизации", МетаданныеДокумента);
Если ОбъектСодержитРеквизитОрганизация И НЕ ЗначениеЗаполнено(Объект.Организация) Тогда
Объект.Организация = Параметры.ОсновнаяОрганизация;
КонецЕсли;
Если ОбъектСодержитРеквизитСклад Тогда
Если (НЕ ЗначениеЗаполнено(Объект.Склад)) Тогда
Объект.Склад = Параметры.СкладДляОбменаДаннымиСУТ;
КонецЕсли;
КонецЕсли;
// Заполнение реквизита ПодразделениеОрганизации
Если ТипЗнч(Объект) = Тип("ДокументОбъект.СписаниеСРасчетногоСчета")
ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.ПоступлениеНаРасчетныйСчет")
ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.ПриходныйКассовыйОрдер")
ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.РасходныйКассовыйОрдер") Тогда
Если Объект.ЭтоНовый() ИЛИ Объект.Ссылка.Организация <> Объект.Организация Тогда
Если ТипЗнч(Объект) = Тип("ДокументОбъект.СписаниеСРасчетногоСчета") Тогда
// Заполнение подразделения организации
Если ЗначениеЗаполнено(Объект.Организация)
И ЗначениеЗаполнено(Объект.СчетОрганизации)
Тогда
СвойстваСчета = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
Объект.СчетОрганизации,
"ПодразделениеОрганизации"
);
Объект.ПодразделениеОрганизации = СвойстваСчета.ПодразделениеОрганизации;
КонецЕсли;
Если Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийСписаниеДенежныхСредств.ОплатаПоставщику")
ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийСписаниеДенежныхСредств.ВозвратПокупателю")
ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийСписаниеДенежныхСредств.ПрочиеРасчетыСКонтрагентами")
ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийСписаниеДенежныхСредств.РасчетыПоКредитамИЗаймам")
Тогда
Объект.ПодразделениеДт = Неопределено;
// {ОбособленныеПодразделения
Иначе
Объект.ПодразделениеДт = Объект.ПодразделениеОрганизации;
// }ОбособленныеПодразделения
КонецЕсли;
ИначеЕсли ТипЗнч(Объект) = Тип("ДокументОбъект.ПоступлениеНаРасчетныйСчет") Тогда
// Заполнение подразделения организации
Если ЗначениеЗаполнено(Объект.Организация)
И ЗначениеЗаполнено(Объект.СчетОрганизации)
Тогда
СвойстваСчета = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
Объект.СчетОрганизации,
"ПодразделениеОрганизации"
);
Объект.ПодразделениеОрганизации = СвойстваСчета.ПодразделениеОрганизации;
КонецЕсли;
Если Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПоступлениеДенежныхСредств.ОплатаПокупателя")
ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПоступлениеДенежныхСредств.ВозвратОтПоставщика")
ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПоступлениеДенежныхСредств.ПрочиеРасчетыСКонтрагентами")
ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПоступлениеДенежныхСредств.РасчетыПоКредитамИЗаймам")
Тогда
Объект.ПодразделениеКт = Неопределено;
// {ОбособленныеПодразделения
Иначе
Объект.ПодразделениеКт = Объект.ПодразделениеОрганизации;
// }ОбособленныеПодразделения
КонецЕсли;
ИначеЕсли ТипЗнч(Объект) = Тип("ДокументОбъект.ПриходныйКассовыйОрдер") Тогда
ОсновноеПодразделение = ОбщегоНазначенияБПВызовСервера.ПолучитьЗначениеПоУмолчанию("ОсновноеПодразделениеОрганизации");
Если ОсновноеПодразделение.Владелец = Объект.Организация Тогда
Объект.ПодразделениеОрганизации = ОсновноеПодразделение;
Иначе
Объект.ПодразделениеОрганизации = Неопределено;
КонецЕсли;
Если Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПКО.ОплатаПокупателя")
ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПКО.ВозвратОтПоставщика")
ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПКО.ВозвратОтПодотчетногоЛица")
ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПКО.ПолучениеНаличныхВБанке")
ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийПКО.РасчетыПоКредитамИЗаймам")
Тогда
Объект.ПодразделениеКт = Неопределено;
// {ОбособленныеПодразделения
Иначе
Объект.ПодразделениеКт = ?(ОбъектСодержитПодразделениеОрганизации, Объект.ПодразделениеОрганизации, Неопределено);
// }ОбособленныеПодразделения
КонецЕсли;
ИначеЕсли ТипЗнч(Объект) = Тип("ДокументОбъект.РасходныйКассовыйОрдер") Тогда
ОсновноеПодразделение = ОбщегоНазначенияБПВызовСервера.ПолучитьЗначениеПоУмолчанию("ОсновноеПодразделениеОрганизации");
Если ОсновноеПодразделение.Владелец = Объект.Организация Тогда
Объект.ПодразделениеОрганизации = ОсновноеПодразделение;
Иначе
Объект.ПодразделениеОрганизации = Неопределено;
КонецЕсли;
Если (Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийРКО.ОплатаПоставщику")
ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийРКО.ВозвратПокупателю")
ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийРКО.ВыдачаПодотчетномуЛицу")
ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийРКО.РасчетыПоКредитамИЗаймам")
ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийРКО.ВзносНаличнымиВБанк")
ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийРКО.ВыплатаДепонентов")
ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийРКО.ВыплатаЗаработнойПлатыПоВедомостям")
ИЛИ Объект.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийРКО.ВыплатаЗаработнойПлатыРаботнику"))
Тогда
Объект.ПодразделениеДт = Неопределено;
// {ОбособленныеПодразделения
Иначе
Объект.ПодразделениеДт = Объект.ПодразделениеОрганизации;
// }ОбособленныеПодразделения
КонецЕсли;
КонецЕсли;
КонецЕсли;
ИначеЕсли ТипЗнч(Объект) = Тип("ДокументОбъект.АвансовыйОтчет")
ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.ОтчетКомиссионераОПродажах")
ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.ОтчетКомитентуОПродажах")
ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.КорректировкаДолга") Тогда
//Выполнить процедуру ЗаполнениеДокументов.ПриИзмененииЗначенияОрганизации(ЭтотОбъект, глЗначениеПеременной("глТекущийПользователь"));
Если ОбъектСодержитРеквизитОрганизация И ОбъектСодержитПодразделениеОрганизации
И ЗначениеЗаполнено(Объект.Организация) Тогда
ПодразделениеПоУмолчанию = ОбщегоНазначенияБПВызовСервера.ПолучитьЗначениеПоУмолчанию("ОсновноеПодразделениеОрганизации");
// Если ПодразделениеОрганизации не заполнено.
Если Объект.ЭтоНовый() ИЛИ Объект.Ссылка.Организация <> Объект.Организация Тогда
Если НЕ ЗначениеЗаполнено(Объект.ПодразделениеОрганизации) Тогда
// Если ПодразделениеПоУмолчанию соответствует выбранной организации, подставляем его.
Если ПодразделениеПоУмолчанию.Владелец = Объект.Организация Тогда
Объект.ПодразделениеОрганизации = ПодразделениеПоУмолчанию;
КонецЕсли;
Иначе // Если ПодразделениеОрганизации заполнено.
// Если ПодразделениеОрганизации не соответствует выбранной организации.
Если НЕ Объект.ПодразделениеОрганизации.Владелец = Объект.Организация Тогда
// Если ПодразделениеПоУмолчанию соответствует выбранной организации, подставляем его.
Если ПодразделениеПоУмолчанию.Владелец = Объект.Организация Тогда
Объект.ПодразделениеОрганизации = ПодразделениеПоУмолчанию;
Иначе // Выбрана не основная организация. ПодразделениеОрганизации нужно очистить.
Объект.ПодразделениеОрганизации = Справочники.ПодразделенияОрганизаций.ПустаяСсылка();
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли
КонецЕсли;
ИначеЕсли ТипЗнч(Объект) = Тип("ДокументОбъект.ГТДИмпорт") Тогда
// Выполнить процедуру ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(ЭтотОбъект);
Если ОбъектСодержитРеквизитОрганизация
И ЗначениеЗаполнено(Объект.Организация)
И ОбъектСодержитПодразделениеОрганизации
И (НЕ ЗначениеЗаполнено(Объект.ПодразделениеОрганизации)) Тогда
ПодразделениеОрганизации = ОбщегоНазначенияБПВызовСервера.ПолучитьЗначениеПоУмолчанию("ОсновноеПодразделениеОрганизации");
Если ЗначениеЗаполнено(ПодразделениеОрганизации) И ПодразделениеОрганизации.Владелец = Объект.Организация Тогда
Объект.ПодразделениеОрганизации = ПодразделениеОрганизации;
КонецЕсли;
КонецЕсли;
ИначеЕсли ТипЗнч(Объект) = Тип("ДокументОбъект.ВозвратТоваровОтПокупателя")
ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.ВозвратТоваровПоставщику")
ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.ОприходованиеТоваров")
ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.ОтчетОРозничныхПродажах")
ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.ПоступлениеТоваровУслуг")
ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.РеализацияТоваровУслуг")
ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.СписаниеТоваров")
ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.ТребованиеНакладная")
ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.КомплектацияНоменклатуры")
ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.СчетНаОплатуПокупателю")
ИЛИ ТипЗнч(Объект) = Тип("ДокументОбъект.ПеремещениеТоваров") Тогда
Если ТипЗнч(Объект) = Тип("ДокументОбъект.ПеремещениеТоваров") Тогда
Если ОбщегоНазначения.ЕстьРеквизитОбъекта("ПодразделениеОтправитель", МетаданныеДокумента) Тогда
Если Объект.ЭтоНовый() ИЛИ Объект.Ссылка.Организация <> Объект.Организация ИЛИ Объект.Ссылка.СкладОтправитель <> Объект.СкладОтправитель Тогда
Объект.ПодразделениеОтправитель = ОбщегоНазначенияБПВызовСервера.ПолучитьПодразделение(Объект.Организация, Объект.СкладОтправитель);
КонецЕсли;
КонецЕсли;
Если ОбщегоНазначения.ЕстьРеквизитОбъекта("ПодразделениеПолучатель", МетаданныеДокумента) Тогда
Если Объект.ЭтоНовый() ИЛИ Объект.Ссылка.Организация <> Объект.Организация ИЛИ Объект.Ссылка.СкладПолучатель <> Объект.СкладПолучатель Тогда
Объект.ПодразделениеПолучатель = ОбщегоНазначенияБПВызовСервера.ПолучитьПодразделение(Объект.Организация, Объект.СкладПолучатель);
КонецЕсли;
КонецЕсли;
Иначе
Если ОбъектСодержитРеквизитОрганизация
И ОбъектСодержитРеквизитСклад
И ОбъектСодержитПодразделениеОрганизации
Тогда
Если Объект.ЭтоНовый() ИЛИ Объект.Ссылка.Организация <> Объект.Организация ИЛИ Объект.Ссылка.Склад <> Объект.Склад Тогда
Объект.ПодразделениеОрганизации = ОбщегоНазначенияБПВызовСервера.ПолучитьПодразделение(Объект.Организация, Объект.Склад);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот