Имя: Пароль:
1C
1С v8
8.2 Прошу помощи в изменении запроса
0 Looking
 
01.06.14
18:10
Доброго времени суток! Есть обработка "ПодборНоменклатуры", в ней один из вариантов отображения информации - это перечень товаров, имеющихся на остатке, то есть в таблице подбора виден не весь справочник, а те позиции, что есть на остатке. При этом информация в таблице подбора отображается иерархично, если в группу вложены группы, то при выборе группы в дереве номенклатуры в таблице подбора отображаются группы, и чтобы увидеть товары необходимо войти в группу. Необходимо-же сделать так, чтобы в таблице подбора отображались элементы, входящие в группу, выбранную в дереве номенклатуры, независимо от их уровня вложенности в группу.
Кто может с этим вопросом помочь по удаленке?
1 Looking
 
01.06.14
18:19
+(0)небесплатно
2 Wobland
 
01.06.14
18:23
конфигурация 1С:Управление подбором 8.2?
3 Looking
 
01.06.14
18:24
(2)конфигурация отраслевая на базе УТ
4 rphosts
 
01.06.14
18:39
(1) сколько?
(3) на базе 10 или 11?
5 Looking
 
01.06.14
18:44
(4)а сколько это может стоить? не знаю, наверное 10.
6 Looking
 
01.06.14
18:47
наглядно, что я имею ввиду
http://s43.radikal.ru/i099/1406/65/b08e671fcff9.jpg

в нижней таблице нужно видеть все вложенные элементы, даже, если они вложены в другие группы, и чтобы перемещаясь по дереву вверху, низу отображались элементы вложенные в выбранные группы дерева
7 Wobland
 
01.06.14
18:48
(6) пкм - режим просмотра - список(?)
8 Looking
 
01.06.14
18:53
(7)правой кнопкой мыши по таблице? не нахожу в появившемся диалоге как убрать иерархию
9 Looking
 
01.06.14
18:57
Таблица заполняется из запроса

НоменклатураДляПодбора.Загрузить(РезультатЗапроса.Выгрузить());

Текст Запроса

