Метод объекта не обнаружен (Свойство) Универсальный Обмен
Доброго.
Делаю в КД 2 правила обмена между ТиС 9.2 (ОРК 7.70.975, платформа 7.70.025) и БП 3.0 (3.0.43.187, платформа 8.3.9.1818).
В документе "Реализация товаров и услуг" пытаюсь сделать автоматическое заполнение СУ в ТЧ товары (на основе функций и процедур в конфигурации).
При загрузке получаю ошибку:
Проверяю, и таки да:
ТипЗнч(ПараметрыЗаполнения.ДанныеФормы.Строка) - СтрокаТабличнойЧасти
а должно быть ДанныеФормыЭлементКоллекции.
Вопрос:
Можно ли как то исправить, или придется счета учета вручную проставлять?
Делаю в КД 2 правила обмена между ТиС 9.2 (ОРК 7.70.975, платформа 7.70.025) и БП 3.0 (3.0.43.187, платформа 8.3.9.1818).
В документе "Реализация товаров и услуг" пытаюсь сделать автоматическое заполнение СУ в ТЧ товары (на основе функций и процедур в конфигурации).
ПКО_ПослеЗагрузки_РеализацияТоваровУслуг |
---|
Документ=Объект;
ТЧТовары=Документ.Товары;
ТЧУслуги=Документ.Услуги;
Для Каждого стр из ТЧТовары Цикл
Товар=стр.Номенклатура;
Если Товар.Услуга Тогда
Сообщить("Это "+Товар+" Услуга");
КонецЕсли;
//замена функции+
//Функция ПодготовитьПараметрыОбработкиТоварыНоменклатураПриИзменении(Форма, СтрокаТабличнойЧасти) Экспорт
//ЭтоКомиссия = РеализацияТоваровУслугФормыКлиентСервер.ПолучитьРеквизитФормы(Форма, "ЭтоКомиссия");
ЭтоКомиссия = Ложь;
ДанныеСтрокиТаблицы = Новый Структура(
"Номенклатура, ЕдиницаИзмерения, Коэффициент, Количество,
|Цена, Сумма, СтавкаНДС, СуммаНДС,
|НомерГТД, СтранаПроисхождения");
ЗаполнитьЗначенияСвойств(ДанныеСтрокиТаблицы, стр);
ДанныеОбъекта = Новый Структура(
"Дата, ВидОперации, Организация, ДеятельностьНаПатенте,
|ТипЦен, ВалютаДокумента, КурсВзаиморасчетов, КратностьВзаиморасчетов,
|СуммаВключаетНДС, ДоговорКонтрагента,
|ЭтоКомиссия, Реализация");
ЗаполнитьЗначенияСвойств(ДанныеОбъекта, Документ);
ДанныеОбъекта.ЭтоКомиссия = ЭтоКомиссия;
ДанныеОбъекта.Реализация = Истина;
ПараметрыЗаполненияСчетовУчета = РеализацияТоваровУслугФормыКлиентСервер.НачатьЗаполнениеСчетовУчета(
"Товары.Номенклатура",
Объект,
стр,
ДанныеОбъекта,
ДанныеСтрокиТаблицы);
ПараметрыОбработки = Новый Структура();
ПараметрыОбработки.Вставить("ДанныеСтрокиТаблицы", ДанныеСтрокиТаблицы);
ПараметрыОбработки.Вставить("ДанныеОбъекта", ДанныеОбъекта);
ПараметрыОбработки.Вставить("СчетаУчетаКЗаполнению", ПараметрыЗаполненияСчетовУчета.КЗаполнению);
//замена функции-
ПараметрыОбработки.ДанныеСтрокиТаблицы.Вставить("Всего", Стр.Всего);
ПараметрыОбработки.ДанныеСтрокиТаблицы.Вставить("СчетДоходовВедетсяУчетПоНоменклатурнымГруппам", Стр.СчетДоходовВедетсяУчетПоНоменклатурнымГруппам);
ПараметрыОбработки.ДанныеСтрокиТаблицы.Вставить("СчетУчетаЗабалансовый", Стр.СчетУчетаЗабалансовый);
//Замена функции Документ.ЗаполнитьПараметрыОбъектаДляЗаполненияДобавленныхКолонок(Форма, ПараметрыОбработки.ДанныеОбъекта);
Если ТипЗнч(ПараметрыОбработки.ПараметрыОбъекта)<> Тип("Структура") Тогда
ПараметрыОбъекта = Новый Структура;
КонецЕсли;
ПараметрыОбъекта.Вставить("СуммаВключаетНДС", Документ.СуммаВключаетНДС);
//Замена функции-
Документ.ТоварыНоменклатураПриИзмененииНаСервере(
ПараметрыОбработки.ДанныеСтрокиТаблицы,
ПараметрыОбработки.ДанныеОбъекта,
ПараметрыОбработки.СчетаУчетаКЗаполнению);
ЗаполнитьЗначенияСвойств(Стр, ПараметрыОбработки.ДанныеСтрокиТаблицы);
ОтобразитьСубконтоСчетаДоходовТовары = ОтобразитьСубконтоСчетаДоходовТовары ИЛИ НЕ Стр.СчетДоходовВедетсяУчетПоНоменклатурнымГруппам;
КонецЦикла;
Показать |
При загрузке получаю ошибку:
Текст ошибки |
---|
Ошибка при загрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1258)}: Ошибка в обработчике события ПослеЗагрузкиОбъекта
ИмяПКО = РеализацияТоваровУслуг ТипОбъекта = Реализация (акт, накладная) Объект = Реализация (акт, накладная) БП00000579 от 09.01.2017 14:45:10 Обработчик = ПослеЗагрузкиОбъекта ОписаниеОшибки = Метод объекта не обнаружен (Свойство) ПозицияМодуля = ОбщийМодуль.СчетаУчетаВДокументахКлиентСервер.Модуль(213) КодСообщения = 21 |
Проверяю, и таки да:
Если Не ПараметрыЗаполнения.ДанныеФормы.Строка.Свойство(ИмяРеквизитаДетально.Реквизит) Тогда
Возврат;
КонецЕсли;
ТипЗнч(ПараметрыЗаполнения.ДанныеФормы.Строка) - СтрокаТабличнойЧасти
а должно быть ДанныеФормыЭлементКоллекции.
Вопрос:
Можно ли как то исправить, или придется счета учета вручную проставлять?
По теме из базы знаний
Найденные решения
(1) проще используй метод
СчетаУчетаВДокументах.ЗаполнитьПередЗаписью();
пример вызова после загрузки
СчетаУчетаВДокументах.ЗаполнитьПередЗаписью(Объект, РежимЗаписиДокумента.Запись);
Отлично заполнит во все всем документе все счета и аналитику. А уже потом можешь дозаполнить объект как тебе нужно.
СчетаУчетаВДокументах.ЗаполнитьПередЗаписью();
пример вызова после загрузки
СчетаУчетаВДокументах.ЗаполнитьПередЗаписью(Объект, РежимЗаписиДокумента.Запись);
Отлично заполнит во все всем документе все счета и аналитику. А уже потом можешь дозаполнить объект как тебе нужно.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) проще используй метод
СчетаУчетаВДокументах.ЗаполнитьПередЗаписью();
пример вызова после загрузки
СчетаУчетаВДокументах.ЗаполнитьПередЗаписью(Объект, РежимЗаписиДокумента.Запись);
Отлично заполнит во все всем документе все счета и аналитику. А уже потом можешь дозаполнить объект как тебе нужно.
СчетаУчетаВДокументах.ЗаполнитьПередЗаписью();
пример вызова после загрузки
СчетаУчетаВДокументах.ЗаполнитьПередЗаписью(Объект, РежимЗаписиДокумента.Запись);
Отлично заполнит во все всем документе все счета и аналитику. А уже потом можешь дозаполнить объект как тебе нужно.
(3) К сожалению не заполняет, идет возврат в Процедура ЗаполнитьПередЗаписью():
При этом ДополнительныеСвойства тип Структура, но пустая, соответственно Функция ЗаполнятьПередЗаписью(ДополнительныеСвойства) возвращает Ложь:
Можно ли просто в Объект.ДополнительныеСвойства добавить свойство "ЗаполнитьСчетаУчетаПередЗаписью"?
Если Не ЗаполнятьПередЗаписью(Объект.ДополнительныеСвойства) Тогда
Возврат;
КонецЕсли;
При этом ДополнительныеСвойства тип Структура, но пустая, соответственно Функция ЗаполнятьПередЗаписью(ДополнительныеСвойства) возвращает Ложь:
Функция ЗаполнятьПередЗаписью(ДополнительныеСвойства)
Если Не СчетаУчетаВДокументахВызовСервераПовтИсп.ПользовательУправляетСчетамиУчета() Тогда
Возврат Истина;
КонецЕсли;
Если Не ДополнительныеСвойства.Свойство("ЗаполнитьСчетаУчетаПередЗаписью") Тогда
Возврат Ложь;
КонецЕсли;
Возврат ДополнительныеСвойства.ЗаполнитьСчетаУчетаПередЗаписью;
КонецФункции
ПоказатьМожно ли просто в Объект.ДополнительныеСвойства добавить свойство "ЗаполнитьСчетаУчетаПередЗаписью"?
(4)
Да, можно, в итоге задача решена двумя строками:
Спасибо Вам.
Можно ли просто в Объект.ДополнительныеСвойства добавить свойство "ЗаполнитьСчетаУчетаПередЗаписью"?
Да, можно, в итоге задача решена двумя строками:
Объект.ДополнительныеСвойства.Вставить("ЗаполнитьСчетаУчетаПередЗаписью",Истина);
СчетаУчетаВДокументах.ЗаполнитьПередЗаписью(Объект, РежимЗаписиДокумента.Запись);
Спасибо Вам.
В функции СчетаУчетаВДокументахКлиентСервер.НовыйПараметрыЗаполнения не проходит блок:
#Если Клиент Тогда
// Контейнер служит для передачи на сервер нужных данных объекта
Если ПараметрыЗаполнения.Заполнять Тогда
ПараметрыЗаполнения.Вставить("Контейнер", Новый Структура);
ПараметрыЗаполнения.Контейнер.Вставить("Объект");
ПараметрыЗаполнения.Контейнер.Вставить("Строка");
КонецЕсли;
#КонецЕсли
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот