Имя: Пароль:
1C
1С v8
В запросе в условиях проверить Элемент и Характеристику (текст)?
0 SergVMV
 
19.01.23
12:40
Справочник склады с одинаковым наименованием в характеристике товара
1 Ryzeman
 
19.01.23
12:42
Характеристика.Значение = "МойТекст" или в чём вопрос?...
2 Гипервизор
 
19.01.23
12:43
(0) Попробуйте сформулировать задачу ещё раз. И не жалейте букв.
3 SergVMV
 
19.01.23
12:47
есть значение (Подразделение), передается в функцию. в функции запрос на ТЧ, в ней характеристика. оба наименования одинаковые. как прописать условие по значению
4 SergVMV
 
19.01.23
12:47
отбор строк с характеристикой с наименованием как у подразделения
5 SergVMV
 
19.01.23
12:48
ВЫБРАТЬ
    СУММА(ОтчетПроизводстваЗаСменуПродукция.Количество * ОтчетПроизводстваЗаСменуПродукция.Коэффициент * ОтчетПроизводстваЗаСменуПродукция.Номенклатура.ЕдиницаДляОтчетов.Коэффициент) КАК СуммарныеПотери,
    ОтчетПроизводстваЗаСменуПродукция.ХарактеристикаНоменклатуры
ИЗ
    Документ.ОтчетПроизводстваЗаСмену.Продукция КАК ОтчетПроизводстваЗаСменуПродукция
ГДЕ
    ОтчетПроизводстваЗаСменуПродукция.Ссылка.ОтражатьВУправленческомУчете = ИСТИНА
    И ОтчетПроизводстваЗаСменуПродукция.Номенклатура В ИЕРАРХИИ(&Брак)
    И ОтчетПроизводстваЗаСменуПродукция.Ссылка.Дата МЕЖДУ &Дт1 И &Дт2
    И ОтчетПроизводстваЗаСменуПродукция.Ссылка.Подразделение.Наименование = ???????

СГРУППИРОВАТЬ ПО
    ОтчетПроизводстваЗаСменуПродукция.ХарактеристикаНоменклатуры
6 SergVMV
 
19.01.23
12:50
ай, не тот запрос
7 SergVMV
 
19.01.23
12:52
ВЫБРАТЬ
    СУММА(ОтчетПроизводстваЗаСменуПродукция.Количество * ОтчетПроизводстваЗаСменуПродукция.Коэффициент * ОтчетПроизводстваЗаСменуПродукция.Номенклатура.ЕдиницаДляОтчетов.Коэффициент) КАК СуммарныеПотери,
    ОтчетПроизводстваЗаСменуПродукция.ХарактеристикаНоменклатуры
ИЗ
    Документ.ОтчетПроизводстваЗаСмену.Продукция КАК ОтчетПроизводстваЗаСменуПродукция
ГДЕ
    ОтчетПроизводстваЗаСменуПродукция.Ссылка.ОтражатьВУправленческомУчете = ИСТИНА
    И ОтчетПроизводстваЗаСменуПродукция.Номенклатура В ИЕРАРХИИ(&Брак)
    И ОтчетПроизводстваЗаСменуПродукция.Ссылка.Дата МЕЖДУ &Дт1 И &Дт2
    И ОтчетПроизводстваЗаСменуПродукция.ХарактеристикаНоменклатуры.Наименование = &Ц

СГРУППИРОВАТЬ ПО
    ОтчетПроизводстваЗаСменуПродукция.ХарактеристикаНоменклатуры


Где Ц это параметр функции
8 Ryzeman
 
19.01.23
12:53
Что такое ХарактеристикаНоменклатуры?
Где у тебя подразделение?
9 SergVMV
 