ункция ЗапросРасходОстаткиИЦеныНоменклатуры(Запрос, Организация, ВидПодбора)

    ТекстЗапроса = "
    |ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    Подбор.Код                                      КАК Код,
    |    Подбор.Артикул                                  КАК Артикул,
    |    Подбор.ЭтоГруппа                                КАК ЭтоГруппа,
    |    Подбор.ПометкаУдаления                          КАК ПометкаУдаления,
    |    Подбор.Набор                                    КАК Набор,
    |    Подбор.Услуга                                   КАК Услуга,
    |    Подбор.Номенклатура                             КАК Номенклатура,
    //Старт (МБК Маликов 25.07.2009)
    |    Подбор.Номенклатура.мбк_КаталожныйНомер         КАК мбк_КаталожныйНомер,
    |    Подбор.Номенклатура.мбк_ЗаводскойНомер          КАК мбк_ЗаводскойНомер,
    |    Подбор.Номенклатура.мбк_Бренд                   КАК мбк_Бренд,
    |    Подбор.Номенклатура.ОсновнойПоставщик           КАК мбк_ОсновнойПоставщик,
    |    Подбор.Номенклатура.мбк_Отдел                   КАК мбк_Отдел,
    |    Подбор.Номенклатура.мбк_Производитель           КАК мбк_Производитель,
    //Финиш (МБК Маликов 25.07.2009)
    // Старт (МБК Котельников 20.08.2009)
    |    Подбор.Номенклатура.ОтветственныйМенеджерЗаПокупки  КАК мбк_ОтветственныйМенеджерЗаПокупки,
    // Финиш (МБК Котельников 20.08.2009)
    // Старт (МБК Котельников 20.03.2014)
    |    Подбор.Номенклатура.Комментарий                 КАК Комментарий,
    // Финиш (МБК Котельников 20.03.2014)
    |    Подбор.Родитель                                 КАК Родитель,
    |    ВЫБОР КОГДА (Подбор.ЕдиницаХраненияОстатков = Подбор.ЕдиницаИзмерения ИЛИ НЕ &ПересчитатьОстаткиВЕдиницуЦены)
    |          ТОГДА Подбор.КоличествоСвободныйОстаток
    |          ИНАЧЕ Подбор.КоличествоСвободныйОстаток * (Подбор.ЕдиницаХраненияОстатков.Коэффициент / Подбор.ЕдиницаИзмерения.Коэффициент)
    |          КОНЕЦ                                     КАК КоличествоСвободныйОстаток,
    |    ВЫБОР КОГДА (Подбор.ЕдиницаХраненияОстатков = Подбор.ЕдиницаИзмерения ИЛИ НЕ &ПересчитатьОстаткиВЕдиницуЦены)
    |          ТОГДА Подбор.КоличествоОстатокОрганизации
    |          ИНАЧЕ Подбор.КоличествоОстатокОрганизации * (Подбор.ЕдиницаХраненияОстатков.Коэффициент / Подбор.ЕдиницаИзмерения.Коэффициент)
    |          КОНЕЦ                                     КАК КоличествоОстатокОрганизации,
    |    ВЫБОР КОГДА (Подбор.ЕдиницаХраненияОстатков = Подбор.ЕдиницаИзмерения ИЛИ НЕ &ПересчитатьОстаткиВЕдиницуЦены)
    |          ТОГДА Подбор.Цена * (Подбор.ЕдиницаХраненияОстатков.Коэффициент / Подбор.ЕдиницаИзмерения.Коэффициент)
    |          ИНАЧЕ Подбор.Цена
    |          КОНЕЦ                                     КАК Цена,
    |    ВЫБОР КОГДА Подбор.Цена ЕСТЬ NULL ТОГДА NULL
    |          ИНАЧЕ ВЫБОР КОГДА (Подбор.ЕдиницаХраненияОстатков = Подбор.ЕдиницаИзмерения ИЛИ НЕ &ПересчитатьОстаткиВЕдиницуЦены)
    |                      ТОГДА Подбор.ЕдиницаХраненияОстатков
    |                      ИНАЧЕ Подбор.ЕдиницаИзмерения
    |                КОНЕЦ
    |          КОНЕЦ                                     КАК ЕдиницаИзмерения,
    |    ЕСТЬNULL(УсловияПродаж.ПроцентНаценки, 0.00)    КАК ПроцентНаценки,
    |    Подбор.Валюта                                   КАК Валюта,
    |    Подбор.ХарактеристикаНоменклатуры               КАК ХарактеристикаНоменклатуры,
    |    Подбор.Качество                                 КАК Качество,
    |    Подбор.Качество.Представление                   КАК ПредставлениеКачество,
    |    Подбор.ФлагУсловийПоставки                      КАК ФлагУсловийПоставки,
    |    Подбор.ПредставлениеНоменклатуры                КАК ПредставлениеНоменклатура,
    |    ВЫБОР КОГДА Подбор.Цена ЕСТЬ NULL ТОГДА """"
    |          ИНАЧЕ ВЫБОР КОГДА (Подбор.ЕдиницаХраненияОстатков = Подбор.ЕдиницаИзмерения ИЛИ НЕ &ПересчитатьОстаткиВЕдиницуЦены)
    |                      ТОГДА Подбор.ЕдиницаХраненияОстатков.Представление
    |                      ИНАЧЕ Подбор.ЕдиницаИзмерения.Представление
    |                КОНЕЦ
    |          КОНЕЦ                                     КАК ПредставлениеЕдиницаИзмерения,
    |    Подбор.ПредставлениеХарактеристики              КАК ПредставлениеХарактеристикаНоменклатуры,
    |    Подбор.Валюта.Представление                     КАК ПредставлениеВалюта,
    |    ВЫБОР
    |        КОГДА Подбор.ЭтоГруппа ТОГДА ""Группа""
    |        ИНАЧЕ Подбор.НоменклатурнаяГруппа.Представление
    |    КОНЕЦ                                           КАК ПредставлениеНоменклатурнаяГруппа,
    |    Ложь                                            КАК ПереходитьВверх
    |ИЗ
    |(
    |ВЫБРАТЬ
    |    СправочникНоменклатура.Код                                      КАК Код,
    |    СправочникНоменклатура.Артикул                                  КАК Артикул,
    |    СправочникНоменклатура.ЭтоГруппа                                КАК ЭтоГруппа,
    |    СправочникНоменклатура.ПометкаУдаления                          КАК ПометкаУдаления,
    |    СправочникНоменклатура.Набор                                    КАК Набор,
    |    СправочникНоменклатура.Услуга                                   КАК Услуга,
    |    СправочникНоменклатура.Ссылка                                   КАК Номенклатура,
    |    СправочникНоменклатура.Представление                            КАК ПредставлениеНоменклатуры,
    |    СправочникНоменклатура.Наименование                             КАК НаименованиеНоменклатуры,
    |    СправочникНоменклатура.ЕдиницаХраненияОстатков                  КАК ЕдиницаХраненияОстатков,
    |    СправочникНоменклатура.НоменклатурнаяГруппа                     КАК НоменклатурнаяГруппа,
    |    СправочникНоменклатура.ЦеноваяГруппа                            КАК ЦеноваяГруппа,
    |    НоменклатураХарактеристика.ХарактеристикаНоменклатуры           КАК ХарактеристикаНоменклатуры,
    |    НоменклатураХарактеристика.Представление                        КАК ПредставлениеХарактеристики,
    |    НоменклатураХарактеристика.НаименованиеХарактеристики           КАК НаименованиеХарактеристики,
    |    ЕСТЬNULL(Цены.Цена, 0.00)                                       КАК Цена,
    |    Цены.Валюта                                                     КАК Валюта,
    |    Цены.ЕдиницаИзмерения                                           КАК ЕдиницаИзмерения,
    |    Цены.ФлагУсловийПоставки                                        КАК ФлагУсловийПоставки,
    |    СправочникНоменклатура.Родитель                                 КАК Родитель,
    |    ЕСТЬNULL(Остатки.КоличествоСвободныйОстаток, 0.00)              КАК КоличествоСвободныйОстаток,
    |    ЕСТЬNULL(Остатки.КоличествоОстатокОрганизации, 0.00)            КАК КоличествоОстатокОрганизации,
    |    ВЫБОР    КОГДА СправочникНоменклатура.Набор
    |                    ИЛИ СправочникНоменклатура.Услуга
    |                    ИЛИ СправочникНоменклатура.ЭтоГруппа
    |                    ИЛИ СправочникНоменклатура.Комплект
    |            ТОГДА NULL
    |            ИНАЧЕ ЕСТЬNULL(Остатки.Качество, ЗНАЧЕНИЕ(Справочник.Качество.Новый))
    |    КОНЕЦ                                                           КАК Качество
    |ИЗ
    |    Справочник.Номенклатура КАК СправочникНоменклатура
    |ЛЕВОЕ СОЕДИНЕНИЕ
    //временная таблица с номенклатурой и характеристикой
    |    НоменклатураХарактеристика КАК НоменклатураХарактеристика
    //
    |ПО СправочникНоменклатура.Ссылка = НоменклатураХарактеристика.Номенклатура
    |ЛЕВОЕ СОЕДИНЕНИЕ
    //временная таблица остатков номенклатуры
    |    Остатки КАК Остатки
    //
    |ПО
    |    Остатки.Номенклатура = НоменклатураХарактеристика.Номенклатура
    |    И Остатки.ХарактеристикаНоменклатуры = НоменклатураХарактеристика.ХарактеристикаНоменклатуры
    |ЛЕВОЕ СОЕДИНЕНИЕ
    //временная таблица цен номенклатуры
    |    Цены КАК Цены
    //
    |ПО
    |    Цены.Номенклатура = НоменклатураХарактеристика.Номенклатура
    |    И Цены.ХарактеристикаНоменклатуры = НоменклатураХарактеристика.ХарактеристикаНоменклатуры
    |
    //МДВ
    |ГДЕ СправочникНоменклатура.Родитель = &Родитель И
    |" + ?(ВидПодбора = "РасходОстаткиИЦеныНоменклатуры"
        //Условие для вида подбора "РасходОстаткиИЦеныНоменклатуры"
        , "(СправочникНоменклатура.ЭтоГруппа ИЛИ СправочникНоменклатура.Набор ИЛИ ВЫБОР КОГДА &ПодбиратьУслуги ТОГДА СправочникНоменклатура.Услуга ИНАЧЕ Ложь КОНЕЦ
    |        ИЛИ
    |        (ЕСТЬNULL(Цены.Цена, 0.00) > 0
    |        И (ЕСТЬNULL(Остатки.КоличествоСвободныйОстаток, 0.00) > 0" +?(УправлениеДопПравамиПользователей.РазрешеноПревышениеОстаткаТоваровОрганизации(Организация),""," И ЕСТЬNULL(Остатки.КоличествоОстатокОрганизации, 0.00) > 0") + "))
    |        ИЛИ СправочникНоменклатура.Комплект И ЕСТЬNULL(Цены.Цена, 0.00) > 0)"
        //Условие для вида подбора "РасходЦеныНоменклатуры" и "РасходЦеныПлановойСебестоимостиНоменклатуры"
        , "(СправочникНоменклатура.ЭтоГруппа ИЛИ СправочникНоменклатура.Набор
    |        ИЛИ ЕСТЬNULL(Цены.Цена, 0.00) > 0 И ВЫБОР КОГДА &ПодбиратьУслуги ТОГДА ИСТИНА ИНАЧЕ НЕ СправочникНоменклатура.Услуга КОНЕЦ)"
        ) + "
    |) КАК Подбор
    |ЛЕВОЕ СОЕДИНЕНИЕ
    //МДВ
    //временная таблица условия продаж
    |    УсловияПродаж КАК УсловияПродаж
    //
    |ПО
    |    УсловияПродаж.НоменклатурнаяЦеноваяГруппа = Подбор.ЦеноваяГруппа
    |    ИЛИ
    |    УсловияПродаж.НоменклатурнаяЦеноваяГруппа = Подбор.НоменклатурнаяГруппа
    |УПОРЯДОЧИТЬ ПО
    |    Подбор.ЭтоГруппа УБЫВ,
    |    Подбор.НаименованиеНоменклатуры,
    |    Подбор.НаименованиеХарактеристики
    |";

    ВременнаяТаблицаНоменклатураХарактеристика(Запрос);
    ВременнаяТаблицаЦен(Запрос);
    ВременнаяТаблицаОстаткиНоменклатуры(Запрос, "ТоварыНаСкладах,ТоварыВРознице,ТоварыОрганизаций");
    ВременнаяТаблицаУсловияПродаж(Запрос);

    Возврат ТекстЗапроса;

КонецФункции // ЗапросРасходОстаткиИЦеныНоменклатуры()
10 rphosts
 
01.06.14
19:12
(7) там скорее всего нужно поменять запрос.Выполнить.Выгрузить(Иерархически);
на
запрос.Выполнить.Выгрузить();
11 Looking
 
01.06.14
19:24
(10)так вроде-бы так и есть

РезультатЗапроса = Запрос.Выполнить();
НоменклатураДляПодбора.Загрузить(РезультатЗапроса.Выгрузить());
12 Looking
 
01.06.14
19:46
по совету заменил
|ГДЕ СправочникНоменклатура.Родитель = &Родитель И
на
|ГДЕ СправочникНоменклатура.Родитель В Иерархии(&Родитель) И

не помогло. или я не так совет понял?
13 shuhard
 
01.06.14
20:04
(0)[Кто может с этим вопросом помочь по удаленке?]
а что, поддержка ушла в отказ ?
14 Looking
 
01.06.14
20:14
(13)а она обязана такие вопросы решать?
15 Looking
 
01.06.14
20:15
(13)к ней с такой "хотелкой" не обращались
16 rphosts
 
01.06.14
20:23
(11) если результат выгружался-бы списком - откуда-бы дерево взялось?

Хоть и не спец по 8.0/8.1 но это точно!
17 Looking
 
01.06.14
20:31
(16)Платформа 8.2.18.109

или сама конфигурация на 8.0 - 8.1 ?
18 Looking
 
01.06.14
20:41
(16)насчет дерева, комментирую код

    //НоменклатураДляПодбора.Загрузить(РезультатЗапроса.Выгрузить());

    ////МДВ
    //ПлановыйТипЦен = ?(ПлановыйТипЦен = Неопределено, Константы.ТипЦенПлановойСебестоимостиНоменклатуры.Получить(), ПлановыйТипЦен);
    //Если (СтруктураИсходныхПараметров.Свойство("ТипЦен") И ТипЗнч(СтруктураИсходныхПараметров.ТипЦен) = Тип("СправочникСсылка.ТипыЦенНоменклатуры"))
    // ИЛИ (ЭлементыФормы.СписокВидовПодбора.Значение = "РасходЦеныПлановойСебестоимостиНоменклатуры" И ЗначениеЗаполнено(ПлановыйТипЦен) И ПлановыйТипЦен.Рассчитывается) Тогда

    //    РассчитыватьЦену = Истина;
    //    Если ЭлементыФормы.СписокВидовПодбора.Значение = "РасходЦеныПлановойСебестоимостиНоменклатуры" Тогда
    //        РасчетныйТипЦен = ПлановыйТипЦен;
    //    Иначе
    //        РасчетныйТипЦен = СтруктураИсходныхПараметров.ТипЦен;
    //    КонецЕсли;
    //Иначе
    //    РассчитыватьЦену = Ложь;
    //КонецЕсли;
    //    
    //    Для Каждого СтрокаТабличнойЧасти Из НоменклатураДляПодбора Цикл
    //        Если СтрокаТабличнойЧасти.ЭтоГруппа Тогда
    //            Продолжить;
    //        КонецЕсли;
    //        
    //        СтрокаТабличнойЧасти.Цена = СтрокаТабличнойЧасти.Цена * (1 + СтрокаТабличнойЧасти.ПроцентНаценки /100);
    //        Если РассчитыватьЦену И ЭлементыФормы.СписокВидовПодбора.Значение <> "ОстаткиНТТ" Тогда
    //            СтрокаТабличнойЧасти.Цена = Ценообразование.ОкруглитьЦену(СтрокаТабличнойЧасти.Цена,
    //                                        РасчетныйТипЦен.ПорядокОкругления,
    //                                        РасчетныйТипЦен.ОкруглятьВБольшуюСторону);
    //        КонецЕсли;
    //        
    //    КонецЦикла;
    //    
    //// Заполним групы для перехода на предыдущий уровень.
    //ТекГруппа = Родитель;
    ////МДВ
    //Сообщить("ТекГруппа "+ТекГруппа);
    ////МДВ
    //Пока ТекГруппа <> Справочники.Номенклатура.ПустаяСсылка() Цикл

    //    НоваяСтрока  = НоменклатураДляПодбора.Вставить(0);
    //    Номенклатура = ТекГруппа;

    //    НоваяСтрока.Код                               = Номенклатура.Код;
    //    НоваяСтрока.Номенклатура                      = Номенклатура;
    //    //МДВ
    //    Сообщить("Номенклатура "+Номенклатура);
    //    //МДВ
    //    НоваяСтрока.ПредставлениеНоменклатура         = Номенклатура.Наименование;
    //    НоваяСтрока.ПредставлениеНоменклатурнаяГруппа = "Группа";
    //    НоваяСтрока.ПереходитьВверх                   = Истина;
    //    НоваяСтрока.ЭтоГруппа                         = Истина;

    //    ТекГруппа = ТекГруппа.Родитель;
    //КонецЦикла;

    ////МДВ
    //
    ////МДВ
    //УстановитьОтборПоНоменклатурнойГруппе();
    ////МДВ

При этом нижняя таблица перестает заполняться совсем, но дерево заполняется, значит дерево заполняется отдельно
19 Looking
 
02.06.14
15:30
Актуально
20 Aprobator
 
02.06.14
15:40
странно, что тут ещё Мани нет. Неужели у него такого нет?
21 Aprobator
 
02.06.14
15:42
А вообще - видимость элементов входящих в группу вне зависимости от уровня вложенности - ставим отбор на конкретную группу и отключаем иерархию списка. Это если руками. Накодить это тоже не так уж и сложно.
22 Looking
 
03.06.14
21:51
(21)а уже после загрузки в таюлицу в ней можно отключить иерархию?

http://i023.radikal.ru/1406/c7/a03786df41a4.jpg
23 Looking
 
05.06.14
08:32
Может у кого появилось время и желание по удаленке помочь?
24 Looking
 
05.06.14
19:44
Aprobator, можете по удаленке помочь? Не бесплатно. Или может еще кто может?
25 Borometr
 
05.06.14
19:52
Доработывал подобную приблуду, которую приобрел на инфостарте, вроде нормально работает.
26 Borometr
 
05.06.14
19:53
(25) + могу её предложить
27 Looking
 
05.06.14
19:58
(26)можете попробовать по удаленке интегрировать в мою БД?
28 Borometr
 
05.06.14
20:01
если УТ11 то могу
29 Looking
 
05.06.14
20:04
(28)по-моему эта конфа на УТ10 написана
30 Borometr
 
05.06.14
20:09
Если не так срочно могу завтра посмотреть, просто я сейчас дома.
31 Looking
 
05.06.14
20:23
(30)посмотреть по удаленке? днем?
32 Borometr
 
05.06.14
20:27
(31) с 6-ти утра до 17 по московскому в любое удобное время
33 Borometr
 
05.06.14
20:29
если можешь то лучше обработку на [email protected], так быстрее будет
34 Looking
 
05.06.14
20:57
(33)спасибо! в 6 утра как-раз самое то, без иронии. на почту отправляю ссылку на хранилище, в нем конфигурация и обработка