Как сделать так, чтобы "Пройденное расстояние" считал итог за каждый день?Сейчас итог вообще не считается
Например
Запрос = Соединение;
Запрос = Соединение.NewObject("Запрос");
Запрос.Текст ="ВЫБРАТЬ
|СУММА(уатПутевойЛист.СпидометрВозвращения - уатПутевойЛист.СпидометрВыезда) КАК ПройденноеРасстояние,
|уатПутевойЛист.Водитель1,
|НАЧАЛОПЕРИОДА(уатПутевойЛист.Дата, ДЕНЬ) КАК Дата,
|уатПутевойЛист.Водитель1.Наименование
|ИЗ
|Документ.уатПутевойЛист КАК уатПутевойЛист
|СГРУППИРОВАТЬ ПО
|уатПутевойЛист.Водитель1,
|уатПутевойЛист.Водитель1.Наименование,
|НАЧАЛОПЕРИОДА(уатПутевойЛист.Дата, ДЕНЬ)";
Результат =Запрос.Выполнить();
Выборка=Результат.Выбрать();
ТЗ=Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("ПройденноеРасстояние");
ТЗ.Колонки.Добавить("Водитель1");
Тз.Колонки.Добавить("Наименование");
Тз.Колонки.Добавить("Дата", новый ОписаниеТипов("Дата"));
Пока Выборка.Следующий() Цикл;
Строка=ТЗ.Добавить();
Строка.ПройденноеРасстояние=Выборка.ПройденноеРасстояние;
Строка.Водитель1=Выборка.Водитель1Наименование;
Строка.Наименование=Выборка.Водитель1Наименование;
Строка.Дата=Выборка.Дата;
КонецЦикла;
Показать
Запрос в СКД:
ВЫБРАТЬ
МаршрутноеЗаданиеДокументыРеализации.СуммаЗаявки,
НАЧАЛОПЕРИОДА(МаршрутноеЗаданиеДокументыРеализации.Ссылка.Дата, ДЕНЬ) КАК Дата,
МаршрутноеЗаданиеДокументыРеализации.Ссылка.Водитель,
МаршрутноеЗаданиеДокументыРеализации.Ссылка.ВесГруза КАК Вес,
МаршрутноеЗаданиеДокументыРеализации.Ссылка.Подразделение,
МаршрутноеЗаданиеДокументыРеализации.Заявка.ТорговаяТочка.Код КАК КоличествоТочек,
МаршрутноеЗаданиеДокументыРеализации.Ссылка.ДатаДоставки,
МаршрутноеЗаданиеДокументыРеализации.Ссылка.Дата КАК Дата1,
РАЗНОСТЬДАТ(МаршрутноеЗаданиеДокументыРеализации.Ссылка.Дата, МаршрутноеЗаданиеДокументыРеализации.Ссылка.ДатаДоставки, ДЕНЬ) КАК ОтработаноДней,
МаршрутноеЗаданиеДокументыРеализации.Заявка.МаршрутноеЗадание.Район,
МаршрутноеЗаданиеДокументыРеализации.Реализация КАК КоличествоНакладных,
МаршрутноеЗаданиеДокументыРеализации.Район КАК Район,
МаршрутноеЗаданиеДокументыРеализации.Реализация,
РеализацияТоваровУслуг.Товары.(
МАКСИМУМ(ВЫБОР
КОГДА МаршрутноеЗаданиеДокументыРеализации.Реализация.ТорговаяТочка.ТипТоргТочки = ЗНАЧЕНИЕ(Перечисление.ТипТоргТочки.Супермаркет)
ТОГДА РеализацияТоваровУслуг.Товары.НомерСтроки
КОНЕЦ) КАК КоличествоПозиций
),
МаршрутноеЗаданиеДокументыРеализации.Заявка.МаршрутноеЗадание КАК МаршрутноеЗадание,
МаршрутноеЗаданиеДокументыРеализации.Ссылка.Водитель.Наименование,
МаршрутноеЗаданиеДокументыРеализации.Заявка.ТорговаяТочка.Код,
МаршрутноеЗаданиеДокументыРеализации.Ссылка.Дата КАК Дата2
ИЗ
Документ.МаршрутноеЗадание.ДокументыРеализации КАК МаршрутноеЗаданиеДокументыРеализации
ПОЛНОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ПО МаршрутноеЗаданиеДокументыРеализации.Реализация = РеализацияТоваровУслуг.Ссылка
ГДЕ
МаршрутноеЗаданиеДокументыРеализации.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
И МаршрутноеЗаданиеДокументыРеализации.Ссылка.Проведен
Как я сделал. В ресурсах пройденное расстояние рассчитывает сумму. В рассчитывать по поставил "водитель1".В отчет вывел сразу водителя из соединяемой базы и водителя из основной базы(сделал группировку по ним).Итог считает и у тех, у кого нету пройденного расстояния,так будет лучше.И вот так итог считает по дням
(9)не помогает. Когда рассчитываю по по водителю запроса СКД, итоги выводятся, но показывает какие-то космические км, за день невозможно столько проехать)
ресурсы рассчитывать по и там галочки ставьте по "группам " которые необходимо и в настройках отчета, у вас есть уровни где ресурсы показывать. где авто разместил, где галочками.
(15)
"ПОЛНОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ПО МаршрутноеЗаданиеДокументыРеализации.Реализация = РеализацияТоваровУслуг.Ссылка
ГДЕ
МаршрутноеЗаданиеДокументыРеализации.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
И МаршрутноеЗаданиеДокументыРеализации.Ссылка.Проведен"
ВЫБРАТЬ
МаршрутноеЗаданиеДокументыРеализации.СуммаЗаявки,
НАЧАЛОПЕРИОДА(МаршрутноеЗаданиеДокументыРеализации.Ссылка.Дата, ДЕНЬ) КАК Дата,
МаршрутноеЗаданиеДокументыРеализации.Ссылка.Водитель,
МаршрутноеЗаданиеДокументыРеализации.Ссылка.ВесГруза КАК Вес,
МаршрутноеЗаданиеДокументыРеализации.Ссылка.Подразделение,
МаршрутноеЗаданиеДокументыРеализации.Заявка.ТорговаяТочка.Код КАК КоличествоТочек,
МаршрутноеЗаданиеДокументыРеализации.Ссылка.ДатаДоставки,
МаршрутноеЗаданиеДокументыРеализации.Ссылка.Дата КАК Дата1,
РАЗНОСТЬДАТ(МаршрутноеЗаданиеДокументыРеализации.Ссылка.Дата, МаршрутноеЗаданиеДокументыРеализации.Ссылка.ДатаДоставки, ДЕНЬ) КАК ОтработаноДней,
МаршрутноеЗаданиеДокументыРеализации.Заявка.МаршрутноеЗадание.Район,
МаршрутноеЗаданиеДокументыРеализации.Реализация КАК КоличествоНакладных,
МаршрутноеЗаданиеДокументыРеализации.Район КАК Район,
МаршрутноеЗаданиеДокументыРеализации.Реализация,
РеализацияТоваровУслуг.Товары.(
МАКСИМУМ(ВЫБОР
КОГДА МаршрутноеЗаданиеДокументыРеализации.Реализация.ТорговаяТочка.ТипТоргТочки = ЗНАЧЕНИЕ(Перечисление.ТипТоргТочки.Супермаркет)
ТОГДА РеализацияТоваровУслуг.Товары.НомерСтроки
КОНЕЦ) КАК КоличествоПозиций
),
МаршрутноеЗаданиеДокументыРеализации.Заявка.МаршрутноеЗадание КАК МаршрутноеЗадание,
МаршрутноеЗаданиеДокументыРеализации.Ссылка.Водитель.Наименование,
МаршрутноеЗаданиеДокументыРеализации.Заявка.ТорговаяТочка.Код,
МаршрутноеЗаданиеДокументыРеализации.Ссылка.Дата КАК Дата2,
МаршрутноеЗаданиеДокументыРеализации.Заявка.МаршрутноеЗадание.Дата
ИЗ
Документ.МаршрутноеЗадание.ДокументыРеализации КАК МаршрутноеЗаданиеДокументыРеализации
ПОЛНОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ПО МаршрутноеЗаданиеДокументыРеализации.Реализация = РеализацияТоваровУслуг.Ссылка
ГДЕ
МаршрутноеЗаданиеДокументыРеализации.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
И МаршрутноеЗаданиеДокументыРеализации.Ссылка.Проведен
Как я сделал. В ресурсах пройденное расстояние рассчитывает сумму. В рассчитывать по поставил "водитель1".В отчет вывел сразу водителя из соединяемой базы и водителя из основной базы(сделал группировку по ним).Итог считает и у тех, у кого нету пройденного расстояния,так будет лучше.И вот так итог считает по дням
(35)в разрезе водителя1, т.е. в разрезе водителя из соединяемой базы.Должен правильно показывать.И также сделал соединение по водитель.наименование и водитель1
(41) Уникальный идентификатор ссылки, если он в обоих базах совпадает, то можно соединять по водитель и водитель1 и не выгружать наименование в первом запросе.
И там проще было бы использовать метод выгрузить, для результата запроса, а не выборку.
https://infostart.ru/public/127208/
(54)в отчете колонка водитель1 не заполнилась, а пройденное расстояние частично заполнилась, точнее мало что заполнилась. Соединение также по дате и по водитель.наименование и водитель1.
Запрос = Соединение.NewObject("Запрос");
Запрос.Текст ="ВЫБРАТЬ
|СУММА(уатПутевойЛист.СпидометрВозвращения - уатПутевойЛист.СпидометрВыезда) КАК ПройденноеРасстояние,
|
|НАЧАЛОПЕРИОДА(уатПутевойЛист.Дата, ДЕНЬ) КАК Дата,
|уатПутевойЛист.Водитель1.Наименование как Водитель1,
|уатПутевойЛист.Водитель1.Наименование как Наименование
|ИЗ
|Документ.уатПутевойЛист КАК уатПутевойЛист
|СГРУППИРОВАТЬ ПО
|уатПутевойЛист.Водитель1.Наименование,
|уатПутевойЛист.Водитель1.Наименование,
|НАЧАЛОПЕРИОДА(уатПутевойЛист.Дата, ДЕНЬ)";
Результат =Запрос.Выполнить();
ТЗИсточник=Результат.Выгрузить();
СтрокаТЗИсточник= Соединение.ЗначениеВСтрокуВнутр(ТЗИсточник) ;
ТЗ=ЗначениеИзСтрокиВнутр(СтрокаТЗИсточник);
(60)это да). Соединение делаю по водители.Наименование и наименование и все хорошо выводит. Когда делаю соединение по водитель и водитель1, отчет в колонках водитель1 и пройденное расстояние ничего не выводит. Значит у них ссылки не совпадают.да?
(61)
У тебя в первом запросе вместо водителя наименование)
Так попробуй
Запрос = Соединение.NewObject("Запрос");
Запрос.Текст ="ВЫБРАТЬ
|СУММА(уатПутевойЛист.СпидометрВозвращения - уатПутевойЛист.СпидометрВыезда) КАК ПройденноеРасстояние,
|
|НАЧАЛОПЕРИОДА(уатПутевойЛист.Дата, ДЕНЬ) КАК Дата,
|уатПутевойЛист.Водитель1 как Водитель1,
|уатПутевойЛист.Водитель1.Наименование как Наименование
|ИЗ
|Документ.уатПутевойЛист КАК уатПутевойЛист
|СГРУППИРОВАТЬ ПО
|уатПутевойЛист.Водитель1,
|уатПутевойЛист.Водитель1.Наименование,
|НАЧАЛОПЕРИОДА(уатПутевойЛист.Дата, ДЕНЬ)";
Результат =Запрос.Выполнить();
ТЗИсточник=Результат.Выгрузить();
СтрокаТЗИсточник= Соединение.ЗначениеВСтрокуВнутр(ТЗИсточник) ;
ТЗ=ЗначениеИзСтрокиВнутр(СтрокаТЗИсточник);
(69) Просто быстрее должно быть)
Вообще правильнее было бы получить все реализации в начале по отбору поместить во временную таблицу)
Потом с ней соединить Табличную Часть её и Табличную часть путевого листа)
(70)Поместить во временную таблицу то, что взяли из документа реализация товаров и услуг? или вместе с тем , что взяли из документа МаршрутноеЗаданиеДокументыРеализации?
ВЫБРАТЬ
РеализацияТоваровУслуг.Ссылка
ПОМЕСТИТЬ Реализации
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНН И &ДатаОК
И РеализацияТоваровУслуг.Проведен
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
МАКСИМУМ(РеализацияТоваровУслугТовары.НомерСтроки) КАК НомерСтроки,
РеализацияТоваровУслуг.Ссылка
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ПО РеализацияТоваровУслугТовары.Ссылка = РеализацияТоваровУслуг.Ссылка
СГРУППИРОВАТЬ ПО
РеализацияТоваровУслуг.Ссылка