К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Как проанализировать самую первую группу на название "Производство"?"

Гость
0 - 16.04.2014 - 13:31
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "
|Период С ДатаОтч по ДатаОтч;
|Фирма = Регистр.ОстаткиТМЦ.Фирма;
|Количество = Регистр.ОстаткиТМЦ.Количество;
|Склад = Регистр.ОстаткиТМЦ.Склад;
|Товар = Регистр.ОстаткиТМЦ.Номенклатура;
// |Условие (Склад = Склады);
// |Условие (Товар.Родитель = ""Производство"");
|Функция Колво = КонОст(Количество);
|Группировка Фирма;
|Группировка Товар без групп;";

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

Пока Запрос.Группировка("Фирма") = 1 Цикл

Пока Запрос.Группировка("Товар") = 1 Цикл
Если (Запрос.Колво < 0) Тогда



101
1 - 16.04.2014 - 13:33
как угодно , а почему именно на название ? а если там "производство крышек"
101
2 - 16.04.2014 - 13:35
при обходе
как минимум если этогруппа т о равна ли сокрлп производство
иначе товарродитель тоже самое
ЗЫ в запросе несколько по другому ачо ?
101
3 - 16.04.2014 - 13:36
опять же - чоу значет - Как проанализировать самую первую группу ???
Гость
4 - 16.04.2014 - 13:40
У меня в справочнике в папке "Производство" на 2 уровне есть папки, на третьем . А товар может быть на третьем уровне, на четвертом . Вот мне нужно в выбрать товар, который принадлежит паке "Производство" независимо от уровня вложенность Вот
101
5 - 16.04.2014 - 13:42
ПринадлежитГруппе(<?>)
Синтаксис:
ПринадлежитГруппе(<Группа>)
Назначение:
Метод проверяет, принадлежит ли указанной группе текущий элемент справочника (независимо от того, на каком нижележащем уровне он находится).
Возвращает: 1 - если элемент принадлежит указанной группе , 0 - если нет.


или через стандартные условия

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

// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей Номенклатура
Таб.ВывестиСекцию("Номенклатура");
КонецЦикла;
// Заполнение полей "Итого"
Таб.ВывестиСекцию("Итого");
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры
101
6 - 16.04.2014 - 13:43
Выбноменклатура - элемент справочника - группа которая тебе нужна
Гость
7 - 16.04.2014 - 13:45
Если Найти(Запрос.Товар.Родитель.Родитель.Наименование, "Производство")>0

А если Родитель.Родитель.Родитель?
101
8 - 16.04.2014 - 13:50
(7) ниструя не кошерно ...
ЗЫ вы случаем в рарусе не работали ? :))))
101
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
бред тупых одноэсников

берем полный путь и далее в нем ищем что надо

хотя есть и более красивое и правильное решение
101
13 - 16.04.2014 - 14:15
(11)

Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;


пр=СоздатьОбъект("Справочник.номенклатура");
спр.Найтипонаименованию("производство");

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

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

(12) нука ...
101
14 - 16.04.2014 - 14:16
(10) и не сработает НИ КА ДА\
ЗЫ строка с элементом не сравнивается
Гость
15 - 16.04.2014 - 14:20
Вот так счас попробую ....

ГруппаНоменкл = СоздатьОбъект("Справочник.Номенклатура");
ГрНоменкл = ГруппаНоменкл.НайтиПоНаименованию("Производство",0 );
Группа=ГрНоменкл.ТекущийЭлемент();


ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Номенклатура");
ТЗ.НоваяКолонка("Количество","Число");
ТЗ.НоваяКолонка("Единица");

Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "
|Период С ДатаОтч по ДатаОтч;
|Фирма = Регистр.ОстаткиТМЦ.Фирма;
|Количество = Регистр.ОстаткиТМЦ.Количество;
|Склад = Регистр.ОстаткиТМЦ.Склад;
|Товар = Регистр.ОстаткиТМЦ.Номенклатура;
|Условие (Товар.ПринадлежитГруппе(Группа)=1);
|Функция Колво = КонОст(Количество);
|Группировка Фирма;
|Группировка Товар без групп;";
101
16 - 16.04.2014 - 14:23
ГрНоменкл = ГруппаНоменкл.НайтиПоНаименованию("Производство",0 );
Группа=ГрНоменкл.ТекущийЭлемент();

;)))))) жесть
Гость
17 - 16.04.2014 - 14:53
Теперь РАБОТАЕТ :))))))


СпрНоменклатура = СоздатьОбъект("Справочник.Номенклатура");
СпрНоменклатура.ВключатьПодчиненные(1);
СпрНоменклатура.ВыбратьЭлементы();
Пока СпрНоменклатура.ПолучитьЭлемент() = 1 Цикл
Если Найти(СпрНоменклатура.Наименование,"Производство") >0 Тогда
Группа = СпрНоменклатура.ТекущийЭлемент();
КонецЕсли;
КонецЦикла;


СпрНоменклатура = СоздатьОбъект("Справочник.Номенклатура");
СпрНоменклатура.ВключатьПодчиненные(1);
СпрНоменклатура.ВыбратьЭлементы();
Пока СпрНоменклатура.ПолучитьЭлемент() = 1 Цикл
Если Найти(СпрНоменклатура.Наименование,"Производство") >0 Тогда
Группа = СпрНоменклатура.ТекущийЭлемент();
КонецЕсли;
КонецЦикла;
101
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
|Условие(Номенклатура в ВыбНоменклатура); - всегда работало


К списку вопросов
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск




Copyright ©, Все права защищены