Как получить по 10 номенклатур из группы(а в группе есть еще подгруппы)? И вот из каждой нужно по 10.
По заданию нужно создать обработку на Демонстрационную базу УТ 11.
Обработка по автоматическому созданию документа ПТУ (Приобретение товаров и услуг). в форме обработки выбирается контрагент и группа номенклатуры (справочник иерархический, нужно выбирать именно группу, а не элемент). потом по кнопке создать создается документ ПТУ (может там еще будут какие-то обязательные реквизиты, если да, то вывести их заполнение тоже на форму обработки). в ПТУ в ТЧ товары должны попасть по 10 номенклатур из всех подгрупп (всю длину иерархии) из выбранной группы номенклатуры. Обязательно проверить, что в выбранной группе может быть более одного уровня вложенности. если в группе менее 10 номенклатур, то сколько есть, если более 10 - 10.
Запрос написала такой, но выдает ошибку в консоли запроса мол "При выполнении запроса произошла ошибка: <{ВнешнийОтчет.КонсольЗапросов_КСУ.Форма.ФормаОтчета.Форма(1856)}: Ошибка при вызове метода контекста (Выполнить): {(20, 2)}: Таблица не найдена "ВременнаяТаблица"
<<?>>ВременнаяТаблица КАК ВременнаяТаблица>"
В Номенклатура.Код = "00-00000001" указываю группу, тк в моей консоли нельзя выбирать группы, только элементы :с
Даже проверить правильность запроса не могу, два дня мучаюсь(( Помогите, кто чем сможет, товарищи!
Обработка по автоматическому созданию документа ПТУ (Приобретение товаров и услуг). в форме обработки выбирается контрагент и группа номенклатуры (справочник иерархический, нужно выбирать именно группу, а не элемент). потом по кнопке создать создается документ ПТУ (может там еще будут какие-то обязательные реквизиты, если да, то вывести их заполнение тоже на форму обработки). в ПТУ в ТЧ товары должны попасть по 10 номенклатур из всех подгрупп (всю длину иерархии) из выбранной группы номенклатуры. Обязательно проверить, что в выбранной группе может быть более одного уровня вложенности. если в группе менее 10 номенклатур, то сколько есть, если более 10 - 10.
Запрос написала такой, но выдает ошибку в консоли запроса мол "При выполнении запроса произошла ошибка: <{ВнешнийОтчет.КонсольЗапросов_КСУ.Форма.ФормаОтчета.Форма(1856)}: Ошибка при вызове метода контекста (Выполнить): {(20, 2)}: Таблица не найдена "ВременнаяТаблица"
<<?>>ВременнаяТаблица КАК ВременнаяТаблица>"
В Номенклатура.Код = "00-00000001" указываю группу, тк в моей консоли нельзя выбирать группы, только элементы :с
Даже проверить правильность запроса не могу, два дня мучаюсь(( Помогите, кто чем сможет, товарищи!
ВЫБРАТЬ
Номенклатура.Ссылка КАК Ссылка
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Ссылка В ИЕРАРХИИ
(ВЫБРАТЬ
Номенклатура.Ссылка КАК Ссылка
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Код = "00-00000001")
И Номенклатура.ЭтоГруппа
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 10
Номенклатура.Ссылка КАК Ссылка
ИЗ
ВременнаяТаблица КАК ВременнаяТаблица
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
ПО ВременнаяТаблица.Ссылка = Номенклатура.Ссылка
ГДЕ
НЕ Номенклатура.ЭтоГруппа
И Номенклатура.Ссылка В ИЕРАРХИИ
(ВЫБРАТЬ
ВременнаяТаблица.Ссылка
ИЗ
ВременнаяТаблица КАК ВременнаяТаблица)
СГРУППИРОВАТЬ ПО
Номенклатура.Ссылка
ПоказатьПо теме из базы знаний
Найденные решения
ВЫБРАТЬ
Номенклатура.Ссылка КАК Ссылка
ПОМЕСТИТЬ ВТ_Группы
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.ЭтоГруппа = ИСТИНА
И Номенклатура.Ссылка В ИЕРАРХИИ (&Группа)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ_Группы.Ссылка КАК Группа,
Номенклатура.Ссылка КАК Ссылка
ИЗ
ВТ_Группы КАК ВТ_Группы
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
ПО ВТ_Группы.Ссылка = Номенклатура.Родитель
И (Номенклатура.Ссылка В
(ВЫБРАТЬ ПЕРВЫЕ 10
Номенклатура10.Ссылка
ИЗ
Справочник.Номенклатура КАК Номенклатура10
ГДЕ
Номенклатура10.Родитель = ВТ_Группы.Ссылка
И Номенклатура10.ЭтоГруппа = ЛОЖЬ))
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) предлагаю следующую последовательность действий
1. Получить все группы В ИЕРАРХИИ
2. Получить Автономерзаписи(), Номенклатура, Группа ГДЕ Группа в (1) СОРТИРОВАТЬ ПО Группа, Номенклатура
3. Определить стартовые номеразаписей для каждой группы
Группа, МИНИМУМ(Автономерзаписи) ИЗ (2)
4. ВЫБРАТЬ Группа, 2.Номенклатура ИЗ (3) ЛЕВОЕ СОЕДИНЕНИЕ (2)
по 3.Группа = 2.Группа И 2.Автономерзаписи МЕЖДУ 3.Автономерзаписи И 3.Автономерзаписи + 9
1. Получить все группы В ИЕРАРХИИ
2. Получить Автономерзаписи(), Номенклатура, Группа ГДЕ Группа в (1) СОРТИРОВАТЬ ПО Группа, Номенклатура
3. Определить стартовые номеразаписей для каждой группы
Группа, МИНИМУМ(Автономерзаписи) ИЗ (2)
4. ВЫБРАТЬ Группа, 2.Номенклатура ИЗ (3) ЛЕВОЕ СОЕДИНЕНИЕ (2)
по 3.Группа = 2.Группа И 2.Автономерзаписи МЕЖДУ 3.Автономерзаписи И 3.Автономерзаписи + 9
(4) Где-то я по моему ошиблась. Поправьте пожалуйста, если можно.
ВЫБРАТЬ
Номенклатура.Ссылка КАК Группы,
АВТОНОМЕРЗАПИСИ() КАК Номер
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Ссылка В ИЕРАРХИИ
(ВЫБРАТЬ
Номенклатура.Ссылка КАК Ссылка
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Код = "00-00000001")
И Номенклатура.ЭтоГруппа
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВременнаяТаблица.Номер КАК Номер,
Номенклатура.Ссылка КАК Номенкатура,
ВременнаяТаблица.Группы КАК Группы
ИЗ
ВременнаяТаблица КАК ВременнаяТаблица
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
ПО ВременнаяТаблица.Группы = Номенклатура.Ссылка
УПОРЯДОЧИТЬ ПО
Номенкатура,
Группы
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВременнаяТаблица.Группы КАК Группы,
МИНИМУМ(ВременнаяТаблица.Номер) КАК Номер
ПОМЕСТИТЬ ГруппыУпорядок
ИЗ
ВременнаяТаблица КАК ВременнаяТаблица
СГРУППИРОВАТЬ ПО
ВременнаяТаблица.Группы
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ГруппыУпорядок.Группы КАК ГруппыУпор,
ВременнаяТаблица.Группы КАК ГруппыОбычн
ИЗ
ГруппыУпорядок КАК ГруппыУпорядок
ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблица КАК ВременнаяТаблица
ПО ГруппыУпорядок.Группы = ВременнаяТаблица.Группы
ГДЕ
ВременнаяТаблица.Номер МЕЖДУ ГруппыУпорядок.Номер И ГруппыУпорядок.Номер + 9
Показать
Временной таблицы в запросе нет, вот оно и ругается.
Если нужно ехать, а не шашечки, простой, не самый рациональный вариант:
В первом запросе через в ИЕРАРХИИ и Это группа отобрать все вложенные папки,
затем в цикле пройтись по ним еще одним запросом, где уже Номенклатура.Родитель = Папка и
Не Это группа из цикла, выбрать первые 10. Группировать ничего не надо
Если нужно ехать, а не шашечки, простой, не самый рациональный вариант:
В первом запросе через в ИЕРАРХИИ и Это группа отобрать все вложенные папки,
затем в цикле пройтись по ним еще одним запросом, где уже Номенклатура.Родитель = Папка и
Не Это группа из цикла, выбрать первые 10. Группировать ничего не надо
(2)
К сожалению вариант запросом еще раз пройтись в цикле по папкам мне уже забраковали.
Сказали: нельзя запрос в цикле делать, должен быть один запрос и потом 1 цикл, в котором будешь получать все необходимые номенклатуры.
вот я уже так пыталась:
К сожалению вариант запросом еще раз пройтись в цикле по папкам мне уже забраковали.
Сказали: нельзя запрос в цикле делать, должен быть один запрос и потом 1 цикл, в котором будешь получать все необходимые номенклатуры.
вот я уже так пыталась:
Прикрепленные файлы:
ВЫБРАТЬ
Номенклатура.Ссылка КАК Ссылка
ПОМЕСТИТЬ ВТ_Группы
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.ЭтоГруппа = ИСТИНА
И Номенклатура.Ссылка В ИЕРАРХИИ (&Группа)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ_Группы.Ссылка КАК Группа,
Номенклатура.Ссылка КАК Ссылка
ИЗ
ВТ_Группы КАК ВТ_Группы
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
ПО ВТ_Группы.Ссылка = Номенклатура.Родитель
И (Номенклатура.Ссылка В
(ВЫБРАТЬ ПЕРВЫЕ 10
Номенклатура10.Ссылка
ИЗ
Справочник.Номенклатура КАК Номенклатура10
ГДЕ
Номенклатура10.Родитель = ВТ_Группы.Ссылка
И Номенклатура10.ЭтоГруппа = ЛОЖЬ))
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот