Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

Необъяснимое поведение 1С (7.7)

IceBeerg
читатель
офлайн
Дата регистрации: 06.10.2004
Сообщений: 803
Пост №1
 
07.11.2007 17:52

"При закрытии документа формируется другой документ и периодически возникает такая ошибка:<br>ТовЦена=Товар.Розн_Цена.Получить(ПолучитьТА()); : {Документ.РасходнаяДолг.Форма.Модуль(256)}: Значение не представляет агрегатный объект (Получить)<br>Вот кусок кода:<br> Если Краски.НайтиПоНаименованию("Краски",0)=1 Тогда //Отрабатывает нормально<br> ВыбратьСтроки();<br> Пока ПолучитьСтроку()>0 Цикл<br> Если Товар.ПринадлежитГруппе(Краски)=0 Тогда//Отсев работает<br> Продолжить;<br> КонецЕсли;<br> ТовЦена=Товар.Розн_Цена.Получить(ПолучитьТА());//Здесь ошибка (строка 256)<br> Если ТовЦена<>ДокЦена Тогда<br> //В удорожание!<br> ДокУд.НоваяСтрока();<br> ДокУд.Товар=Товар;<br>Если ТовЦена=Товар.Розн_Цена.Получить(ПолучитьТА()); обернуть в Попытка Исключение КонецПопытки, то товар в новый документ попадает, но переменная ТовЦена = 0.<br>Почему так происходит?"

Alexandr VA
читатель
офлайн
Дата регистрации: 07.01.2007
Сообщений: 1666
Пост №2
 
07.11.2007 22:56

А какая у Вас конфигурация?<br>Похоже, что-то нетиповое.<br>Скорее всего реквизит Розн_Цена - не Периодический и к нему невозможно применить метод Получить()<br>Проверьте!

Thorvardr
читатель
офлайн
Дата регистрации: 25.02.2005
Сообщений: 3082
Пост №3
 
07.11.2007 22:59

"обычно это бывает если где то по алгоритму перед этим вызывалось:<br>Товар.ИспользоватьДату(КакаяТоДата);<br><br>после этого к цене надо образаться не Товар.Розн_Цена.Получить(КакаяТоДата); , а просто Товар.Розн_Цена"

IceBeerg
читатель
офлайн
Дата регистрации: 06.10.2004
Сообщений: 803
Пост №4
 
08.11.2007 11:15

"Конфигурация не типовая, на основе ТиС.<br>Реквизит Розн_Цена периодический, проверял и уже не один раз использовал конструкцию типа<br>Товар.Розн_Цена.Получить(...); в других местах все работает нормально и даже здесь 1С не всегда спотыкается. "

IceBeerg
читатель
офлайн
Дата регистрации: 06.10.2004
Сообщений: 803
Пост №5
 
08.11.2007 11:21

В процедуре ПриЗакрытии данный вызов не использовал и во всем модуле его нет. Нет даже в модуле проведения. Буду отслеживать вызовы процедур и функций глобального модуля.<br>А можно ли как-то отследить был ли использован метод ИспользоватьДату? Или просто оборачивать в Попытка Исключение ... и при не удачном выполнении Товар.Розн_Цена.Получить( использовать в секции Исключение Товар.Розн_Цена?

IceBeerg
читатель
офлайн
Дата регистрации: 06.10.2004
Сообщений: 803
Пост №6
 
08.11.2007 11:57

"Придумал следующую конструкцию:<br> Если ТипЗначенияСтр(Товар.Розн_Цена)="Число" Тогда<br> ТовЦена=Товар.Розн_Цена;<br> Иначе<br> ТовЦена=Товар.Розн_Цена.Получить(ПолучитьТА());<br> КонецЕсли;<br>Буду гонять...<br>"

Tanya
читатель
офлайн
Дата регистрации: 03.12.2001
Сообщений: 8412
Пост №7
 
08.11.2007 13:02

"Поможет или нет.<br>спр=СоздатьОбъект("Справочник.Номенклатура");<br>спр.ИспользоватьДату(рабочаядата()); <br>стНДС=спр.СтавкаНДС;<br><br>сообщить(стНДС);<br><br>спр=СоздатьОбъект("Справочник.Номенклатура");<br>ст2=спр.СтавкаНДС.Получить(рабочаяДата()); <br>сообщить(ст2);<br><br>т е если мы заново создаем объект то действие ИспользоватьДату прекращается."

IceBeerg
читатель
офлайн
Дата регистрации: 06.10.2004
Сообщений: 803
Пост №8
 
08.11.2007 13:14

Возможно и поможет, но смысл у меня другой.<br>Сравнить цену товара в документе и реальную цену и в случае расхождений создать другой документ.

Tanya
читатель
офлайн
Дата регистрации: 03.12.2001
Сообщений: 8412
Пост №9
 
08.11.2007 13:44

"Если я правильно поняла, то первоначально программа ругалась на метод Получить(). Определили что это бывает когда к справочнику применялся метод ИспользоватьДату(). Вы искали это во всех модулях и не нашли. Проблема стала как "снять" этот метод. <br><br>т е если перед вашим сравнением было<br>товар=СоздатьОбъекут("Справочник.Товары");<br>то метод получить() должен работать.<br><br>P.S. Еще сообщение об ошибки при ПОлучить() после ИспользоватьДату()<br><Поле агрегатного объекта не обнаружено (ПОлучить)> <br><br>у вас в примере другое.<br><Значение не представляет агрегатный объект (Получить)> -<br> такое сообщение бывает когда обращаются к реквизиту котороый не периодический."

IceBeerg
читатель
офлайн
Дата регистрации: 06.10.2004
Сообщений: 803
Пост №10
 
08.11.2007 13:56

Искал почти во всех модулях... процедуру проведения из глобального модуля разбирать не стал.<br>Да в описанной Вами конструкции метод Получить() работать будет, но созданием объекта типа Справочник... для сброса эффекта метода ИспользоватьДату() считаю излишнем (энтропия...).<br>P.S. Текст сообщений брал не из табло, из комментария к событию в конфигураторе. "Поле агрегатного объекта не обнаружено (Получить)..." пишется в табло, но сам не видел, у меня лично данного сбоя не было.<br><br>

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация