Имя: Пароль:
1C
1С v8
1С УТ 11.4 получить список скидок/наценок в которых участвует номенклатура
0 kobayoshi
 
05.03.24
11:12
Добрый день. Пока в качестве костыля использую перебор действующих элементов справочника СкидкиНаценки, в каждом из проверяю содержимое ОтборПоНоменклатуре: ХранилищеНастроекКомпоновкиДанных.Получить().ОтборПоНоменклатуре.Отбор.Элементы. А там уже проверяю, есть ли искомый товар в этих отборах.
Но, во-первых, этот как-то некрасиво. А во-вторых, если отбор сложный, да ещё и с группированием условий, то вообще можно ничего не найти.
1 p-soft
 
05.03.24
11:31
данные, которые возвращаются через "ХранилищеНастроекКомпоновкиДанных.Получить()" хранятся в двоичном виде. чтобы оптимизировать решение задачи, надо либо делать дополнительную структуру "сверху" для возможности индексирования по товару или вообще менять подход к ценообразованию.
2 kobayoshi
 
05.03.24
11:37
(1) Почему в двоичном? после Получить() уже Структура возвращается из трёх элементов:
ДополнительныеУсловия - НастройкиКомпоновкиДанных
Запрос    - Структура
ОтборПоНоменклатуре - НастройкиКомпоновкиДанных
3 p-soft
 
05.03.24
11:40
(2) потому что так. метод Получить() преобразовывает данные из двоичного представления в структурное.
4 Bad_Aleks
 
05.03.24
11:54
(0) а в УТ 11.4 нет разве регистра сведений Действие скидок (наценок) по номенклатуре?
В нём как раз и должна храниться номенклатура и ссылка на справочник скидки\наценки
5 p-soft
 
05.03.24
12:40
(4) в 11.4 то же самое.
если через отбор по компоновщику, то этот список не заполняется, сейчас проверил)
6 kobayoshi
 
05.03.24
12:57
(4) Не знал про такой регистр. Там действительно видно какие-то позиции, но крайне мало. И я что-то никак не пойму как они туда попали, попробую поискать. Может быть тогда можно будет из отбора перенести эти скидки в регистр ДействиеСкидокНаценокПоНоменклатурере. Тогда искать будет на порядок проще!
(5) Я бы хотел как-то использовать Компоновщик, вроде и отборы есть, но ума не приложу как...
7 p-soft
 
05.03.24
13:02
(6) там несколько вариантов отборов можно использовать. отборы по списку и по сегменту попадают в регистр точно.
8 kobayoshi
 
05.03.24
14:54
В общем резюмирую: регистр ДействиеСкидокНаценокПоНоменклатурере заполняется, если у элемента справочника СкидкаНаценка реквизит ВариантОтбораНоменклатуры установлен в СписокНоменклатуры. И тут всё просто. Если же установить в ОтборКомпоновкиДанных, то указывать номенклатуру в эту скидку конечно очень удобно, но получить потом этот список сложно.
Решил перевести все скидки на СписокНоменклатуры, в моём случае это допустимое решение.