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

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

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

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

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

Прайс-лист

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

Alex_Ridl

Здравствуйте. Проблема при формировании прайс-листа. Выдаёт пустое значение в "цена", причём одна и та же позиция(по коду номенклатуры) выводится дважды,одна с ценой,а другая с пустым значением.
получается вот так:
код наименование цена
00000028 товар 0252 0303
00000028 товар 0252 0303 1300
00000034 товар1 0148 0402
00000034 товар1 0148 0402 1300


Как убрать - ума не приложу. Помогите плз
Код вроде простенький,собирался в конфигураторе:

Код:
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = 
"//{{ЗАПРОС(Сформировать)
|Номенклатура = Справочник.Номенклатура.ТекущийЭлемент, Справочник.Цены.Владелец;
|ТипЦен = Справочник.Цены.ТипЦен;
|Цена = Справочник.Цены.Цена;
|Группировка Номенклатура без групп;
|Группировка Цена;
|Условие(ТипЦен = ВыбТипЦен);
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей Номенклатура
Таб.ВывестиСекцию("Номенклатура");
Пока Запрос.Группировка(2) = 1 Цикл
// Заполнение полей Цена
Таб.ВывестиСекцию("Цена");
КонецЦикла;
КонецЦикла;
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры
 
Z

Zab

закоменть строку:
Код:
	  Таб.ВывестиСекцию("Номенклатура");
 
B

b00tch

"//{{ЗАПРОС(Сформировать)
|Номенклатура = Справочник.Номенклатура.ТекущийЭлемент, Справочник.Цены.Владелец;
|ТипЦен = Справочник.Цены.ТипЦен;
|Цена = Справочник.Цены.Цена;
|Группировка Номенклатура без групп;
|Функция ЦенаСум = СУММА(Цена);
|Условие(ТипЦен = ВыбТипЦен);
|"//}}ЗАПРОС
 
A

Alex_Ridl

спс,всё решилось редактированием таблицы:конфигаратор создал 2 одинаковые строчки,а я и не посмотрел
 
A

Alex_Ridl

ещё вопрос: нужно чтобы ещё и по конкретному поставщику.
с добавлением строк в запрос
Код:
...
|Контрагенты = Справочник.Контрагенты.ТекущийЭлемент
...
|Условие(Контрагенты = ВыбКонтрагенты)
выводит только весь прайс.помогите плз :(
 
B

b00tch

а каким образом определяется - кто поставщик конкретной номенклатуры?...
есть реквизит Спр Номенклатура или только по факту поступления?
 
A

Alex_Ridl

стоит стандартная конфигурация
в номенклатуре - поставщики,в контрагентах есть 2 папки с поставщиками.
вобщем посадили меня и сказали "делай",а я 1с ток недавно увидел :(
 
B

b00tch

Код:
|Контрагенты = Справочник.Номенклатура.ОсновнойПоставщик

как то так...
какая "стандартная конфигурация" то?... их много...
 
A

Alex_Ridl

сделал запрос на выборку товара по конкретной фирме,но как прописать туда цену - не пойму никак
Код:
|Номенклатура = Справочник.Номенклатура.ТекущийЭлемент;
|Контрагенты = Справочник.Контрагенты.ТекущийЭлемент, Справочник.Номенклатура.Родитель;
|Группировка Номенклатура упорядочить по Номенклатура.Код, Номенклатура.Наименование;
|Условие(Контрагенты = ВыбКонтрагенты);
добавление в запрос
Код:
|ТипЦен = Справочник.Цены.ТипЦен;
|Цена = Справочник.Цены.Цена;
приводит только к появлению пустого поля цена

в номенклатуре нет ОсновнойПоставщик :(

конфигурация типовая оптово-розничная 947
 
B

b00tch

Справочник.Номенклатура.Родитель - это группа справочника Номенклатура, никак не может быть контрагентом... хехе

в ТиС нет прямой связи Номенклатура-поставщик... да и вообще, один и тот же товар может быть поставлен разными контрагентами... поэтому нужно связывать с документами Поступление ТМЦ...

либо завести реквизит ОсновнойПоставщик в спр номенклатура...
 
A

Alex_Ridl

хм,я нашел внешний отчёт и он как раз группирует данные по нужному поставщику,но не выводит код товара... а вот код очень нужен :)
прикрепляю файл(переименовать в ert),может посмотишь на досуге,как туда вставить код товара
 

Вложения

  • _________________________________new.zip
    40 КБ · Просмотры: 200
B

b00tch

обработка запаролена, а как снимать я не помню, искать лень...
обратись к разработчику - там на форме сцылк0 есть...

а вообще то он по поставщикам не группирует... единственное, чт0 могу предположить - что у вас товары от разных поставщиков лежат в разных группах... и всего-навсего надо было вывести с учетом иерархии... а ты, по незнанию, ввел честн0й народ в заблуждение и смущение... так что кайся!...
хехе
 
A

Alex_Ridl

так и не понял как вывести номенклатуру по конкретной(ым) группе(ам)
 
B

b00tch

Группа = Справочник.Номенклатура.Родитель;
...
Условие(Группа = ВыбГруппа);
 
A

Alex_Ridl

это я сделал,но не получается вывести нужный тип цен ко всему этому
 
A

Alex_Ridl

Код:
	|Группа = Справочник.Номенклатура.Родитель;
|Номенклатура = Справочник.Номенклатура.ТекущийЭлемент, Справочник.Цены.Владелец;
|ТипЦен = Справочник.Цены.ТипЦен;
|Цена = Справочник.Цены.Цена;
|Группировка Номенклатура упорядочить по Номенклатура.Код, Номенклатура.Наименование;
|Группировка Цена;
|Условие(Группа = ВыбГруппа);
|Условие(ТипЦен = ВыбТипЦен);
 
B

b00tch

попробуй все-таки юзать Функцию... как в link removed
 
D

dmkr

Насколько мне позволяет говорить мой опыт, информация для запроса должна браться из одного источника: если хочешь прайс-лист по номенклатуре - обрабатывай справочник, если хочешь наличие товаров с ценами от поставщиков - обрабатывай партии или документы поступления (лучше партии).
Желательно определить основной объект обработки и "плясать" от него: например строим отчет по наличию партий (номенклатура с ценами поставщиков), тогда основной объект в запросе - номенклатура, но объявить его надо через регистр партии, и поставщика объявить через этот же регистр...
Если же никакой возможности это сделать - придется все самому ручками собирать: делаем два запроса и собираем их результаты в таблице значений. Потом эту таблицу можно дополнительно обработать (отсортировать, разделить, дополнить) и вывести на печать...
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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