19.01.23
12:54
Функция ВычислитьСуммарнуюНекондициюЦех(Дт, Смена, Цех)
    Брак =  Справочники.Номенклатура.НайтиПоНаименованию("Брак");
    ВсегоПотерь=0;
    Запрос = Новый Запрос ("ВЫБРАТЬ
                           |    СУММА(ОтчетПроизводстваЗаСменуПродукция.Количество * ОтчетПроизводстваЗаСменуПродукция.Коэффициент * ОтчетПроизводстваЗаСменуПродукция.Номенклатура.ЕдиницаДляОтчетов.Коэффициент) КАК СуммарныеПотери
                           |ИЗ
                           |    Документ.ОтчетПроизводстваЗаСмену.Продукция КАК ОтчетПроизводстваЗаСменуПродукция
                           |ГДЕ
                           |    ОтчетПроизводстваЗаСменуПродукция.Ссылка.ОтражатьВУправленческомУчете = ИСТИНА
                           |    И ОтчетПроизводстваЗаСменуПродукция.Номенклатура В ИЕРАРХИИ(&Брак)
                           |    И ОтчетПроизводстваЗаСменуПродукция.Ссылка.Дата МЕЖДУ &Дт1 И &Дт2
                           |    И ОтчетПроизводстваЗаСменуПродукция.Ссылка.Смена = &См
                           |    И ОтчетПроизводстваЗаСменуПродукция.ХарактеристикаНоменклатуры.Наименование = &Ц");
    Запрос.УстановитьПараметр("Дт1",НачалоДня(Дт));
    Запрос.УстановитьПараметр("Дт2",КонецДня(Дт));
    Запрос.УстановитьПараметр("Брак",Брак);
    Запрос.УстановитьПараметр("См",Смена);
    Запрос.УстановитьПараметр("Ц",Цех);
10 SergVMV
 
19.01.23
12:55
Характеристика в ТЧ, Подразделение в Цех
11 Гипервизор
 
19.01.23
12:57
(9) Запрос.УстановитьПараметр("Ц",Цех.Наименование) что ли надо?
12 SergVMV
 
19.01.23
13:01
нет, цех мне пришел в функцию элементом, как мне это наименование найти в ТЧ по колонке характеристики?
13 Гипервизор
 
19.01.23
13:02
(12) Ну всё верно, почему же "нет"?
14 SergVMV
 
19.01.23
13:05
в консоле пусто(
15 Ryzeman
 
19.01.23
13:06
(14) Так что у тебя такое "ХарактеристикаНоменклатуры" и где ты ТЧ видишь???
То, что "Цех" - это у тебя справочник складов, и у этого склада тебе надо подставить наименование мы кое-как поняли. Осталоссь второе вытянуть и может сможем подсказать)
16 Мультук
 
гуру
19.01.23
13:11
(9)

Запрос.УстановитьПараметр("Ц",Цех);

Запрос.УстановитьПараметр("Ц",Строка(Цех));
17 SergVMV
 
19.01.23
13:14
Характеристика для товара, в ней значения идентичны складам. Нужно из ТЧ отобрать строки по Наименованию склада, что пришел с функцией
18 Ryzeman
 
19.01.23
13:16
(17) ну ты издеваешься что ли?) Нету в 1с такой сущности "Характеристика для товара, в ней значения идентичны складам". ХарактеристикаНоменклатуры - это у тебя ПВХ, справочник, текстовое поле, определяемый тип???
"Нужно из ТЧ" - из какой ТЧ? Где в твоём запросе ТЧ?
19 Мультук
 
гуру
19.01.23
13:16
(17)

Если цех это ссылка то нужно сделать вот так

Запрос.УстановитьПараметр("Ц",Строка(Цех));

или вот так

Запрос.УстановитьПараметр("Ц", Цех.Наименование);
20 SergVMV
 
19.01.23
13:17
текстовое поле
21 Ryzeman
 
19.01.23
13:17
(20) тогда как должно работать "ХарактеристикаНоменклатуры.Наименование"?
22 SergVMV
 
19.01.23
13:17
(19) сейчас попробую. в консоле через наименование запрос пустой
23 Гипервизор
 
19.01.23
13:18
(19) Ну вот не подходит ему такой вариант. )) Потому что (14).
24 SergVMV
 
19.01.23
13:19
(21) не знаю. поэтому и спрашиваю как мне условие прописать
25 Гипервизор
 
19.01.23
13:20
(24) Приведите уже примеры, что у вас в "Цех.Наименование" и "ОтчетПроизводстваЗаСменуПродукция.ХарактеристикаНоменклатуры.Наименование". Или скрины покажите.
26 Ryzeman
 
19.01.23
13:22
(24) А конструктор отчёта не ругается? У текстового реквизита не может быть поля "наименование". Если всё так, как ты пишешь, то надо переделать на

