Здравствуйте такой вопрос. Делаю обработку, которая на основании счета делаете реализацию, а потом на основании реализации, создает ЭАВР(электронный акт выполненных работ)
Часть процедуры, которая выполняет эти действия
Но ругается что не найдено поле МассивОснований, куда смотреть и копать?
Поле объекта не обнаружено (МассивОснований)
{ОбщийМодуль.АВРСерверПереопределяемый.Модуль(115)}: МассивДокументов = ПараметрыСоздания.МассивОснований;
{Обработка.ОбменЭСФ.МодульОбъекта(4178)}: Возврат АВРСерверПереопределяемый.СоздатьСписокИсходящихАВР(МассивОснований)
{ОбщийМодуль.АВРВызовСервера.Модуль(539)}: Возврат ЭСФСерверПовтИсп.ОбработкаОбменЭСФ().СоздатьСписокИсходящихАВР(ПараметрыСоздания);
{ВнешняяОбработка.СоздатьДокументыАВРнаОснованииРеализации.Форма.Форма.Форма(158)}: СписокСозданныхАВР = АВРВызовСервера.СоздатьСписокИсходящихЭАВР(МассивОснований);
{ВнешняяОбработка.СоздатьДокументыАВРнаОснованииРеализации.Форма.Форма.Форма(212)}: СоздатьЭлектронныйАктНаСервере();
Часть процедуры, которая выполняет эти действия
&НаСервере
Процедура СоздатьЭлектронныйАктНаСервере()
МассивОснований = Новый Массив;
Количество = Строка(ДанныеСЧ.Количество());
Сч = 0;
Для каждого СтрокаТЗ Из ДанныеСЧ Цикл
Если не СтрокаТЗ.Пометка Тогда
Продолжить;
КонецЕсли;
Попытка
Если Не ЗначениеЗаполнено(СтрокаТЗ.Реализация) Тогда
ДокуметРеализацияТоваровУслуг = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
ДокуметРеализацияТоваровУслуг.ЗаполнитьПоДокументуОснования(СтрокаТЗ.ДокументСчета);
ДокуметРеализацияТоваровУслуг.Дата = ТекущаяДата();
ДокуметРеализацияТоваровУслуг.Записать(РежимЗаписиДокумента.Проведение);
СтрокаТЗ.Реализация = ДокуметРеализацияТоваровУслуг.Ссылка;
КонецЕсли;
Исключение
ДокуметРеализацияТоваровУслуг.Записать(РежимЗаписиДокумента.Запись);
Сообщить(ОписаниеОшибки());
Продолжить;
КонецПопытки;
МассивОснований.Очистить();
Сч = Сч + 1;
//Состояние("Обработано: "+Сч+" из "+Количество);
Если ЗначениеЗаполнено(СтрокаТЗ.ДатаАВР) Тогда
Продолжить;
КонецЕсли;
Если НЕ СтрокаТЗ.ИИНКорректен Тогда
Сообщить("Ошибка ИИН строка пропущена. Контрагент:"+Строка(СтрокаТЗ.Контрагент)+" не корректен ИИН: "+СтрокаТЗ.ИИН);
Если ПропускатьКонтрагентовСНекорректнымиИИН Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
МассивОснований.Вставить(0,СтрокаТЗ.Реализация);
СписокСозданныхАВР = АВРВызовСервера.СоздатьСписокИсходящихЭАВР(МассивОснований);
Если СписокСозданныхАВР <> Неопределено И СписокСозданныхАВР.Количество() > 0 Тогда
АВР = СписокСозданныхАВР.Получить(0).ПолучитьОбъект();
АВР.Дата = ТекущаяДата();
АВР.Организация = АВР.Организация.ГоловнаяОрганизация;
АВР.ВерсияБланкаАВР = 2;
Если НЕ СтрокаТЗ.ИИНКорректен и ЗначениеЗаполнено(СтрокаТЗ.ИИН) Тогда
Для каждого СтрокаПолучатели Из АВР.Получатели Цикл
СтрокаПолучатели.Нерезидент = Истина;
СтрокаПолучатели.ПолучательИдентификатор = "";
КонецЦикла;
АВР.ГрузополучательИдентификатор = "";
ИначеЕсли не ЗначениеЗаполнено(СтрокаТЗ.ИИН) Тогда
Для каждого СтрокаПолучатели Из АВР.Получатели Цикл
СтрокаПолучатели.РозничнаяРеализация = Истина;
СтрокаПолучатели.ПолучательИдентификатор = "";
КонецЦикла;
АВР.ГрузополучательИдентификатор = "";
КонецЕсли;
Попытка
АВР.Записать(РежимЗаписиДокумента.Проведение);
Исключение
АВР.Записать(РежимЗаписиДокумента.Запись);
Сообщить(ОписаниеОшибки());
Продолжить;
КонецПопытки;
СтрокаТЗ.АВР = АВР.Ссылка;
СтрокаТЗ.ДатаАВР = АВР.Дата;
СтрокаТЗ.СостояниеАВР = АВР.Состояние;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
ПоказатьНо ругается что не найдено поле МассивОснований, куда смотреть и копать?
Поле объекта не обнаружено (МассивОснований)
{ОбщийМодуль.АВРСерверПереопределяемый.Модуль(115)}: МассивДокументов = ПараметрыСоздания.МассивОснований;
{Обработка.ОбменЭСФ.МодульОбъекта(4178)}: Возврат АВРСерверПереопределяемый.СоздатьСписокИсходящихАВР(МассивОснований)
{ОбщийМодуль.АВРВызовСервера.Модуль(539)}: Возврат ЭСФСерверПовтИсп.ОбработкаОбменЭСФ().СоздатьСписокИсходящихАВР(ПараметрыСоздания);
{ВнешняяОбработка.СоздатьДокументыАВРнаОснованииРеализации.Форма.Форма.Форма(158)}: СписокСозданныхАВР = АВРВызовСервера.СоздатьСписокИсходящихЭАВР(МассивОснований);
{ВнешняяОбработка.СоздатьДокументыАВРнаОснованииРеализации.Форма.Форма.Форма(212)}: СоздатьЭлектронныйАктНаСервере();
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
написаннно же все.
в Общем модуле АВРСерверПереопределяемый
в функции/процедуре СоздатьСписокИсходящихАВР
в строке 115 общего модуля АВРСерверПереопределяемый
у вас есть следующий код:
МассивДокументов = ПараметрыСоздания.МассивОснований;
система не понимает что такое ПараметрыСоздания.МассивОснований;
скорее всего вы не присвоили там этот параметр структуры.
туда и копай.
написаннно же все.
в Общем модуле АВРСерверПереопределяемый
в функции/процедуре СоздатьСписокИсходящихАВР
в строке 115 общего модуля АВРСерверПереопределяемый
у вас есть следующий код:
МассивДокументов = ПараметрыСоздания.МассивОснований;
система не понимает что такое ПараметрыСоздания.МассивОснований;
скорее всего вы не присвоили там этот параметр структуры.
туда и копай.
(3)
стек вызовов - обратно копай.
Поле объекта не обнаружено (МассивОснований)
{ОбщийМодуль.АВРСерверПереопределяемый.Модуль(115)}: МассивДокументов = ПараметрыСоздания.МассивОснований;
{Обработка.ОбменЭСФ.МодульОбъекта(4178)}: Возврат АВРСерверПереопределяемый.СоздатьСписокИсходящихАВР(МассивОснований)
{ОбщийМодуль.АВРВызовСервера.Модуль(539)}: Возврат ЭСФСерверПовтИсп.ОбработкаОбменЭСФ().СоздатьСписокИсходящихАВР(ПараметрыСоздания);
{ВнешняяОбработка.СоздатьДокументыАВРнаОснованииРеализации.Форма.Форма.Форма(158)}: СписокСозданныхАВР = АВРВызовСервера.СоздатьСписокИсходящихЭАВР(МассивОснований);
{ВнешняяОбработка.СоздатьДокументыАВРнаОснованииРеализации.Форма.Форма.Форма(212)}: СоздатьЭлектронныйАктНаСервере();
если типовую конфу не хочешь менять.
то смотри по стеку вызовов - где какие параметры передаются.
и как надо изменить входящий параметр во внешней обработке, таким образом, чтобы ошибки не было.
могу предположить, что надо изначально в МассивОснований - помещать структуру Структура.МассивОснований
- но это "пальцем в небо".. по коду надо смотреть.
стек вызовов - обратно копай.
Поле объекта не обнаружено (МассивОснований)
{ОбщийМодуль.АВРСерверПереопределяемый.Модуль(115)}: МассивДокументов = ПараметрыСоздания.МассивОснований;
{Обработка.ОбменЭСФ.МодульОбъекта(4178)}: Возврат АВРСерверПереопределяемый.СоздатьСписокИсходящихАВР(МассивОснований)
{ОбщийМодуль.АВРВызовСервера.Модуль(539)}: Возврат ЭСФСерверПовтИсп.ОбработкаОбменЭСФ().СоздатьСписокИсходящихАВР(ПараметрыСоздания);
{ВнешняяОбработка.СоздатьДокументыАВРнаОснованииРеализации.Форма.Форма.Форма(158)}: СписокСозданныхАВР = АВРВызовСервера.СоздатьСписокИсходящихЭАВР(МассивОснований);
{ВнешняяОбработка.СоздатьДокументыАВРнаОснованииРеализации.Форма.Форма.Форма(212)}: СоздатьЭлектронныйАктНаСервере();
если типовую конфу не хочешь менять.
то смотри по стеку вызовов - где какие параметры передаются.
и как надо изменить входящий параметр во внешней обработке, таким образом, чтобы ошибки не было.
могу предположить, что надо изначально в МассивОснований - помещать структуру Структура.МассивОснований
- но это "пальцем в небо".. по коду надо смотреть.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот