Группа: Местный
Сообщений: 237
Спасибо сказали: 47 раз
Рейтинг: 42
Конфигурация УПП для Украины, переделанная. Есть регистр накопления "Продажи", в котором есть измерение "Контрагент". Добавили периодический регистр сведений "МенеджерыКонтрагентов" (периодичность в пределах дня) в котором тоже есть измерение "Контрагент", а ресурс Менеджер. Нужно сформировать отчет в котором бы был отбор и группировка по Менеджеру. Подскажите есть ли такая возможность, и учитывая то что менеджер в течении выбранного периода у данного контрагента может поменяться.
Группа: Местный
Сообщений: 522
Спасибо сказали: 70 раз
Рейтинг: 51.3
Цитата(alex1c @ 17.11.10, 16:03)
Конфигурация УПП для Украины, переделанная. Есть регистр накопления "Продажи", в котором есть измерение "Контрагент". Добавили периодический регистр сведений "МенеджерыКонтрагентов" (периодичность в пределах дня) в котором тоже есть измерение "Контрагент", а ресурс Менеджер. Нужно сформировать отчет в котором бы был отбор и группировка по Менеджеру. Подскажите есть ли такая возможность, и учитывая то что менеджер в течении выбранного периода у данного контрагента может поменяться.
Можно реализовать запрос, но выполняться он будет очень долго. Не легче ли было при проведении доков брать тек. менеджера и записывать в регистр ПРОДАЖИ ?
ВЫБРАТЬ Продажи.Контрагент ИЗ РегистрыНакопления.Продажи.Обороты( &ДатаНач, &ДатаКон, , Контрагент В (ВЫБРАТЬ МенеджерыКонтрагентов.Контрагент ИЗ РегистрыСведений.МенеджерыКонтрагентов.СрезПоследних(&ДатаКон, ) КАК МенеджерыКонтрагентов ГДЕ МенеджерыКонтрагентов.Менеджер = &Менеджер)) КАК Продажи
И работать будет достаточно быстро.
В наше время люди всему знают цену, но понятия не имеют о подлинной ценности. Оскар Уайлд
Группа: Местный
Сообщений: 522
Спасибо сказали: 70 раз
Рейтинг: 51.3
Цитата(Vofka @ 17.11.10, 16:14)
Прицепите левым соединением менеджера, в чем проблема?
Менеджер в разрезе дня - Левое соединение с (выборку по датам регистра продажи + контрагентам + менеджерам) связь по максимальной дате менеджеров меньшей даты регистра продажи.
Группа: Местный
Сообщений: 522
Спасибо сказали: 70 раз
Рейтинг: 51.3
Цитата(World1С @ 17.11.10, 16:16)
Предлагаю так
ВЫБРАТЬ Продажи.Контрагент ИЗ РегистрыНакопления.Продажи.Обороты( &ДатаНач, &ДатаКон, , Контрагент В (ВЫБРАТЬ МенеджерыКонтрагентов.Контрагент ИЗ РегистрыСведений.МенеджерыКонтрагентов.СрезПоследних(&ДатаКон, ) КАК МенеджерыКонтрагентов ГДЕ МенеджерыКонтрагентов.Менеджер = &Менеджер)) КАК Продажи
Будет выбран только последний менеджер на дату конца. На сколько я понял необходимо выбрать менеджера на дату регистратора.
Группа: Основатель
Сообщений: 13982
Из: Киев
Спасибо сказали: 4549 раз
Рейтинг: 3678.1
Цитата
В том то и проблема, что что до 10 числа был один менеджер а с 11 - другой, и это нужно учесть
Где учесть?
Я думаю как то так:
ВЫБРАТЬ Продажи.Контрагент, Менеджеры.Менеджер ИЗ РегистрыНакопления.Продажи.Обороты(&ДатаНач,&ДатаКон,,) КАК Продажи ЛЕВОЕ СОЕДИНЕНИЕ РегистрыСведений.МенеджерыКонтрагентов КАК Менеджеры ПО Продажи.Контрагент = Менеджеры.Контрагент ГДЕ Менеджер = &Менеджер СГРУППИРОВАТЬ ПО Контрагент, Менеджер
РегистрСведенийМенеджер.<Имя регистра сведений> (InformationRegisterManager.<Имя регистра сведений>) СрезПоследних (SliceLast) Синтаксис: СрезПоследних(<Конец периода>, <Отбор>) Параметры: <Конец периода> (необязательный) Тип: Дата, МоментВремени, Граница. Определяет момент времени, заканчивая которым необходимо выбрать записи. Если параметр не указан, то будут возвращены значения ресурсов самой последней записи регистра. <Отбор> (необязательный) Тип: Структура. Структура, содержащая отбор по измерениям и реквизитам регистра. Имя ключа структуры должно совпадать с именем измерения регистра, заданного в конфигураторе, а значение элемента структуры - задает отбираемое по данному измерению значение. Если параметр не указан, то отбор не используется. Возвращаемое значение: Тип: ТаблицаЗначений. Таблица значений, заполненная данными найденных записей регистра сведений. Описание: Получает наиболее поздние записи регистра, соответствующие установленным в параметрах метода значениям ключевых полей. Записи подбираются для каждого сочетания из всех имеющихся значений измерений регистра. Примечание: Применим только для периодических регистров сведений.
это из help
а вот что такое Граница
Цитата
Граница (Boundary) Свойства: ВидГраницы (BoundaryType) Значение (Value)
Конструкторы: На основании значения и вида
Описание: Предназначен для получения и хранения границы некоторого интервала значений. Содержит граничное значение интервала, а также признак включения или исключения граничного значения в интервал. Используется в качестве значений свойств и параметров методов других объектов, имеющих тип Граница. Граница используется в тех случаях, когда важно указание включения или исключения граничного значения, например при получении остатков и оборотов регистров накопления, срезов и значений регистров сведений, для задания интервалов запросов. Возможен обмен с сервером. Сериализуется
В наше время люди всему знают цену, но понятия не имеют о подлинной ценности. Оскар Уайлд
Группа: Местный
Сообщений: 237
Спасибо сказали: 47 раз
Рейтинг: 42
В том то и дело что в РегистрыСведений.МенеджерыКонтрагентов.СрезПоследних(&Граница, ) нужно указать Границу, а это значит что мы получим менеджера актуального на "Граница" но не тех которые изменялись в этом периоде...
Группа: Местный
Сообщений: 522
Спасибо сказали: 70 раз
Рейтинг: 51.3
Попробуйте сделать левое соединение по РегистрыСведений.МенеджерыКонтрагентов с условием контрагент = продажи.контрагент и началопериода(продажи.Дата,День) = началопериода(РегистрыСведений.Период,День)
в ВЫБРАТЬ добавить РегистрыСведений.МенеджерыКонтрагентов.Менеджер
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!