Регистрация Правила Главная форума Поиск |
0
- 16.04.2014 - 13:31
|
Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = " |Период С ДатаОтч по ДатаОтч; |Фирма = Регистр.ОстаткиТМЦ.Фирма; |Количество = Регистр.ОстаткиТМЦ.Количество; |Склад = Регистр.ОстаткиТМЦ.Склад; |Товар = Регистр.ОстаткиТМЦ.Номенклатура; // |Условие (Склад = Склады); // |Условие (Товар.Родитель = ""Производство""); |Функция Колво = КонОст(Количество); |Группировка Фирма; |Группировка Товар без групп;"; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Пока Запрос.Группировка("Фирма") = 1 Цикл Пока Запрос.Группировка("Товар") = 1 Цикл Если (Запрос.Колво < 0) Тогда | |
1
- 16.04.2014 - 13:33
| как угодно , а почему именно на название ? а если там "производство крышек" | |
2
- 16.04.2014 - 13:35
|
при обходе как минимум если этогруппа т о равна ли сокрлп производство иначе товарродитель тоже самое ЗЫ в запросе несколько по другому ачо ? | |
3
- 16.04.2014 - 13:36
| опять же - чоу значет - Как проанализировать самую первую группу ??? | |
4
- 16.04.2014 - 13:40
| У меня в справочнике в папке "Производство" на 2 уровне есть папки, на третьем . А товар может быть на третьем уровне, на четвертом . Вот мне нужно в выбрать товар, который принадлежит паке "Производство" независимо от уровня вложенность Вот | |
5
- 16.04.2014 - 13:42
|
ПринадлежитГруппе(<?>) Синтаксис: ПринадлежитГруппе(<Группа>) Назначение: Метод проверяет, принадлежит ли указанной группе текущий элемент справочника (независимо от того, на каком нижележащем уровне он находится). Возвращает: 1 - если элемент принадлежит указанной группе , 0 - если нет. или через стандартные условия // Процедура генерации запроса Сформировать. // Процедура Сформировать() Перем Запрос, ТекстЗапроса, Таб; //Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//**{ЗАПРОС(Сформировать) |Период с ВыбНачПериода по ВыбКонПериода; |Номенклатура = Справочник.Номенклатура.ТекущийЭлемент; |Функция Счётчик = Счётчик(); |Группировка Номенклатура без групп; |Условие(Номенклатура в ВыбНоменклатура); |"//****ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; // Подготовка к заполнению выходных форм данными запроса Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Сформировать"); // Заполнение полей "Заголовок" Таб.ВывестиСекцию("Заголовок"); Состояние("Заполнение выходной таблицы..."); Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); Пока Запрос.Группировка(1) = 1 Цикл // Заполнение полей Номенклатура Таб.ВывестиСекцию("Номенклатура"); КонецЦикла; // Заполнение полей "Итого" Таб.ВывестиСекцию("Итого"); // Вывод заполненной формы Таб.ТолькоПросмотр(1); Таб.Показать("Сформировать", ""); КонецПроцедуры | |
6
- 16.04.2014 - 13:43
| Выбноменклатура - элемент справочника - группа которая тебе нужна | |
7
- 16.04.2014 - 13:45
|
Если Найти(Запрос.Товар.Родитель.Родитель.Наименование, "Производство")>0 А если Родитель.Родитель.Родитель? | |
8
- 16.04.2014 - 13:50
|
(7) ниструя не кошерно ... ЗЫ вы случаем в рарусе не работали ? :)))) | |
9
- 16.04.2014 - 13:53
|
спр=СоздатьОбъект("Справочник.номенклатура"); спр.Найтипонаименованию("производство"); Выбноменклатура= спр.текущийэлемент(); но тоже хз - есть он у тя нету ... и группа ли вообще | |
10
- 16.04.2014 - 14:01
|
Вот это не срабатывает Если Запрос.Товар.ПринадлежитГруппе("Производство")=0 Тогда | |
11
- 16.04.2014 - 14:02
| Мне нужно выбрать отрицательные остатки по товару и только для той номенклатуры,которая входит в группу производство | |
12
- 16.04.2014 - 14:06
|
бред тупых одноэсников берем полный путь и далее в нем ищем что надо хотя есть и более красивое и правильное решение | |
13
- 16.04.2014 - 14:15
|
(11) Процедура Сформировать() Перем Запрос, ТекстЗапроса, Таб; пр=СоздатьОбъект("Справочник.номенклатура"); спр.Найтипонаименованию("производство"); Выбноменклатура= спр.текущийэлемент(); //Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//**{ЗАПРОС(Сформировать) |Период с ВыбНачПериода по ВыбКонПериода; |Номенклатура = Справочник.Номенклатура.ТекущийЭлемент; |Функция Счётчик = Счётчик(); |Группировка Номенклатура без групп; |Условие(Номенклатура в ВыбНоменклатура); |"//****ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; // Подготовка к заполнению выходных форм данными запроса Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Сформировать"); // Заполнение полей "Заголовок" Таб.ВывестиСекцию("Заголовок"); Состояние("Заполнение выходной таблицы..."); Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); Пока Запрос.Группировка(1) = 1 Цикл // Заполнение полей Номенклатура Таб.ВывестиСекцию("Номенклатура"); КонецЦикла; // Заполнение полей "Итого" Таб.ВывестиСекцию("Итого"); // Вывод заполненной формы Таб.ТолькоПросмотр(1); Таб.Показать("Сформировать", ""); КонецПроцедуры (12) нука ... | |
14
- 16.04.2014 - 14:16
|
(10) и не сработает НИ КА ДА\ ЗЫ строка с элементом не сравнивается | |
15
- 16.04.2014 - 14:20
|
Вот так счас попробую .... ГруппаНоменкл = СоздатьОбъект("Справочник.Номенклатура"); ГрНоменкл = ГруппаНоменкл.НайтиПоНаименованию("Производство",0 ); Группа=ГрНоменкл.ТекущийЭлемент(); ТЗ = СоздатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("Номенклатура"); ТЗ.НоваяКолонка("Количество","Число"); ТЗ.НоваяКолонка("Единица"); Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = " |Период С ДатаОтч по ДатаОтч; |Фирма = Регистр.ОстаткиТМЦ.Фирма; |Количество = Регистр.ОстаткиТМЦ.Количество; |Склад = Регистр.ОстаткиТМЦ.Склад; |Товар = Регистр.ОстаткиТМЦ.Номенклатура; |Условие (Товар.ПринадлежитГруппе(Группа)=1); |Функция Колво = КонОст(Количество); |Группировка Фирма; |Группировка Товар без групп;"; | |
16
- 16.04.2014 - 14:23
|
ГрНоменкл = ГруппаНоменкл.НайтиПоНаименованию("Производство",0 ); Группа=ГрНоменкл.ТекущийЭлемент(); ;)))))) жесть | |
17
- 16.04.2014 - 14:53
|
Теперь РАБОТАЕТ :)))))) СпрНоменклатура = СоздатьОбъект("Справочник.Номенклатура"); СпрНоменклатура.ВключатьПодчиненные(1); СпрНоменклатура.ВыбратьЭлементы(); Пока СпрНоменклатура.ПолучитьЭлемент() = 1 Цикл Если Найти(СпрНоменклатура.Наименование,"Производство") >0 Тогда Группа = СпрНоменклатура.ТекущийЭлемент(); КонецЕсли; КонецЦикла; СпрНоменклатура = СоздатьОбъект("Справочник.Номенклатура"); СпрНоменклатура.ВключатьПодчиненные(1); СпрНоменклатура.ВыбратьЭлементы(); Пока СпрНоменклатура.ПолучитьЭлемент() = 1 Цикл Если Найти(СпрНоменклатура.Наименование,"Производство") >0 Тогда Группа = СпрНоменклатура.ТекущийЭлемент(); КонецЕсли; КонецЦикла; | |
18
- 16.04.2014 - 15:03
| и запрос к регистру на каждый элемент ? :))) | |
19
- 16.04.2014 - 16:49
|
(4) примени конструкцию <ТМЦвзапросе> в <ВыбранныйТМЦ> | |
20
- 16.04.2014 - 16:49
|
(4) (19) примени конструкцию з запросе Условие (<ТМЦвзапросе> в <ВыбранныйТМЦ>); | |
21
- 17.04.2014 - 07:09
| |Условие(Номенклатура в ВыбНоменклатура); - всегда работало | |
| Интернет-форум Краснодарского края и Краснодара |