Обновил до 770591. Вылетает ошибка! Помогите разобраться.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
В отчете вот эта конструкция выдает ошибку:
ДокОсн = ТабОтчета.Док.ДокументОснование;
Если ПустоеЗначение(ТабОтчета.Док.КодВидаОперации) = 0 Тогда
ТабОтчета.КодВидаОперации = ТабОтчета.Док.КодВидаОперации;
ИначеЕсли Метаданные.Документ(ДокОсн.Вид()).РеквизитШапки("КодВидаОперации").Выбран() = 1 Тогда
ТабОтчета.КодВидаОперации = ДокОсн.КодВидаОперации;
КонецЕсли;
Если документ Запись книги продаж, то там реквизит КодВидаОперации не заполнен, однако, если открыть этот документ, то "кажется", что он заполнен, однако, там стоит в процедуре УправлениеВидимостью() такой код
Если ДатаДок >= '01.10.14' Тогда //дата постановления № 735
...
Форма.КодВидаОперации.Видимость(1);
Если ПустоеЗначение(КодВидаОперации) = 1 Тогда
КодВидаОперации = "01";
КонецЕсли;
.....
в общем. при отрытии подставляет кодвидаоперации = "01"
и, если при закрытии дока его не записать, то в документе данный реквизит все равно пустой.
выход, либо в каждый док заходить и править, либо в отчете ставить заглушку, что, если это док - запись книги продаж, если ее дата больше 01/10/14 и кодвидаоперациипустой, то принимать его за "01"
ДокОсн = ТабОтчета.Док.ДокументОснование;
Если ПустоеЗначение(ТабОтчета.Док.КодВидаОперации) = 0 Тогда
ТабОтчета.КодВидаОперации = ТабОтчета.Док.КодВидаОперации;
ИначеЕсли Метаданные.Документ(ДокОсн.Вид()).РеквизитШапки("КодВидаОперации").Выбран() = 1 Тогда
ТабОтчета.КодВидаОперации = ДокОсн.КодВидаОперации;
КонецЕсли;
Если документ Запись книги продаж, то там реквизит КодВидаОперации не заполнен, однако, если открыть этот документ, то "кажется", что он заполнен, однако, там стоит в процедуре УправлениеВидимостью() такой код
Если ДатаДок >= '01.10.14' Тогда //дата постановления № 735
...
Форма.КодВидаОперации.Видимость(1);
Если ПустоеЗначение(КодВидаОперации) = 1 Тогда
КодВидаОперации = "01";
КонецЕсли;
.....
в общем. при отрытии подставляет кодвидаоперации = "01"
и, если при закрытии дока его не записать, то в документе данный реквизит все равно пустой.
выход, либо в каждый док заходить и править, либо в отчете ставить заглушку, что, если это док - запись книги продаж, если ее дата больше 01/10/14 и кодвидаоперациипустой, то принимать его за "01"
ДокОсн не выбран
А так как докосн скорее всего имеет тип документ всех видов то и происходит ошибка
Проверяйте что в документах формирования книги продаж
И что особенно в документах записькнинипродаж указаны документыоснования
А так как докосн скорее всего имеет тип документ всех видов то и происходит ошибка
Проверяйте что в документах формирования книги продаж
И что особенно в документах записькнинипродаж указаны документыоснования
Добавлю. Запустил вот такую обработку
Процедура Сформировать()
Док = создатьобъект("Документ.ЗаписьКнигиПродаж");
Док.УстановитьФильтр(1,0);
Док.ВыбратьДокументы(НачДата,КонДата);
Пока Док.ПолучитьДокумент() = 1 Цикл
Если ПустоеЗначение(Док.КодВидаОперации) = 1 Тогда
Док.КодВидаОперации = "01";
Док.Провести();
Сообщить("Проведен документ " + Док);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
и все стало супер)
Процедура Сформировать()
Док = создатьобъект("Документ.ЗаписьКнигиПродаж");
Док.УстановитьФильтр(1,0);
Док.ВыбратьДокументы(НачДата,КонДата);
Пока Док.ПолучитьДокумент() = 1 Цикл
Если ПустоеЗначение(Док.КодВидаОперации) = 1 Тогда
Док.КодВидаОперации = "01";
Док.Провести();
Сообщить("Проведен документ " + Док);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
и все стало супер)
ИначеЕсли Метаданные.Документ(ДокОсн.Вид()).РеквизитШапки("КодВидаОперации").Выбран() = 1 Тогда
{Отчет.КнигаПродаж1137.Форма.Модуль(414)}: Поле агрегатного объекта не обнаружено (РеквизитШапки)
вообще по коду в (1): ДокОсн просто не имеет реквизита, потому что при выборе получено пустое значение
ссылка на пустое значение = пустая ссылка, которая реквизитов не имеет, априори
дальнейшие "шаманства" смысла не имели, потому что вы заполняете реквизит документа, который
"Метаданные.Документ(ДокОсн.Вид()).РеквизитШапки("КодВидаОперации").Выбран()" - таки возвращает 1,
а не что-то типа "Ссылка в небо"
просто нужно было посмотреть на каком значении "ДокОсн.Вид()" "затыкается", хоть через Сообщить(),
если трайсить "влом"
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот