• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Отчет по справочнику Цены

  • Автор темы midnighter
  • Дата начала
Статус
Закрыто для дальнейших ответов.
M

midnighter

Доброго времени суток всем читающим сие.

У меня возникла проблема с казалось бы простой задачей - создать отчет, строками которого были бы записи из справочника Цены.
По форумам походил, прежде погуглил - все как полагется - не помогло. Нашел примеры (отдельные кусочки кода) как это сделать, готовых запросов не нашел. На основе найденного состряпал свое:

Код:
Процедура Сформировать()
Таб = СоздатьОбъект("Таблица");

Цн=СоздатьОбъект("Справочник.Цены");
Цн.ИспользоватьВладельца("Алиот"); // Алиот - это да, хардкод. Используется что бы не усложнять и не описывать всю задачу
Цн.ВыбратьЭлементы();
Пока Цн.ПолучитьЭлемент() = 1 Цикл
Таб.ВывестиСекцию("Цен");
КонецЦикла;

Таб.Опции(0);	
Таб.ТолькоПросмотр(1);
Таб.Показать();			
КонецПроцедуры

Проблема заключается в том, что после работы отчета получаю пустые строки. Отладчик показал, что Цн.ПолучитьЭлемент() = 0, то есть выборка по Контрагенту "Алиот" пустая, хотя в ручном режиме, выборка цен по нему формируется.

Всем кто поможет или просто проявит интерес - заранее огромное спасибо!
 
U

unknown181538

Цн.ИспользоватьВладельца("Алиот"); // Алиот - это да, хардкод. Используется что бы не усложнять и не описывать всю задачу
Подсказка: использовать надо не наименование владельца, а ссылку на элемент справочника, созданную функцией "СоздатьОбъект()"
 
M

midnighter

Подсказка: использовать надо не наименование владельца, а ссылку на элемент справочника, созданную функцией "СоздатьОбъект()"

Вот так? :)

Процедура Сформировать()
Таб = СоздатьОбъект("Таблица");
Контр = СоздатьОбъект("Справочник.Контрагенты");
Контр.НайтиПоНаименованию("Алиот",0,0);

Цн=СоздатьОбъект("Справочник.Цены");
Цн.ИспользоватьВладельца(Контр.ПолнНаименование);
Цн.ВыбратьЭлементы();
Пока Цн.ПолучитьЭлемент() = 1 Цикл
Таб.ВывестиСекцию("Цен");
КонецЦикла;

Таб.Опции(0);
Таб.ТолькоПросмотр(1);
Таб.Показать();
КонецПроцедуры

Контрагент нашелся, Цены по нему - нет ;)


ЗЫ: я 1С только начинаю осваивать, поэтому так туго идет...
 
M

midnighter

Отработало!

unknown181538, спасибо! Сам я б еще долго думал (второй вечер трачу на это) :)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!