ГДЕ
...
 И ОтчетПроизводстваЗаСменуПродукция.ХарактеристикаНоменклатуры = &НаименованиеЦеха
...
Запрос.УстановитьПараметр("НаименованиеЦеха", Цех.Наименование);
27 SergVMV
 
19.01.23
13:23
(26) не ругается. не выдает ничего
28 Ryzeman
 
19.01.23
13:25
(27) Значит это всё таки не текст. Зайди в конфигуратор и посмотри что это за поля
29 SergVMV
 
19.01.23
13:27
(26) если убираю условие поиска подразделения, тогда выдает строки и в них характеристики. проваливаюсь в характеристику
30 SergVMV
 
19.01.23
13:28
Элемент характеристики Номенклатуры
31 Ryzeman
 
19.01.23
13:28
(29) я тебя в четвёртый раз спрашиваю - что такое характеристика. Языком метаданных 1с
32 Мультук
 
гуру
19.01.23
13:28
-- Ну запусти конфигуратор, войди в отладку!
-- Нет!
-- Ну, пожалуйста!
-- Нет, нет и нет. Ни за что! Па-ма-гите!
33 SergVMV
 
19.01.23
13:29
(31) СправочникСсылка.ХарактеристикиНоменклатуры
34 SergVMV
 
19.01.23
13:32
(32) посчитал быстрее здесь получу ответ)) пойду дебажить тогда
35 Ryzeman
 
19.01.23
13:32
(33) Наконец-то)
Теперь, раз уж у тебя есть консоль, выполни два запроса
"ВЫБРАТЬ *
ИЗ Справочник.ХарактеристикиНоменклатуры КАК Характеристика
ГДЕ Характеристика.Ссылка = &МойСклад"
В параметре выбери характеристику с названием своего склада и посмотри в какое именно поле пишется название - наименование ли, наименование полное, код, или ещё куда.

Затем то же самое проделай со складом, хотя там наверняка именно наименование.
А вообще, куда проще всё это сделать тупо в отладке. Но ей, видимо, ты не особо умеешь пользоваться
36 Мультук
 
гуру
19.01.23
13:34
(34)

Пример:

Цех продукции
Цех прoдукции

Визуально строки одинаковые, но есть небольшой нюанс.
37 SergVMV
 
19.01.23
13:36
Функция ВычислитьСуммарнуюНекондициюЦех(Дт, Смена, Цех)
    Брак =  Справочники.Номенклатура.НайтиПоНаименованию("Брак");
    ВсегоПотерь=0;
    Запрос = Новый Запрос ("ВЫБРАТЬ
                           |    СУММА(ОтчетПроизводстваЗаСменуПродукция.Количество * ОтчетПроизводстваЗаСменуПродукция.Коэффициент * ОтчетПроизводстваЗаСменуПродукция.Номенклатура.ЕдиницаДляОтчетов.Коэффициент) КАК СуммарныеПотери
                           |ИЗ
                           |    Документ.ОтчетПроизводстваЗаСмену.Продукция КАК ОтчетПроизводстваЗаСменуПродукция
                           |ГДЕ
                           |    ОтчетПроизводстваЗаСменуПродукция.Ссылка.ОтражатьВУправленческомУчете = ИСТИНА
                           |    И ОтчетПроизводстваЗаСменуПродукция.Номенклатура В ИЕРАРХИИ(&Брак)
                           |    И ОтчетПроизводстваЗаСменуПродукция.Ссылка.Дата МЕЖДУ &Дт1 И &Дт2
                           |    И ОтчетПроизводстваЗаСменуПродукция.Ссылка.Смена = &См
                           |    И ОтчетПроизводстваЗаСменуПродукция.ХарактеристикаНоменклатуры.Наименование = &Ц");
    Запрос.УстановитьПараметр("Дт1",НачалоДня(Дт));
    Запрос.УстановитьПараметр("Дт2",КонецДня(Дт));
    Запрос.УстановитьПараметр("Брак",Брак);
    Запрос.УстановитьПараметр("См",Смена);
    Запрос.УстановитьПараметр("Ц",Цех.Наименование);
    Выборка = Запрос.Выполнить().Выбрать();

Так заработало, в консоле не было строк. Видимо, параметр цех неверно указал
38 SergVMV
 
19.01.23
13:40
(35) отладка тормозит пользователей. все запросы делаю в консольке