• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

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

midnighter

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

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

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

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

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

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

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

unknown181538

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

midnighter

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

Вот так? :)

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

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

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

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


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

midnighter

Отработало!

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

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