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

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

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

1C 8.2.9.356, УТ 10.3.7.9. Не работает метод справочника "Уровень()"

Мозголом
читатель
офлайн
Дата регистрации: 27.02.2007
Сообщений: 145
Пост №1
 
17.12.2010 08:13

"Начинаю постигать азы восьмерки, поэтому сильно прошу не пинать.<br><br>Не могу понять, в чем собственно дело, но почему то не работает метод СправочникаСсылки.Уровень()<br><br>Вот код (тут работает):<br><br>Справочник = Справочники.Номенклатура.ВыбратьИерархически(Группа);<br>Пока Справочник.Следующий() Цикл<br> Если Справочник.ЭтоГруппа Тогда<br> Продолжить;<br> КонецЕсли;<br> Цены = РегистрыСведений.ЦеныНоменклатуры.Выбрать(,ТекущаяДата(),Новый Структура("Номенклатура", Справочник.Ссылка));<br> Цена = 0;<br> Пока Цены.Следующий() Цикл<br> Если Цены.ТипЦен = ТипЦен Тогда<br>      Цена = Цены.Цена;<br> КонецЕсли;<br> КонецЦикла;<br> Если Цена = 0 Тогда<br> Сообщить("У товара " + Справочник.Наименование + " не назначена цена. Пропущен...");<br> Продолжить;<br> КонецЕсли;<br> ОбработаноШтрихкодов = 0;<br> Если Справочник.Весовой = 0 Тогда<br> ШтрихКоды = РегистрыСведений.Штрихкоды.Выбрать(Новый Структура("Владелец", Справочник.Ссылка));<br> Пока ШтрихКоды.Следующий() Цикл<br> ...<br> Родитель = Справочник.Родитель;<br> Если ЗначениеЗаполнено(Родитель) Тогда<br>      Файл.УстановитьЗначениеПоля("GRUPPA" + (Родитель.Уровень() + 1), Число(СокрЛП(Родитель.Код)));<br>      Родитель = Родитель.Родитель;<br>      Если ЗначениеЗаполнено(Родитель) Тогда<br>       Файл.УстановитьЗначениеПоля("GRUPPA" + (Родитель.Уровень() + 1), Число(СокрЛП(Родитель.Код)));<br>       Родитель = Родитель.Родитель;<br>       Если ЗначениеЗаполнено(Родитель) Тогда<br>       Файл.УстановитьЗначениеПоля("GRUPPA" + (Родитель.Уровень() + 1), Число(СокрЛП(Родитель.Код)));<br>       Родитель = Родитель.Родитель;<br>       Если ЗначениеЗаполнено(Родитель) Тогда<br>            Файл.УстановитьЗначениеПоля("GRUPPA" + (Родитель.Уровень() + 1), Число(СокрЛП(Родитель.Код)));<br>            Родитель = Родитель.Родитель;<br>            Если ЗначениеЗаполнено(Родитель) Тогда<br>             Файл.УстановитьЗначениеПоля("GRUPPA" + (Родитель.Уровень() + 1), Число(СокрЛП(Родитель.Код)));<br>            КонецЕсли;<br>       КонецЕсли;<br>       КонецЕсли;<br>      КонецЕсли;<br> КонецЕсли;<br> ...<br><br>А вот тут почему то не работает:<br><br>Процедура ЗаполнитьПоля(Номенклатура, Цена, Отдел, ШтрихКод, Единица)<br> Товары = Товары_.Добавить();<br> Товары.Номенклатура = Номенклатура.Ссылка;<br> ...<br> Номенклатура_ = Справочники.Номенклатура.ВыбратьИерархически();<br> Пока Номенклатура_.Следующий() Цикл<br> Если Не Номенклатура_.ЭтоГруппа Тогда<br>      Продолжить;<br> КонецЕсли;<br> Если Номенклатура_.Ссылка = Номенклатура.Родитель Тогда<br>      Родитель = Номенклатура_;<br>      Если Родитель.Уровень() = 0 Тогда<br>       Товары.Группа1 = Число(СокрЛП(Родитель.Код));<br>      ИначеЕсли Родитель.Уровень() = 1 Тогда<br>       Товары.Группа1 = Число(СокрЛП(Родитель.Родитель.Код));<br>       Товары.Группа2 = Число(СокрЛП(Родитель.Код));<br>      ИначеЕсли Родитель.Уровень() = 2 Тогда<br>      ...<br><br>вот в последнем варианте вообще ругается, говорит что метод "Уровень()" не обнаружен. В чем дело? Может еще чем дополнить вопрос или кто так уже догадался? "

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №2
 
