1С 7.7 Бухгалтерия. Нужно выводить Заказ-Наряды только по одному производителю
Проблема такова, что при подобной задаче по расходным накладным было достаточно:
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
...
|Произ = Документ.РасходнаяНакладная.Товар.Производитель;
...
|"//}}ЗАПРОС
и условия
Если Флаг2 = 1 Тогда
Имя2К = "2K";
лПроиз = СоздатьОбъект ("Справочник.Производители");
Если лПроиз.НайтиПоНаименованию (Имя2К,0,0) = 1 Тогда
ТекстЗапроса = ТекстЗапроса + "Условие(Произ.Наименование = Имя2К);"
КонецЕсли;
КонецЕсли;
Но это расходным-накладным. В заказ-нарядах поле составного типа, в итоге не получается подобным образом сделать выборку деталей. Подскажите в чем ошибка...
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
...
|Произ = Документ.РасходнаяНакладная.Товар.Производитель;
...
|"//}}ЗАПРОС
и условия
Если Флаг2 = 1 Тогда
Имя2К = "2K";
лПроиз = СоздатьОбъект ("Справочник.Производители");
Если лПроиз.НайтиПоНаименованию (Имя2К,0,0) = 1 Тогда
ТекстЗапроса = ТекстЗапроса + "Условие(Произ.Наименование = Имя2К);"
КонецЕсли;
КонецЕсли;
Но это расходным-накладным. В заказ-нарядах поле составного типа, в итоге не получается подобным образом сделать выборку деталей. Подскажите в чем ошибка...
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Я делаю так:
.............................
Функция НашаЛиЭто(Посмотрим)
........
Если лПроиз.НайтиПоНаименованию ("2K"; ,0,0) = 1 Тогда
Возврат 1;
КонецЕсли;
Возврат 0;
КонецФункции
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
...
|Произ = Документ.РасходнаяНакладная.Товар.Производитель;
|Условие(НашаЛиЭто(Произ)=1);
...
|"//}}ЗАПРОС
.............................
Функция НашаЛиЭто(Посмотрим)
........
Если лПроиз.НайтиПоНаименованию ("2K"; ,0,0) = 1 Тогда
Возврат 1;
КонецЕсли;
Возврат 0;
КонецФункции
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
...
|Произ = Документ.РасходнаяНакладная.Товар.Производитель;
|Условие(НашаЛиЭто(Произ)=1);
...
|"//}}ЗАПРОС
Если Товар.Вид() = "Номенклатура" Тогда
Возврат 1;
КонецЕсли;
Возврат 0;
КонецФункции;
на подобии такого ?
Если Товар.Вид() = "Номенклатура" Тогда
ТекПроизводитель = Товар.Производитель;
Иначе
ТекПроизводитель = "";
КонецЕсли;
или такого?
И еще... ведь это нужно сделать для заказ-нарядов, а у них вроде поле составного типа... .и обычным запросом производителя не вытащить...
Да и не надо вытаскивать Производителя в Запросе!!!
Надо вытащить ТОЛЬКО ТОВАР ;)
После того, что ты написал в (4) все успокоились, поняв, что ты на верном пути :)
А Новогодние праздники тебя опять с пути этого сбили ;)
В общем так - вытаскиваешь Товар в Запросе, (или Материал или другое
что), и по своему же рецепту (4) проверяешь Производителя... в Условии Запроса через Функцию:
Функция НашЛиЭтоПроизводитель(Товар)
Если Товар.Вид() = "Номенклатура" Тогда
Если Товар.Производитель.Наименование="2K" Тогда
Возврат 1;
КонецЕсли;
КонецЕсли;
Возврат 0;
КонецФункции
....................................
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
.............
|Товар= Документ.РасходнаяНакладнаяИлиДругойДокумент.ТоварИлиДругоеПоле;
|Условие(НашЛиЭтоПроизводитель(Товар)=1);
............
|"//}}ЗАПРОС
Надо вытащить ТОЛЬКО ТОВАР ;)
После того, что ты написал в (4) все успокоились, поняв, что ты на верном пути :)
А Новогодние праздники тебя опять с пути этого сбили ;)
В общем так - вытаскиваешь Товар в Запросе, (или Материал или другое
что), и по своему же рецепту (4) проверяешь Производителя... в Условии Запроса через Функцию:
Функция НашЛиЭтоПроизводитель(Товар)
Если Товар.Вид() = "Номенклатура" Тогда
Если Товар.Производитель.Наименование="2K" Тогда
Возврат 1;
КонецЕсли;
КонецЕсли;
Возврат 0;
КонецФункции
....................................
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
.............
|Товар= Документ.РасходнаяНакладнаяИлиДругойДокумент.ТоварИлиДругоеПоле;
|Условие(НашЛиЭтоПроизводитель(Товар)=1);
............
|"//}}ЗАПРОС
.........
|Условие(НашаЛиЭто(Произ)=1);
отреагирует только на 1 или 0
Фишка в том, что в функции (НашаЛиЭто(Посмотрим) ) делайте что угодно, любые операторы, переборы, анализ на наличие в наименовании "2К"....
Ваш производитель - возврат 1, нет - 0
|Условие(НашаЛиЭто(Произ)=1);
отреагирует только на 1 или 0
Фишка в том, что в функции (НашаЛиЭто(Посмотрим) ) делайте что угодно, любые операторы, переборы, анализ на наличие в наименовании "2К"....
Ваш производитель - возврат 1, нет - 0
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот