Skip to content
лого - блог 1с программиста

Блог 1С программиста

Наработки, заметки и другая информация по 1С

  • Главная
  • Типовые конфигурации
    • ЗУП 3.1
      • Разработка
        • Обработки
        • Отчеты
        • Печатные формы
        • Расширения
      • Инструкции
      • Ответы техподдержки 1С
      • Общие вопросы
    • ДО 2.1
    • УХ 3.2
    • УПП 1.3
  • Интеграции и обмены
  • Шаблоны и заготовки
    • Типовые приемы
    • Отчеты
    • Обработки
    • Печатные формы
    • Расширения
  • Платформа 1С
  • Разработки
    • Контакты
  • Toggle search form

Пример работы с «Пакетом запросов»

Posted on 12 августа 24 г.6 февраля 25 г. By Алексей Комментариев к записи Пример работы с «Пакетом запросов» нет

Для работы с пакетами запросов в платформе 1С есть два метода: ВыполнитьПакет() и ВыполнитьПакетСПромежуточнымиДанными(). С помощью них можно получить результат по каждому запросу в виде массива. Первый метод получая результат не детализирует временные таблицы. Более подробно об отличиях можно почитать в синтекс-помощнике.

Пример работы метода ВыполнитьПакет()

Например есть некий документ «Выдача средств защиты для сотрудников» состоящий из «Шапки» документа и двух табличных частей: Выданные средства и Комиссия. Предположим стоит задача получить эти данные и заполнить печатную форму. В данном случаи будет удобно воспользоваться пакетом запросов, т.е. получим результат запроса в три пакета и перенесем в печатную форму:

Выполнить пакет - пример работы
1С (Код)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.АвтоМасштаб = Истина;  
// Получение областей макета
Макет = ЭтотОбъект.ПолучитьМакет("ПФ_СредстваИндивидуальнойЗащиты");
ОбластьШапка = Макет.ПолучитьОбласть("ОбластьШапка");
ОбластьВыданныеСредства = Макет.ПолучитьОбласть("ОбластьВыданныеСредства");
ОбластьКомиссия = Макет.ПолучитьОбласть("ОбластьКомиссия");
 
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ""001"" КАК НомерДокумента,
| ""myblog-1c.ru"" КАК Организация,
| ДАТАВРЕМЯ(2024, 1, 1) КАК ДатаДокумента
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ""001"" КАК НомерДокумента,
| ""Иванов И.И."" КАК Сотрудник,
| ""Защитная каска"" КАК Номенклатура,
| 3 КАК Количество
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ""001"",
| ""Петров П.П."",
| ""Колпак"",
| 2
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ""001"" КАК НомерДокумента,
| ""Смиронов"" КАК ЧленКомиссии
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ""001"",
| ""Капустин""";
 
МассивРезультатов = Запрос.ВыполнитьПакет();
МаксимальныйИндекс = МассивРезультатов.ВГраница();
 
ВыборкаШапка = МассивРезультатов[МаксимальныйИндекс-2].Выбрать();
ВыборкаВыданныеСредства = МассивРезультатов[МаксимальныйИндекс-1].Выбрать();
ВыборкаКомиссия = МассивРезультатов[МаксимальныйИндекс].Выбрать();
Пока ВыборкаШапка.Следующий() Цикл
Если ТабличныйДокумент.ВысотаТаблицы > 0 Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
// Шапка документа
ОбластьШапка.Параметры.Заполнить(ВыборкаШапка);  
ТабличныйДокумент.Вывести(ОбластьШапка);
// Выданные средства
ВыборкаВыданныеСредства.Сбросить();
Пока ВыборкаВыданныеСредства.НайтиСледующий(ВыборкаШапка.НомерДокумента, "НомерДокумента") Цикл
ОбластьВыданныеСредства.Параметры.Заполнить(ВыборкаВыданныеСредства);
ТабличныйДокумент.Вывести(ОбластьВыданныеСредства);
КонецЦикла;
// Комиссия
ВыборкаКомиссия.Сбросить();
Пока ВыборкаКомиссия.НайтиСледующий(ВыборкаШапка.НомерДокумента, "НомерДокумента") Цикл
ОбластьКомиссия.Параметры.Заполнить(ВыборкаКомиссия);
ТабличныйДокумент.Вывести(ОбластьКомиссия);
КонецЦикла;
          
КонецЦикла;
 
Возврат ТабличныйДокумент;

Рекомендации

  • Шпаргалка по запросам 1С
  • Пример работы с Диаграммой Ганта
  • Связь табличных частей по ключевым полям
Типовые приемы, Шаблоны и заготовки Tags:запрос

Навигация по записям

Previous Post: Вариант решения задачи от Елены Ф.
Next Post: Как рассчиталась сумма «В том числе за счет федерального бюджета» в Больничном листе ЗУП 3.1

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

ДзенTelegram

Разработки

  • Печатная форма "Расходный кассовый ордер" для ЗУП 3.1 Печатная форма "Расходный кассовый ордер" ЗУП 3.1 650,00 ₽
  • Отчет "План-факт отпусков сотрудников в виде диаграммы Ганта Отчет "План-факт по отпускам сотрудников" ЗУП 3.1 650,00 ₽
  • Приказ об отмене трудового договора (рис 1) Печатная форма "Отмена приема на работу" ЗУП 3.1 650,00 ₽
  • Обработка “Выплата сотруднику через банк” ЗУП 3.1 Обработка “Выплата сотруднику через банк” ЗУП 3.1 0,00 ₽
  • Тестирование API Яндекс GPT Обработка "Работа с API YandexGPT" 650,00 ₽

MDM web-сервис XML БСП ЕФС-1 ИИ КД 2.0 НДФЛ СЗВ-СТАЖ СЗВ-ТД СКД СТД-Р СФР СЭДО ФСС ФСС НС больничные листы взносы вычеты длительная операция запрос интерфейс кадровая история кадровые данные кадровые переводы легкий труд мастер-данных обмен данными общий модуль отбор отпуска печать без проверки печать с диалогом пользователи представление прием на работу резервы отпусков сверхурочные синхронизация ЗУП и БП средний заработок табель таблица периодов табличный документ фотография штатное расписание

Яндекс.Метрика

© 2022-2026 myblog-1c.ru

Пользовательское соглашение

Контакты