17.12.2010 09:34

"А в каком модуле располагается эта процедура (ЗаполнитьПоля)? Надеюсь не в модуле справочника.<br>В крайнем случае - поставьте точку прерывания и посмотрите, чему равен Родитель до и после Родитель = Номенклатура_;, и чему равно Номенклатура_"

Мозголом
читатель
офлайн
Дата регистрации: 27.02.2007
Сообщений: 145
Пост №3
 
17.12.2010 09:48

Это все процедуры в модуле формы внешней обработки.<br>Первый код выполняется в процедуре при нажатии кнопки на форме, а второй код, это часть процедуры, которая вызывается из процедуры при нажатии другой кнопки.<br>По точке прерывания Номенклатура_ имеет тип "СправочникСсылка.Номенклатура".

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №4
 
17.12.2010 10:21

А Родитель?<br>Если у вас есть элемент на форме с таким именем, но другим типом, то ваше присвоение работать не будет. Лучше вообще избегать использования возможных имен реквизитов в локальном контексте.

Мозголом
читатель
офлайн
Дата регистрации: 27.02.2007
Сообщений: 145
Пост №5
 
17.12.2010 11:21

"Блин, ошибочка вышла. Родитель и Номенклатура_ имеют тип "СправочникВыборка.Номенклатура". Ладно, сделал вот так:<br><br>Родитель_ = Номенклатура.Родитель;<br>Если ЗначениеЗаполнено(Родитель_) Тогда<br> Если Родитель_.Уровень() = 0 Тогда<br> Товары.Группа1 = Число(СокрЛП(Родитель_.Код));<br> ИначеЕсли Родитель_.Уровень() = 1 Тогда<br> Товары.Группа1 = Число(СокрЛП(Родитель_.Родитель.Код));<br> Товары.Группа2 = Число(СокрЛП(Родитель_.Код));<br> ИначеЕсли Родитель_.Уровень() = 2 Тогда<br> Товары.Группа1 = Число(СокрЛП(Родитель_.Родитель.Родитель.Код));<br> Товары.Группа2 = Число(СокрЛП(Родитель_.Родитель.Код));<br> Товары.Группа3 = Число(СокрЛП(Родитель_.Код));<br> ИначеЕсли Родитель_.Уровень() = 3 Тогда<br> Товары.Группа1 = Число(СокрЛП(Родитель_.Родитель.Родитель.Родитель.Код));<br> Товары.Группа2 = Число(СокрЛП(Родитель_.Родитель.Родитель.Код));<br> Товары.Группа3 = Число(СокрЛП(Родитель_.Родитель.Код));<br> Товары.Группа4 = Число(СокрЛП(Родитель_.Код));<br> ИначеЕсли Родитель_.Уровень() = 4 Тогда<br> Товары.Группа1 = Число(СокрЛП(Родитель_.Родитель.Родитель.Родитель.Родитель.Код));<br> Товары.Группа2 = Число(СокрЛП(Родитель_.Родитель.Родитель.Родитель.Код));<br> Товары.Группа3 = Число(СокрЛП(Родитель_.Родитель.Родитель.Код));<br> Товары.Группа4 = Число(СокрЛП(Родитель_.Родитель.Код));<br> Товары.Группа5 = Число(СокрЛП(Родитель_.Код));<br> КонецЕсли;<br>КонецЕсли;<br><br>и черт возьми, ОНО ЗАРАБОТАЛО!!! Блин.. вчера сидел до 2-х часов ночи, и оно ни в какую(( хнык(( ну тут правда еще Родитель заменил на Родитель_. Хотя нигде такого реквизита не было... ппц.."

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

Читают тему:

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