Odin | База знаний 1С

Как создать запрос ...
 

Как создать запрос для печатной формы "Акт сортировки яиц"?


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

вопрос по созданию запроса от новичка. Есть документ Акт сортировки яиц. Приходят несортированные яйца 2-х типов, их сортируют по категориям и видам. В номенклатуре добавлены доп реквизиты: категория и вид яиц. Как правильно создать запрос для вывода печатной формы по документу?
Создать ВТ: типы несортированных, категории и виды яиц, затем связать по номенклатуре или как то по другому?



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

Привет, Л!

Для создания запроса для вывода печатной формы по документу "Акт сортировки яиц" вам нужно учесть структуру данных, которые вы хотите отобразить. В вашем случае, это будет информация о несортированных яйцах, их категориях и видах.

Вот общий подход к созданию запроса:

1. **Создание временной таблицы (ВТ)**: Вам нужно создать временную таблицу, которая будет содержать данные о типах несортированных яиц, категориях и видах. Это можно сделать с помощью конструкции `ВременнаяТаблица`.

2. **Заполнение временной таблицы**: Заполните временную таблицу данными из документа "Акт сортировки яиц" и связанных с ним объектов (например, номенклатуры).

3. **Создание запроса**: Используйте запрос для выборки данных из документа и связанных объектов. Запрос должен включать необходимые поля, такие как тип, категория и вид яиц.

Пример кода для создания запроса:

1C
Процедура ПолучитьДанныеДляПечати()
    // Создаем временную таблицу
    ВТ = Новый ТаблицаЗначений;
    ВТ.Колонки.Добавить("Тип", Новый ОписаниеТипа("Строка"));
    ВТ.Колонки.Добавить("Категория", Новый ОписаниеТипа("Строка"));
    ВТ.Колонки.Добавить("Вид", Новый ОписаниеТипа("Строка"));
    
    // Создаем запрос
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
        АктСортировкиЯиц.Тип,
        Номенклатура.Категория,
        Номенклатура.Вид
    ИЗ
        Документ.АктСортировкиЯиц КАК АктСортировкиЯиц
    ЛЕВОЕ СОЕДИНЕНИЕ
        Справочник.Номенклатура КАК Номенклатура
    ПО
        АктСортировкиЯиц.Номенклатура = Номенклатура.Ссылка
    ГДЕ
        АктСортировкиЯиц.Дата = &Дата";
    
    // Устанавливаем параметры запроса
    Запрос.УстановитьПараметр("Дата", ТекущаяДата());
    
    // Выполняем запрос
    Результат = Запрос.Выполнить();
    
    // Заполняем временную таблицу данными
    Для Каждого Строка Из Результат Цикл
        НоваяСтрока = ВТ.Добавить();
        НоваяСтрока.Тип = Строка.Тип;
        НоваяСтрока.Категория = Строка.Категория;
        НоваяСтрока.Вид = Строка.Вид;
    КонецЦикла;
    
    // Здесь можно вызвать печать с использованием временной таблицы ВТ
КонецПроцедуры

### Объяснение:
- **Временная таблица**: Создается для хранения данных, которые будут использоваться в печатной форме.
- **Запрос**: Запрашивает данные из документа "Акт сортировки яиц" и связывает их с номенклатурой для получения категории и вида яиц.
- **Параметры**: Вы можете установить параметры запроса, чтобы фильтровать данные по дате или другим критериям.

### Связывание по номенклатуре:
Если у вас в номенклатуре уже есть дополнительные реквизиты (категория и вид), то связывать данные по номенклатуре — это правильный подход. Убедитесь, что в документе "Акт сортировки яиц" есть ссылка на номенклатуру, чтобы можно было выполнить соединение.

Если у вас есть дополнительные вопросы или нужна помощь с конкретными частями кода, дайте знать!



   
ОтветитьЦитата