Конфигурация: Trade (10.3.29.1) (http://v8.1c.ru/trade/), версия: 8.3.11.2867, обычные формы. Добрый день. Подскажите, как можно найти все документы (Установка цен номенклатуры), в табличной части которых есть позиции, у которых не заполнены цены (пустые строки)? Мой метод не совсем подходит:
ВЫБРАТЬ УстановкаЦенНоменклатурыТовары.Ссылка КАК ДокументУстановкиЦен, УстановкаЦенНоменклатурыТовары.ИндексСтрокиТаблицыЦен КАК ИндексСтрокиТаблицыЦен, УстановкаЦенНоменклатурыТовары.Номенклатура КАК Номенклатура ИЗ Документ.УстановкаЦенНоменклатуры.Товары КАК УстановкаЦенНоменклатурыТовары
СГРУППИРОВАТЬ ПО УстановкаЦенНоменклатурыТовары.Ссылка, УстановкаЦенНоменклатурыТовары.ИндексСтрокиТаблицыЦен, УстановкаЦенНоменклатурыТовары.Номенклатура
ИМЕЮЩИЕ СУММА(УстановкаЦенНоменклатурыТовары.Цена) = 0
УПОРЯДОЧИТЬ ПО ИндексСтрокиТаблицыЦен УБЫВ ИТОГИ ПО ДокументУстановкиЦен
Хочу попробовать кое что ещё Не подскажите, как найти все документы, в табличной части которых есть позиции, у которых не заполнены цены типах цен (пустые строки)? Мой метод не совсем походит:
ВЫБРАТЬ УстановкаЦенНоменклатурыТовары.Ссылка КАК ДокументУстановкиЦен, УстановкаЦенНоменклатурыТовары.ИндексСтрокиТаблицыЦен КАК ИндексСтрокиТаблицыЦен, УстановкаЦенНоменклатурыТовары.Номенклатура КАК Номенклатура ИЗ Документ.УстановкаЦенНоменклатуры.Товары КАК УстановкаЦенНоменклатурыТовары
СГРУППИРОВАТЬ ПО УстановкаЦенНоменклатурыТовары.Ссылка, УстановкаЦенНоменклатурыТовары.ИндексСтрокиТаблицыЦен, УстановкаЦенНоменклатурыТовары.Номенклатура
ИМЕЮЩИЕ СУММА(УстановкаЦенНоменклатурыТовары.Цена) = 0
УПОРЯДОЧИТЬ ПО ИндексСтрокиТаблицыЦен УБЫВ ИТОГИ ПО ДокументУстановкиЦен
twilight_dream @ Сегодня, 13:42
, Это всего лишь тестовый пример 1го документа. Мне же нужно найти все документы, у которых в табличной части товары есть такие строки.
twilight_dream @ Сегодня, 13:46
, Большое спасибо. Задание давно готово и написано личной мной. Да и вначале я не просил за меня работу делать, а только дать идею реализации задачи, но видно для гуру программистов оказать помощь это слишком, но вот оставить язвителный комментарии это они могут
Конфигурация: Trade (10.3.29.1) (http://v8.1c.ru/trade/), версия: 8.3.11.2867, обычные формы. Добрый день. Подскажите пожалуйста в следующем. Почему в табличной части документа Установка цен номенклатуры у номенклатуры нет цены (пусто / по нулям), а если через запрос вывести все поля табличной части, то находится цена? Также если получить объект документа и обратиться в табличной части товары, то в ТЗ выводится такой же результат, как и через запрос. Например:
ВЫБРАТЬ * ИЗ Документ.УстановкаЦенНоменклатуры.Товары КАК УстановкаЦенНоменклатурыТовары ГДЕ УстановкаЦенНоменклатурыТовары.Ссылка = &Ссылка
Petre @ Сегодня, 12:58
, Вопрос был в том, как это сделать автоматически к большому количеству таблиц значений. Сам принцип объединения временных таблиц мне был понятен и известен.
Vofka @ 25.09.20, 10:12
, Вот как с этой задачей справился я:
ТекстЗапроса1 = ""; ТекстЗапроса2 = ""; Счётчик = 0; Для каждого СтрокаПараметра Из Параметры Цикл
Если НЕ ТипЗнч(ЗначениеИзСтрокиВнутр(СтрокаПараметра)) = Тип("ТаблицаЗначений") ИЛИ ЗначениеИзСтрокиВнутр(СтрокаПараметра).Количество() = 0 Тогда Продолжить; КонецЕсли;
Bernet @ Вчера, 18:52
, Немного ошибся (за что стыдно) ... Объединить не виртуальные, а временные таблицы... И о таком методе как вы предложили я знаю, не подходит
Конфигурация: Trade (10.3.29.1) (http://v8.1c.ru/trade/), версия: 8.3.11.2867, обычные формы. Добрый день. Подскажите пожалуйста в следующем. Хочу написать запрос, который будет формироваться по ходу обхода цикла, то есть каждая строка будет добавлять часть кода. Проблема в том, что я хочу объединить очень много таблиц в одну (полей всего два и они общие, есть у всех таблиц). Но на сколько я понимаю, нельзя объединять виртуальные таблицы. То есть такой метод не работает и выдаёт ошибку "Содержимое объекта данных может быть выбрано только во временную таблицу":
ВЫБРАТЬ ТЗ.Элемент1 КАК Элемент1 , ТЗ.Элемент2 КАК Элемент2 ИЗ &ТЗ КАК ТЗ
ОБЪЕДИНИТЬ
ВЫБРАТЬ ТЗ2.Элемент1 , ТЗ2.Элемент2 ИЗ &ТЗ2 КАК ТЗ2
Поделитесь информацией по этому поводу. Нужно именно таким способом, то есть каждая строка цикла должна добавить очередной кусок объединения.
Vofka @ Сегодня, 16:10
, Согласен. Уровень заранее известен, но нужно сделать универсально и не программно, а сразу запросом. На сколько я знаю, это возможно и довольно просто. Вот только прийти к этому не получается.
Получилось решить следующим образом: 1) отбираю все существующие родители с признаком Истина и помещаю их в ВТ 2) во втором пакете задаю условие : КакойТоОбъект.Родитель В ИЕРАРХИИ (Выбрать ВТ.Родитель Из ВТ)
denis84 @ Сегодня, 14:31
, Мне признак нужен не как параметр, а как Истина (всегда). А если его задать в условии как вы написали, то он будет фильтровать только по прямому родителю номенклатуры и поэтому не покажет номенклатуру, у которой (грубо говоря) родитель.родитель.родитель имеет признак истина.
Плюс мне также не подходит вариант, где количество уровней иерархии ограничено (не подходит вариант: номенклатура.родитель.родитель.родитель и т.д.)
Вариант с "Итоги по только иерархия" показывает очень подробно что я хочу:
1 - Л 1.1 - И 1.1.1 1.1.2 1.2 - Л 1.2.1 2 - И 2.1 - Л 2.1.1
И если правильно наложить условие (отбор), то должны остаться:
Конфигурация: Trade (10.3.29.1) (http://v8.1c.ru/trade/), версия: 8.3.11.2867, обычные формы. Добрый день. Подскажите пожалуйста в следующем. Нужно запросом получить номенклатуру, родитель которой (или родитель родителя, или родитель родителя родителя и т.д.) имеет установленную галка (некий признак). В инете много тем есть о получении всех родителей номенклатуры (через Итоги по только иерархия), но как наложить условие (отбор)?
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВозвратТоваровОтПокупателяТовары.Номенклатура КАК Номенклатура, | ВозвратТоваровОтПокупателяТовары.ДокументПартии КАК Реализация, | ВозвратТоваровОтПокупателяТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения |ПОМЕСТИТЬ ЗапросПоВозврату |ИЗ | Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары |ГДЕ | ВозвратТоваровОтПокупателяТовары.Ссылка = &ДокументВозврата |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЗапросПоВозврату.Номенклатура КАК Номенклатура, | ПартииТоваровНаСкладах.Количество КАК Количество, | ЗапросПоВозврату.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | ПартииТоваровНаСкладах.Стоимость КАК Стоимость, | ПартииТоваровНаСкладах.Склад КАК Склад |ИЗ | ЗапросПоВозврату КАК ЗапросПоВозврату | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах | ПО ЗапросПоВозврату.Номенклатура = ПартииТоваровНаСкладах.Номенклатура | И ЗапросПоВозврату.Реализация = ПартииТоваровНаСкладах.Регистратор | |УПОРЯДОЧИТЬ ПО | Номенклатура, | ПартииТоваровНаСкладах.ДокументОприходования УБЫВ |АВТОУПОРЯДОЧИВАНИЕ";
Конфигурация: Trade (10.3.29.1) (http://v8.1c.ru/trade/), версия: 8.3.11.2867, обычные формы. Подсчёт количества дней хранения номенклатуры на складе. Добрый день. Подскажите пожалуйста идею, метод или способ, как можно реализовать следующее задание: Нужно подсчитать сколько дней номенклатура пролежала на складе за полтора года. Учитываются полные (то есть на начало дня есть остаток и на конец дня), рабочие дни. Также рабочим днём считается суббота. Но выходные (воскресенье) и праздничные не считаются.
stark @ Вчера, 17:59
, Нужно как то сделать грамотный отбор после запроса,в котором будут сравниваться строки одной таблицы (возвраты) и другой (партий). Ну и одновременно высчитывать нужное количество из таблицы партий в таблицу возвратов.
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВозвратТоваровОтПокупателяТовары.Номенклатура КАК Номенклатура, | ВозвратТоваровОтПокупателяТовары.Количество КАК Количество, | ВозвратТоваровОтПокупателяТовары.ДокументПартии КАК Реализация, | ВозвратТоваровОтПокупателяТовары.Склад КАК Склад, | ВозвратТоваровОтПокупателяТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения |ПОМЕСТИТЬ ЗапросПоВозврату |ИЗ | Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары |ГДЕ | ВозвратТоваровОтПокупателяТовары.Ссылка = &ДокументВозврата |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЗапросПоВозврату.Номенклатура КАК Номенклатура, | ЗапросПоВозврату.Количество КАК КоличествоНоменклатурыВозврата, | ПартииТоваровНаСкладах.Количество КАК Количество, | ЗапросПоВозврату.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | ПартииТоваровНаСкладах.Стоимость КАК Стоимость, | ЗапросПоВозврату.Склад КАК Склад |ИЗ | ЗапросПоВозврату КАК ЗапросПоВозврату | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах | ПО ЗапросПоВозврату.Номенклатура = ПартииТоваровНаСкладах.Номенклатура | И ЗапросПоВозврату.Реализация = ПартииТоваровНаСкладах.Регистратор | |УПОРЯДОЧИТЬ ПО | Номенклатура, | ПартииТоваровНаСкладах.ДокументОприходования УБЫВ |АВТОУПОРЯДОЧИВАНИЕ";
Конфигурация: Trade (10.3.29.1) (http://v8.1c.ru/trade/), версия: 8.3.11.2867, обычные формы. Добрый день. Подскажите пожалуйста в следующем. Мне нужно создать обработку, с помощью которой я смогу создавать документы оприходования товара на основе не проведённого документа возврат от покупателей. То есть получать позиции и количество из документа возврат от покупателей плюс нужно рассчитать себе стоимость. То есть есть реализация проведённая, есть её не проведённый возврат. Нужно вместо возврат создать документ оприходования. Товар из регистра партии товаров на складах списывается через реализацию по принципу FIFO. Документ возврат от покупателей возвращает товар немного иначе, последний товар который был списан из реализации будет первым в возврате (ну и остальные партии по такому же принципу). То есть оприходование должно записывать партии в такой же очерёдности как документ возврат от покупателей. Подскажите, как реализовать. Небольшие наработки:
ВЫБРАТЬ ВозвратТоваровОтПокупателяТовары.Номенклатура КАК Номенклатура, ВозвратТоваровОтПокупателяТовары.ДокументПартии КАК Реализация ПОМЕСТИТЬ ЗапросПоВозврату ИЗ Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары ГДЕ ВозвратТоваровОтПокупателяТовары.Ссылка = &ДокументВозврата ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЗапросПоВозврату.Номенклатура КАК Номенклатура, ПартииТоваровНаСкладах.Количество КАК Количество, ПартииТоваровНаСкладах.Стоимость КАК Стоимость, ПартииТоваровНаСкладах.ДокументОприходования КАК ДокументОприходования ИЗ ЗапросПоВозврату КАК ЗапросПоВозврату ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах ПО ЗапросПоВозврату.Номенклатура = ПартииТоваровНаСкладах.Номенклатура И ЗапросПоВозврату.Реализация = ПартииТоваровНаСкладах.Регистратор
Vofka @ 28.05.20, 17:19
, В общем нужно было мне получить три последние документа реализации, у которых был возврат. За возврат расписывать не буду, а вот как получал три последние документа реализации по номенклатуре напишу:
ВЫБРАТЬ Продажи.Номенклатура КАК Номенклатура ПОМЕСТИТЬ НоменклатураВозвратов ИЗ РегистрНакопления.Продажи КАК Продажи ГДЕ Продажи.Регистратор ССЫЛКА Документ.ВозвратТоваровОтПокупателя И НАЧАЛОПЕРИОДА(Продажи.Период, ДЕНЬ) = &ДатаВозврата
СГРУППИРОВАТЬ ПО Продажи.Номенклатура ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Продажи.Период КАК ДатаРеализации, Продажи.Номенклатура КАК Номенклатура, Продажи.Регистратор КАК Реализация ПОМЕСТИТЬ РеализацииНоменклатуыВозвратов ИЗ НоменклатураВозвратов КАК НоменклатураВозвратов ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи КАК Продажи ПО НоменклатураВозвратов.Номенклатура = Продажи.Номенклатура ГДЕ Продажи.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг И НАЧАЛОПЕРИОДА(Продажи.Период, ДЕНЬ) <= &ДатаВозврата
СГРУППИРОВАТЬ ПО Продажи.Номенклатура, Продажи.Период, Продажи.Регистратор ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МАКСИМУМ(РеализацииНоменклатуыВозвратов.ДатаРеализации) КАК ДатаРеализации, РеализацииНоменклатуыВозвратов.Номенклатура КАК Номенклатура ПОМЕСТИТЬ ПервоеСостояние ИЗ РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов
СГРУППИРОВАТЬ ПО РеализацииНоменклатуыВозвратов.Номенклатура ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МАКСИМУМ(РеализацииНоменклатуыВозвратов.ДатаРеализации) КАК ДатаРеализации, РеализацииНоменклатуыВозвратов.Номенклатура КАК Номенклатура ПОМЕСТИТЬ ВтороеСостояние ИЗ РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов ЛЕВОЕ СОЕДИНЕНИЕ ПервоеСостояние КАК ПервоеСостояние ПО РеализацииНоменклатуыВозвратов.Номенклатура = ПервоеСостояние.Номенклатура И РеализацииНоменклатуыВозвратов.ДатаРеализации = ПервоеСостояние.ДатаРеализации ГДЕ ПервоеСостояние.Номенклатура ЕСТЬ NULL
СГРУППИРОВАТЬ ПО РеализацииНоменклатуыВозвратов.Номенклатура ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МАКСИМУМ(РеализацииНоменклатуыВозвратов.ДатаРеализации) КАК ДатаРеализации, РеализацииНоменклатуыВозвратов.Номенклатура КАК Номенклатура ПОМЕСТИТЬ ТретьеСостояние ИЗ РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов ЛЕВОЕ СОЕДИНЕНИЕ ПервоеСостояние КАК ПервоеСостояние ПО РеализацииНоменклатуыВозвратов.Номенклатура = ПервоеСостояние.Номенклатура И РеализацииНоменклатуыВозвратов.ДатаРеализации = ПервоеСостояние.ДатаРеализации ЛЕВОЕ СОЕДИНЕНИЕ ВтороеСостояние КАК ВтороеСостояние ПО РеализацииНоменклатуыВозвратов.Номенклатура = ВтороеСостояние.Номенклатура И РеализацииНоменклатуыВозвратов.ДатаРеализации = ВтороеСостояние.ДатаРеализации ГДЕ ВтороеСостояние.Номенклатура ЕСТЬ NULL И ПервоеСостояние.Номенклатура ЕСТЬ NULL
СГРУППИРОВАТЬ ПО РеализацииНоменклатуыВозвратов.Номенклатура ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПервоеСостояние.Номенклатура КАК Номенклатура, РеализацииНоменклатуыВозвратов.Реализация КАК Реализация ИЗ ПервоеСостояние КАК ПервоеСостояние ЛЕВОЕ СОЕДИНЕНИЕ РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов ПО ПервоеСостояние.Номенклатура = РеализацииНоменклатуыВозвратов.Номенклатура И ПервоеСостояние.ДатаРеализации = РеализацииНоменклатуыВозвратов.ДатаРеализации
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ ВтороеСостояние.Номенклатура, РеализацииНоменклатуыВозвратов.Реализация ИЗ ВтороеСостояние КАК ВтороеСостояние ЛЕВОЕ СОЕДИНЕНИЕ РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов ПО ВтороеСостояние.Номенклатура = РеализацииНоменклатуыВозвратов.Номенклатура И ВтороеСостояние.ДатаРеализации = РеализацииНоменклатуыВозвратов.ДатаРеализации
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ ТретьеСостояние.Номенклатура, РеализацииНоменклатуыВозвратов.Реализация ИЗ ТретьеСостояние КАК ТретьеСостояние ЛЕВОЕ СОЕДИНЕНИЕ РеализацииНоменклатуыВозвратов КАК РеализацииНоменклатуыВозвратов ПО ТретьеСостояние.Номенклатура = РеализацииНоменклатуыВозвратов.Номенклатура И ТретьеСостояние.ДатаРеализации = РеализацииНоменклатуыВозвратов.ДатаРеализации
УПОРЯДОЧИТЬ ПО Реализация УБЫВ, Номенклатура ИТОГИ КОЛИЧЕСТВО(Реализация) ПО Номенклатура АВТОУПОРЯДОЧИВАНИЕ
sava1 @ 26.05.20, 11:03
, Нужно определить количество последних реализаций (например & = 3). Затем узнать были ли возвраты за дату (& = дата) и в таком же количестве как и реализации (& = 3). То есть, чтобы шли реализация - возврат, реализация - возврат, реализация - возврат. И не было между ними просто реализации без возврата.
Конфигурация: Trade (10.3.29.1) (http://v8.1c.ru/trade/), версия: 8.3.11.2867, обычные формы. Добрый день. Подскажите пожалуйста, как можно реализация следующий функционал (саму логику): Мне нужно запросом получить количество документов реализации и возврата по позиции так, чтобы они шли друг за другом. То есть идёт документ РЕАЛИЗАЦИИ, за ним документ ВОЗВРАТА. Если же идёт документ РЕАЛИЗАЦИИ, за ним опять документ РЕАЛИЗАЦИИ, то это ошибочная ситуация.
ВЫБРАТЬ ПродажиОбороты.Номенклатура КАК Номенклатура, СУММА(ПродажиОбороты.КоличествоОборот) КАК КоличествоОборот ПОМЕСТИТЬ ЗапросПоНоменклатуре ИЗ РегистрНакопления.Продажи.Обороты(&Дата_Начала, &Дата_Окончания, Регистратор, ) КАК ПродажиОбороты
СГРУППИРОВАТЬ ПО ПродажиОбороты.Номенклатура
ИМЕЮЩИЕ СУММА(ПродажиОбороты.КоличествоОборот) = 0 ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПродажиОбороты.Регистратор КАК Регистратор ПОМЕСТИТЬ ЗапросПоВозвратам ИЗ ЗапросПоНоменклатуре КАК ВТ ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&Дата_Начала, &Дата_Окончания, Регистратор, ) КАК ПродажиОбороты ПО ВТ.Номенклатура = ПродажиОбороты.Номенклатура ГДЕ ПродажиОбороты.КоличествоОборот < 0
СГРУППИРОВАТЬ ПО ПродажиОбороты.Регистратор ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВозвратТоваровОтПокупателяТовары.Номенклатура КАК Номенклатура ПОМЕСТИТЬ ВозвратыЗаДату ИЗ Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары ГДЕ ВозвратТоваровОтПокупателяТовары.Ссылка В (ВЫБРАТЬ ЗапросПоВозвратам.Регистратор КАК Регистратор ИЗ ЗапросПоВозвратам КАК ЗапросПоВозвратам) И НАЧАЛОПЕРИОДА(ВозвратТоваровОтПокупателяТовары.Ссылка.Дата, ДЕНЬ) = &ДатаВозврата ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВозвратТоваровОтПокупателяТовары.Номенклатура КАК Номенклатура, ЗначенияСвойствОбъектов.Значение КАК TOPGP ПОМЕСТИТЬ ТЗНоменклатуры ИЗ Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ПО ВозвратТоваровОтПокупателяТовары.Номенклатура = ЗначенияСвойствОбъектов.Объект ГДЕ ВозвратТоваровОтПокупателяТовары.Ссылка В (ВЫБРАТЬ ЗапросПоВозвратам.Регистратор КАК Регистратор ИЗ ЗапросПоВозвратам КАК ЗапросПоВозвратам) И ЗначенияСвойствОбъектов.Свойство.Код = "000000467"
СГРУППИРОВАТЬ ПО ВозвратТоваровОтПокупателяТовары.Номенклатура, ЗначенияСвойствОбъектов.Значение
ИМЕЮЩИЕ КОЛИЧЕСТВО(ВозвратТоваровОтПокупателяТовары.Ссылка) >= ВЫБОР КОГДА &КоличествоВозвратов = 0 ТОГДА 3 ИНАЧЕ &КоличествоВозвратов КОНЕЦ ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВозвратТоваровОтПокупателяТовары.Номенклатура КАК Номенклатура, ВозвратТоваровОтПокупателяТовары.ДокументПартии КАК Реализация, ВозвратТоваровОтПокупателяТовары.Ссылка КАК Возврат, ВозвратТоваровОтПокупателяТовары.Склад КАК Склад ПОМЕСТИТЬ ПоследниеВозвраты ИЗ ВозвратыЗаДату КАК ВозвратыЗаДату ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары ПО ВозвратыЗаДату.Номенклатура = ВозвратТоваровОтПокупателяТовары.Номенклатура ГДЕ ВозвратТоваровОтПокупателяТовары.Ссылка В (ВЫБРАТЬ ЗапросПоВозвратам.Регистратор КАК Регистратор ИЗ ЗапросПоВозвратам КАК ЗапросПоВозвратам) ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ПоследниеВозвраты.Номенклатура КАК Номенклатура, ТЗНоменклатуры.TOPGP КАК TOPGP, ПоследниеВозвраты.Реализация КАК Реализация, ПоследниеВозвраты.Возврат КАК Возврат, ПоследниеВозвраты.Склад КАК Склад ИЗ ТЗНоменклатуры КАК ТЗНоменклатуры ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПоследниеВозвраты КАК ПоследниеВозвраты ПО ТЗНоменклатуры.Номенклатура = ПоследниеВозвраты.Номенклатура
УПОРЯДОЧИТЬ ПО Реализация УБЫВ, Номенклатура ИТОГИ КОЛИЧЕСТВО(Реализация), КОЛИЧЕСТВО(Возврат) ПО Номенклатура АВТОУПОРЯДОЧИВАНИЕ
Честно, не скажу, так как дали доработать запрос и на сколько я понял на мой результат не влияет. Мне нужно оставить только ту номенклатуру, у который за период было количество возвратов больше либо равно моего указанного значения. Вот например мой результат:
По итогам у номенклатуры 10 документов возврата. Значит она попадает в условие >= &значения. Но как это задать, я не знаю. Условие по ИТОГОМ вроде нельзя задавать.
fly @ 18.05.20, 15:56
,
Вот оригинальный запрос. Остальное мои попытки.
ВЫБРАТЬ ПродажиОбороты.Номенклатура КАК Номенклатура, СУММА(ПродажиОбороты.КоличествоОборот) КАК КоличествоОборот ПОМЕСТИТЬ ЗапросПоНоменклатуре ИЗ РегистрНакопления.Продажи.Обороты(&Дата_Начала, &Дата_Окончания, Регистратор, ) КАК ПродажиОбороты
СГРУППИРОВАТЬ ПО ПродажиОбороты.Номенклатура
ИМЕЮЩИЕ СУММА(ПродажиОбороты.КоличествоОборот) = 0 ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПродажиОбороты.Регистратор КАК Регистратор ПОМЕСТИТЬ ЗапросПоВозвратам ИЗ ЗапросПоНоменклатуре КАК ВТ ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&Дата_Начала, &Дата_Окончания, Регистратор, ) КАК ПродажиОбороты ПО ВТ.Номенклатура = ПродажиОбороты.Номенклатура ГДЕ ПродажиОбороты.КоличествоОборот < 0
СГРУППИРОВАТЬ ПО ПродажиОбороты.Регистратор ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВозвратТоваровОтПокупателяТовары.Номенклатура КАК Номенклатура, ВозвратТоваровОтПокупателяТовары.ДокументПартии КАК Реализция, ВозвратТоваровОтПокупателяТовары.Ссылка КАК Возврат ИЗ Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары ГДЕ ВозвратТоваровОтПокупателяТовары.Ссылка В (ВЫБРАТЬ ЗапросПоВозвратам.Регистратор КАК Регистратор ИЗ ЗапросПоВозвратам КАК ЗапросПоВозвратам)
УПОРЯДОЧИТЬ ПО Реализция УБЫВ, Номенклатура ИТОГИ КОЛИЧЕСТВО(Реализция), КОЛИЧЕСТВО(Возврат) ПО Номенклатура АВТОУПОРЯДОЧИВАНИЕ
Спасибо большое за ответ. Пришёл к тому, что достаточно просто почистить РС на основании которого заполняются данные характеристик в форме элемента характеристики, а значения характеристик (в справочнике) нисколько не мешают, поэтому и помечать их на удаление нет смысла. Но и Вы и я были правы, как удаляются элементы с помощью метода
Конфигурация: Trade (10.3.29.1) (http://v8.1c.ru/trade/), версия: 8.3.11.2867, обычные формы. Добрый день. Подскажите пожалуйста. У меня есть справочник ЗначенияХарактеристик, также есть справочник Характеристики (который в свою очередь является владельцем справочника ЗначенияХарактеристик). Сделал обработку, с помощью которой я могу выбрать характеристику и удалить (пометить на удаление) её и её значения (пометить на удаление в справочнике ЗначенияХарактеристик и также очистить записи по нужным регистрам). Появилась нужда доработать обработку таким способом, чтобы можно было выбрать характеристику и удалить (пометить) только её значения, а саму характеристику не трогать. Раньше удалял (помечал) характеристики таким способом:
Элемент значения характеристик помечается, но связь между ним и характеристикой всё же остаётся, так как при повторном добавлении через обработку такого же значения той же характеристики, значение не добавляется, так как в базе он есть, но он помечен и в этом загвоздка. Пробовал так:
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!