|
Помогите с запросом: комбинации элементов в таб.части документов Timon1405, AutoAns, Волшебник, Homer, Доминошник, RVN, Ненавижу 1С, Kigo_Kigo, МаленькийВопросик, Бычье сердце, FirstLineSupport, formista2000, lxndr, trad, СвинТуз, Дмитрий, lEvGl, Vstur, , piter3, tir654, tan76, crotnn, SleepyHead, Чеширский, Шурик71, alexela, Ильф, Новичок_1С, Жеглофф, okmail, lucky_, mr_K, , U4Me2
| ☑ | ||
---|---|---|---|---|
0
Новичок_1С
04.03.25
✎
16:02
|
Добрый день.
Подскажите в какую сторону смотреть. Есть документ с табличной частью. В табличной части допустим указаны цвета и количества. Док №1 Синий 1 Красный 2 Док №2 Оранжевый 3 Красный 2 Док №3 Синий 1 Красный 2 Необходимо выгрузить в одну колонку варианты цветов, в другую количество документов Синий,Красный 2 Оранжевый,Красный 1 Понимаю надо какую то группировку делать, но как собрать уникальность комбинаций табличной части ? |
|||
1
Волшебник
04.03.25
✎
16:04
|
Заведите строковый реквизит шапки, куда записывайте все цвета, отсортированные по возрастанию.
Потом по нему сгруппируйте в запросе. |
|||
2
vicof
04.03.25
✎
16:09
|
(1) +1
|
|||
3
Новичок_1С
04.03.25
✎
16:15
|
Да, спасибо. Я думал в запросе собрать все варианты табличных частей. Но не получается. Так действительно легче.
|
|||
4
Ильф
05.03.25
✎
09:52
|
||||
5
Ильф
05.03.25
✎
09:54
|
если же менять конфу - то справочник "Наборы..."
и при записи выбирать или создавать новый набор и писать его в реквизит документа |
|||
6
Ильф
05.03.25
✎
10:26
|
Функция ПолучитьНабор(Знач ТаблицаНабора) Экспорт Если Ложь Тогда ТаблицаНабора = Новый ТаблицаЗначений КонецЕсли; Если ТаблицаНабора.Количество() = 0 Тогда Возврат Справочники.НаборыВыполняемойНоменклатуры.ПустойНабор; КонецЕсли; УстановитьПривилегированныйРежим(Истина); Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТаблицаНабора", ТаблицаНабора); Запрос.Текст = "ВЫБРАТЬ | ТаблицаНабора.Номенклатура КАК Номенклатура, | ТаблицаНабора.ВыполняетсяКакМедсестра КАК ВыполняетсяКакМедсестра |ПОМЕСТИТЬ втТаблицаНабораСПустыми |ИЗ | &ТаблицаНабора КАК ТаблицаНабора |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | втТаблицаНабора.Номенклатура КАК Номенклатура, | втТаблицаНабора.ВыполняетсяКакМедсестра КАК ВыполняетсяКакМедсестра |ПОМЕСТИТЬ втТаблицаНабора |ИЗ | втТаблицаНабораСПустыми КАК втТаблицаНабора |ГДЕ | втТаблицаНабора.Номенклатура <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗЛИЧНЫЕ | втТаблицаНабора.Номенклатура КАК Номенклатура, | втТаблицаНабора.ВыполняетсяКакМедсестра КАК ВыполняетсяКакМедсестра, | НаборыВыполняемойНоменклатуры.Ссылка КАК Ссылка1 |ПОМЕСТИТЬ втУмножение |ИЗ | втТаблицаНабора КАК втТаблицаНабора | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НаборыВыполняемойНоменклатуры КАК НаборыВыполняемойНоменклатуры | ПО (ИСТИНА) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗЛИЧНЫЕ | ЕСТЬNULL(втУмножение.Ссылка1, СоставНабора.Ссылка) КАК Ссылка1 |ПОМЕСТИТЬ втИсключаемые |ИЗ | втУмножение КАК втУмножение | ПОЛНОЕ СОЕДИНЕНИЕ Справочник.НаборыВыполняемойНоменклатуры.СоставНабора КАК СоставНабора | ПО втУмножение.Ссылка1 = СоставНабора.Ссылка | И втУмножение.Номенклатура = СоставНабора.Номенклатура | И втУмножение.ВыполняетсяКакМедсестра = СоставНабора.ВыполняетсяКакМедсестра |ГДЕ | (СоставНабора.Ссылка ЕСТЬ NULL | ИЛИ втУмножение.Ссылка1 ЕСТЬ NULL) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | НаборыВыполняемойНоменклатуры.Ссылка КАК Ссылка |ПОМЕСТИТЬ втНаборыВыполняемойНоменклатуры |ИЗ | Справочник.НаборыВыполняемойНоменклатуры КАК НаборыВыполняемойНоменклатуры | ЛЕВОЕ СОЕДИНЕНИЕ втИсключаемые КАК Исключаемые | ПО (Исключаемые.Ссылка1 = НаборыВыполняемойНоменклатуры.Ссылка) |ГДЕ | Исключаемые.Ссылка1 ЕСТЬ NULL |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗЛИЧНЫЕ | СоставНабора.Ссылка КАК Ссылка |ИЗ | втТаблицаНабора КАК втТаблицаНабора | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.НаборыВыполняемойНоменклатуры.СоставНабора КАК СоставНабора | ВНУТРЕННЕЕ СОЕДИНЕНИЕ втНаборыВыполняемойНоменклатуры КАК втНаборыВыполняемойНоменклатуры | ПО СоставНабора.Ссылка = втНаборыВыполняемойНоменклатуры.Ссылка | ПО втТаблицаНабора.Номенклатура = СоставНабора.Номенклатура | И втТаблицаНабора.ВыполняетсяКакМедсестра = СоставНабора.ВыполняетсяКакМедсестра"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаВариаций = РезультатЗапроса.Выбрать(); Если ВыборкаВариаций.Следующий() Тогда НаборНоменклатуры = ВыборкаВариаций.Ссылка; Иначе НаборНоменклатуры = Неопределено; НовыйНабор = Справочники.НаборыВыполняемойНоменклатуры.СоздатьЭлемент(); Записывать = Ложь; Для Каждого СтрокаТЗ Из ТаблицаНабора Цикл Если ЗначениеЗаполнено(СтрокаТЗ.Номенклатура) Тогда СтрокаТЧ = НовыйНабор.СоставНабора.Добавить(); ЗаполнитьЗначенияСвойств(СтрокаТЧ,СтрокаТЗ); Записывать = Истина; КонецЕсли; КонецЦикла; Если Записывать Тогда НовыйНабор.Записать(); НаборНоменклатуры = НовыйНабор.Ссылка; КонецЕсли; КонецЕсли; Возврат НаборНоменклатуры; КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |