Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
27 сен 2024, 22:27

УПП Товары на складах

Автор AlenkaInt, 12 апр 2013, 20:10

0 Пользователей и 1 гость просматривают эту тему.

AlenkaInt

Всем привет. Такая задачка. Есть типовой отчет в УПП, Товары на складах называется. Просят добавить группировку еще и по ответственному. Т.е. идут группировки - Номенклатура, Склад, Ответственный. Как это сделать проще и быстрее, править тот отчет который есть или сделать новый? Спасибо.

AlenkaInt

Ответственный это тот, кто в документе-регистраторе. Через настройки не получается вывести группировку. Уже 3 человека пробовали.
Добавлено: 12 апр 2013, 21:23


Если делаешь группировку по регистратору, то выводится группировка, а если выбираешь Документ движения (регистратор).Ответственный, то пусто.

SlazZy

есть подозрение, что всё дело в том, что ответственного нет в полях выборки запроса. Тк данные получаются из оборотов, причем по периодичности Авто, то отчет не позволяет сделать разыменование.

Так что можно попробовать добавить в запрос самого ответственого. Это собственно хорошая новость. Плохая это то, что разработчики 1с упоролись в край и несмотря на то, что у отчета есть схема СКД,он строится исключительно на универсальном отчете, причем весь код формируется динамически в модуле универсального отчета.

Ну, как бы есть вариант и он вобщем-то рабочий, через СтрЗаменить после инициализации запроса(там есть специальные поля комментариев, которые можно заменить на свои поля выборки) так вот можно вставить в этот запрос необходимые поля. Но гарантий того, что что-то получится нет.

Либо можно взять готовую схему СКД из типового отчета и сделать на её основе другой отчет. Второй вариант мне кажется как-то эффективнее.

AlenkaInt

Спасибо. Но дело было в том, что надо было выбирать 2 группировки и регистратор и Документ движения (регистратор).Ответственный.

SlazZy

Цитата: AlenkaInt от 12 апр 2013, 22:28
Спасибо. Но дело было в том, что надо было выбирать 2 группировки и регистратор и Документ движения (регистратор).Ответственный.
хмм, блин это же логично :bleh:

Dethmontt

Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

AlenkaInt

Спасибо. Но задача оказалась немного другая. Нужен отвтественный по складу.

SlazZy

Ну, тогда возвращаемся к моему первому сообщению в этой теме :) так совпало, что я как раз недавно делал примерно такую же работу (добавлял в отчет, построенный на универсальном несколько полей). Разница в том, что в моем отчете весь запрос был написан в модуле отчета, а в данном отчете запрос формируется динамически.

Как это сделать я написал выше, в модуле отчета есть процедура УстановитьНачальныеНастройки, из него вызывается процедура
   
// Заполнение начальных настроек универсального отчета
УниверсальныйОтчет.УстановитьНачальныеНастройки(Истина);


После этой процедуры запрос уже сформирован и доступен через
УниверсальныйОтчет.ПостроительОтчета.Текст

Там есть(ну или должны быть) специальные комментарии такие как //СОЕДИНЕНИЯ

Вот эти комментарии можно через СтрЗаменить заменить на нужный вам код. Это конечно не так легко ибо писать придется всё вручную, но в общем-то реализуемо. В вашем случае надо сделать одно левое соединение с регистром сведений ответственные лица по Склад=СтруктурнаяЕдиница, на дату скорее всего конец периода, или начало - тут надо подумать что правильнее. И добавить этого ответственного в поля выборки и итоги, так же надо добавить во все поля, которые указаны в фигурных скобках.

Вот шаблон.

// Описание исходного текста запроса.
// При написании текста запроса рекомендуется следовать правилам, описанным в следующем шаблоне текста запроса:
//
//ВЫБРАТЬ
// <ПсевдонимТаблицы.Поле> КАК <ПсевдонимПоля>,
// ПРЕДСТАВЛЕНИЕ(<ПсевдонимТаблицы>.<Поле>),
// <ПсевдонимТаблицы.Показатель> КАК <ПсевдонимПоказателя>
// //ПОЛЯ_СВОЙСТВА
// //ПОЛЯ_КАТЕГОРИИ
//{ВЫБРАТЬ
// <ПсевдонимПоля>.*,
// <ПсевдонимПоказателя>,
// Регистратор,
// Период,
// ПериодДень,
// ПериодНеделя,
// ПериодДекада,
// ПериодМесяц,
// ПериодКвартал,
// ПериодПолугодие,
// ПериодГод
// //ПОЛЯ_СВОЙСТВА
// //ПОЛЯ_КАТЕГОРИИ
//}
//ИЗ
// <Таблица> КАК <ПсевдонимТаблицы>
// //СОЕДИНЕНИЯ
//{ГДЕ
// <ПсевдонимТаблицы.Поле>.* КАК <ПсевдонимПоля>,
// <ПсевдонимТаблицы.Показатель> КАК <ПсевдонимПоказателя>,
// <ПсевдонимТаблицы>.Регистратор КАК Регистратор,
// <ПсевдонимТаблицы>.Период КАК Период,
// НАЧАЛОПЕРИОДА(<ПсевдонимТаблицы>.Период, ДЕНЬ) КАК ПериодДень,
// НАЧАЛОПЕРИОДА(<ПсевдонимТаблицы>.Период, НЕДЕЛЯ) КАК ПериодНеделя,
// НАЧАЛОПЕРИОДА(<ПсевдонимТаблицы>.Период, ДЕКАДА) КАК ПериодДекада,
// НАЧАЛОПЕРИОДА(<ПсевдонимТаблицы>.Период, МЕСЯЦ) КАК ПериодМесяц,
// НАЧАЛОПЕРИОДА(<ПсевдонимТаблицы>.Период, КВАРТАЛ) КАК ПериодКвартал,
// НАЧАЛОПЕРИОДА(<ПсевдонимТаблицы>.Период, ПОЛУГОДИЕ) КАК ПериодПолугодие,
// НАЧАЛОПЕРИОДА(<ПсевдонимТаблицы>.Период, ГОД) КАК ПериодГод
// //ПОЛЯ_СВОЙСТВА
// //ПОЛЯ_КАТЕГОРИИ
//}
//{УПОРЯДОЧИТЬ ПО
// <ПсевдонимПоля>.*,
// <ПсевдонимПоказателя>,
// Регистратор,
// Период,
// ПериодДень,
// ПериодНеделя,
// ПериодДекада,
// ПериодМесяц,
// ПериодКвартал,
// ПериодПолугодие,
// ПериодГод
// //УПОРЯДОЧИТЬ_СВОЙСТВА
// //УПОРЯДОЧИТЬ_КАТЕГОРИИ
//}
//ИТОГИ
// АГРЕГАТНАЯ_ФУНКЦИЯ(<ПсевдонимПоказателя>)
// //ИТОГИ_СВОЙСТВА
// //ИТОГИ_КАТЕГОРИИ
//ПО
// ОБЩИЕ
//{ИТОГИ ПО
// <ПсевдонимПоля>.*,
// Регистратор,
// Период,
// ПериодДень,
// ПериодНеделя,
// ПериодДекада,
// ПериодМесяц,
// ПериодКвартал,
// ПериодПолугодие,
// ПериодГод
// //ПОЛЯ_СВОЙСТВА
// //ПОЛЯ_КАТЕГОРИИ
//}
//АВТОУПОРЯДОЧИВАНИЕ


Ну, либо используйте уже готовую схему СКД.

AlenkaInt

А как это через СтрЗаменить заменить на новый текст? Я могу его только просматривать..

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск