Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> не коректная работа запроса          
4andriy Подменю пользователя
сообщение 23.02.21, 23:58
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 174
Спасибо сказали: 1 раз
Рейтинг: 1

Сформировал через конструктор простой запрос для выборки по сотрудникам по дате начала работы. Ничего не менял.
Результат запроса:
Сидоров 01.02.2021
Петров 02.02.2021
и т.д. по дням...
Код работает, но если несколько сотрудников начали работу в один день то в результате запроса на один день мы видим только одного сотрудника.

//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |ДатаПрийн = Справочник.Сотрудники.ДатаПрийн;
    |Условие(ДатаПрийн>ВыбНачПериода);
    |Условие(ДатаПрийн<ВыбКонПериода);
    |"//}}ЗАПРОС
;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;

    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    Пока Запрос.Группировка() = 1 Цикл
        // Заполнение полей Сформировать
        Таб.ВывестиСекцию("Сформировать");
    КонецЦикла;
    // Вывод заполненной формы
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
КонецПроцедуры

denis84 Подменю пользователя
сообщение 24.02.21, 6:35
Сообщение #2

Оратор
Иконка группы
Группа: Местный
Сообщений: 421
Из: Украина
Спасибо сказали: 133 раз
Рейтинг: 132.5

4andriy @ Вчера, 23:58 * ,
Добрый день! Группировку по сотруднику в запрос добавьте. У вас получается группируется по дате приема,а сотрудник нет. Запрос нашел одного и все и идёт на следующую дату

Спасибо сказали: 4andriy,

denis84 Подменю пользователя
сообщение 24.02.21, 13:08
Сообщение #3

Оратор
Иконка группы
Группа: Местный
Сообщений: 421
Из: Украина
Спасибо сказали: 133 раз
Рейтинг: 132.5

denis84 @ Сегодня, 6:35 * ,
отпишитесь по результату

Спасибо сказали: 4andriy,

4andriy Подменю пользователя
сообщение 24.02.21, 13:21
Сообщение #4

Завсегдатай
****
Группа: Пользователи
Сообщений: 174
Спасибо сказали: 1 раз
Рейтинг: 1

denis84 @ Сегодня, 6:35 * ,
//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |ДатаПрийн = Справочник.Сотрудники.ДатаПрийн;
    |ИНН = Справочник.Сотрудники.ИНН;
    |Фам = Справочник.Сотрудники.Фам;
    |Условие(ДатаПрийн>ВыбНачПериода);
    |Условие(ДатаПрийн<ВыбКонПериода);
    //|Группировка ДатаПрийн;
    |Группировка ИНН;
    //|Группировка Фам;
    |"//}}ЗАПРОС    
;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;

    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    Пока Запрос.Группировка() = 1 Цикл
        // Заполнение полей Сформировать
        Таб.ВывестиСекцию("Сформировать");
    КонецЦикла;
    // Вывод заполненной формы
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
КонецПроцедуры


изменил так, но теперь результат выглядит так:
xxxxxx 04.02.19 петров
ііііііііііііі 06.02.19 сидоров
кккккк 04.02.19 иванов
(пустота) 04.02.19 Петров - почему-то подвоилось значение

denis84 Подменю пользователя
сообщение 24.02.21, 14:25
Сообщение #5

Оратор
Иконка группы
Группа: Местный
Сообщений: 421
Из: Украина
Спасибо сказали: 133 раз
Рейтинг: 132.5

4andriy @ Сегодня, 13:21 * ,
//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |ТекущийЭлемент = Справочник.Сотрудники.ТекущийЭлемент;
    |ДатаПриема = Справочник.Сотрудники.ДатаПриема;
    |Группировка ТекущийЭлемент;
    |Группировка ДатаПриема;
    |Условие(ДатаПриема > ВыбНачПериода);
    |Условие(ДатаПриема < ВыбКонПериода);
    |"//}}ЗАПРОС
;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;

    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    Пока Запрос.Группировка(1) = 1 Цикл
        Пока Запрос.Группировка(2) = 1 Цикл
            // Заполнение полей ДатаПриема
            Таб.ВывестиСекцию("ДатаПриема");
        КонецЦикла;
    КонецЦикла;
    // Вывод заполненной формы
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
КонецПроцедуры




Сообщение отредактировал denis84 - 24.02.21, 14:33

Спасибо сказали: 4andriy,

4andriy Подменю пользователя
сообщение 24.02.21, 15:02
Сообщение #6

Завсегдатай
****
Группа: Пользователи
Сообщений: 174
Спасибо сказали: 1 раз
Рейтинг: 1

denis84 @ Сегодня, 14:25 * ,
Работает, спасибо!

denis84 Подменю пользователя
сообщение 24.02.21, 15:08
Сообщение #7

Оратор
Иконка группы
Группа: Местный
Сообщений: 421
Из: Украина
Спасибо сказали: 133 раз
Рейтинг: 132.5

4andriy @ Сегодня, 15:02 * ,
Ок!

4andriy Подменю пользователя
сообщение 24.02.21, 21:45
Сообщение #8

Завсегдатай
****
Группа: Пользователи
Сообщений: 174
Спасибо сказали: 1 раз
Рейтинг: 1

denis84 @ Сегодня, 15:08 * ,
что не делает так то сортировку
|Группировка ДатаПриема упорядочить по ДатаПриема;


уже работает!

Сообщение отредактировал Vofka - 03.03.21, 8:25

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 11:29
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!