1c 7.7: Проблема с запросом.
2494
5
Немного изменил стандартный отчет в ТиСе. Вместо
конечной даты отчета сдело возможным выбор периода отчета (С ... по ...).
Но почему то запрос работает неправильно, т.е выдает все вплоть до конечной даты. Я не могу понять где собака зарыта. Вот текст запроса.
Запрос = СоздатьОбъект("Запрос");
Если ВидЗаявок.ТекущаяСтрока() = 4 Тогда
СтрПериод = "Период с ДатаНачала по ДатаКонца;";
Иначе
СтрПериод = ?(ДатаКонца>= ПолучитьДатуТА(),"",
"Период с ДатаКонца по ДатаКонца;");
КонецЕсли;
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|" + СтрПериод +
"
|Фирма = Регистр.Заявки. Фирма,
| Регистр.ЗаказыЗаявки.ЗаявкаПокупателя.Фирма,
| Регистр.РезервыТМЦ. Фирма;
|ЮрЛицо = Регистр.Заявки. Фирма.ЮрЛицо,
| Регистр.ЗаказыЗаявки.ЗаявкаПокупателя.Фирма.ЮрЛицо ,
| Регистр.РезервыТМЦ. Фирма.ЮрЛицо;
|УпрАналитика = Регистр.Заявки. Фирма.УпрАналитика,
| Регистр.ЗаказыЗаявки.ЗаявкаПокупателя.Фирма.УпрАна литика,
| Регистр.РезервыТМЦ. Фирма.УпрАналитика;
|Заявка = Регистр.Заявки. ЗаявкаПокупателя,
| Регистр.ЗаказыЗаявки.ЗаявкаПокупателя,
| Регистр.РезервыТМЦ. ЗаявкаПокупателя;
|Проект = Регистр.Заявки. ЗаявкаПокупателя.Проект,
| Регистр.ЗаказыЗаявки.ЗаявкаПокупателя.Проект,
| Регистр.РезервыТМЦ. ЗаявкаПокупателя.Проект;
|ОперацияЗаявка = Регистр.Заявки. ЗаявкаПокупателя.ВидОперации,
| Регистр.ЗаказыЗаявки.ЗаявкаПокупателя.ВидОперации,
| Регистр.РезервыТМЦ. ЗаявкаПокупателя.ВидОперации;
|ДатаОтгрузкиЗаявка= Регистр.Заявки. ЗаявкаПокупателя.ДатаОтгрузки,
| Регистр.ЗаказыЗаявки.ЗаявкаПокупателя.ДатаОтгрузки ,
| Регистр.РезервыТМЦ. ЗаявкаПокупателя.ДатаОтгрузки;
|Номенклатура = Регистр.Заявки. Номенклатура,
| Регистр.ЗаказыЗаявки.Номенклатура,
| Регистр.РезервыТМЦ. Номенклатура;
|ВидНоменклатура = Регистр.Заявки. Номенклатура.ВидНоменклатуры,
| Регистр.ЗаказыЗаявки.Номенклатура.ВидНоменклатуры,
| Регистр.РезервыТМЦ. Номенклатура.ВидНоменклатуры;
|Покупатель = Регистр.Заявки. ДоговорПокупателя.Владелец,
| Регистр.ЗаказыЗаявки.ЗаявкаПокупателя.Контрагент,
| Регистр.РезервыТМЦ. ДоговорПокупателя.Владелец;
|Договор = Регистр.Заявки. ДоговорПокупателя,
| Регистр.ЗаказыЗаявки.ЗаявкаПокупателя.Договор,
| Регистр.РезервыТМЦ. ДоговорПокупателя;
|КолЗаявки = Регистр.Заявки. КоличествоРасход;
|КолРезерва = Регистр.РезервыТМЦ. Количество;
|КолЗаказа = Регистр.ЗаказыЗаявки.Количество;
|СумЗаявки = Регистр.Заявки. СтоимостьРасход;";
ТекстЗапроса = ТекстЗапроса +
"Функция КонОстЗаявкаК = КонОст(КолЗаявки);
|Функция КонОстЗаявкаС = КонОст(СумЗаявки);
|Функция КонОстЗаказК = КонОст(КолЗаказа);
|Функция КонОстРезерв = КонОст(КолРезерва);";
В отладчике :
СтрПериод = "Период с ДатаНачала по ДатаКонца;"
ТекстЗапроса = "//{{ЗАПРОС(Сформировать)Период с ДатаНачала по ДатаКонца;Фирма = Регистр.Заявки. Фирма, Регистр.ЗаказыЗаявки.ЗаявкаПокупателя.Фирма, Регистр.РезервыТМЦ. Фирма;ЮрЛицо "
Какие еще догадки есть? Может быть в самом запросе что-то изменить надо ?
конечной даты отчета сдело возможным выбор периода отчета (С ... по ...).
Но почему то запрос работает неправильно, т.е выдает все вплоть до конечной даты. Я не могу понять где собака зарыта. Вот текст запроса.
Запрос = СоздатьОбъект("Запрос");
Если ВидЗаявок.ТекущаяСтрока() = 4 Тогда
СтрПериод = "Период с ДатаНачала по ДатаКонца;";
Иначе
СтрПериод = ?(ДатаКонца>= ПолучитьДатуТА(),"",
"Период с ДатаКонца по ДатаКонца;");
КонецЕсли;
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|" + СтрПериод +
"
|Фирма = Регистр.Заявки. Фирма,
| Регистр.ЗаказыЗаявки.ЗаявкаПокупателя.Фирма,
| Регистр.РезервыТМЦ. Фирма;
|ЮрЛицо = Регистр.Заявки. Фирма.ЮрЛицо,
| Регистр.ЗаказыЗаявки.ЗаявкаПокупателя.Фирма.ЮрЛицо ,
| Регистр.РезервыТМЦ. Фирма.ЮрЛицо;
|УпрАналитика = Регистр.Заявки. Фирма.УпрАналитика,
| Регистр.ЗаказыЗаявки.ЗаявкаПокупателя.Фирма.УпрАна литика,
| Регистр.РезервыТМЦ. Фирма.УпрАналитика;
|Заявка = Регистр.Заявки. ЗаявкаПокупателя,
| Регистр.ЗаказыЗаявки.ЗаявкаПокупателя,
| Регистр.РезервыТМЦ. ЗаявкаПокупателя;
|Проект = Регистр.Заявки. ЗаявкаПокупателя.Проект,
| Регистр.ЗаказыЗаявки.ЗаявкаПокупателя.Проект,
| Регистр.РезервыТМЦ. ЗаявкаПокупателя.Проект;
|ОперацияЗаявка = Регистр.Заявки. ЗаявкаПокупателя.ВидОперации,
| Регистр.ЗаказыЗаявки.ЗаявкаПокупателя.ВидОперации,
| Регистр.РезервыТМЦ. ЗаявкаПокупателя.ВидОперации;
|ДатаОтгрузкиЗаявка= Регистр.Заявки. ЗаявкаПокупателя.ДатаОтгрузки,
| Регистр.ЗаказыЗаявки.ЗаявкаПокупателя.ДатаОтгрузки ,
| Регистр.РезервыТМЦ. ЗаявкаПокупателя.ДатаОтгрузки;
|Номенклатура = Регистр.Заявки. Номенклатура,
| Регистр.ЗаказыЗаявки.Номенклатура,
| Регистр.РезервыТМЦ. Номенклатура;
|ВидНоменклатура = Регистр.Заявки. Номенклатура.ВидНоменклатуры,
| Регистр.ЗаказыЗаявки.Номенклатура.ВидНоменклатуры,
| Регистр.РезервыТМЦ. Номенклатура.ВидНоменклатуры;
|Покупатель = Регистр.Заявки. ДоговорПокупателя.Владелец,
| Регистр.ЗаказыЗаявки.ЗаявкаПокупателя.Контрагент,
| Регистр.РезервыТМЦ. ДоговорПокупателя.Владелец;
|Договор = Регистр.Заявки. ДоговорПокупателя,
| Регистр.ЗаказыЗаявки.ЗаявкаПокупателя.Договор,
| Регистр.РезервыТМЦ. ДоговорПокупателя;
|КолЗаявки = Регистр.Заявки. КоличествоРасход;
|КолРезерва = Регистр.РезервыТМЦ. Количество;
|КолЗаказа = Регистр.ЗаказыЗаявки.Количество;
|СумЗаявки = Регистр.Заявки. СтоимостьРасход;";
ТекстЗапроса = ТекстЗапроса +
"Функция КонОстЗаявкаК = КонОст(КолЗаявки);
|Функция КонОстЗаявкаС = КонОст(СумЗаявки);
|Функция КонОстЗаказК = КонОст(КолЗаказа);
|Функция КонОстРезерв = КонОст(КолРезерва);";
В отладчике :
СтрПериод = "Период с ДатаНачала по ДатаКонца;"
ТекстЗапроса = "//{{ЗАПРОС(Сформировать)Период с ДатаНачала по ДатаКонца;Фирма = Регистр.Заявки. Фирма, Регистр.ЗаказыЗаявки.ЗаявкаПокупателя.Фирма, Регистр.РезервыТМЦ. Фирма;ЮрЛицо "
Какие еще догадки есть? Может быть в самом запросе что-то изменить надо ?
Конечную дату в запросе сделай переменной КонДата, чтобы в тексте запроса ее не менять, а менять в самой программе.
и до текстат запроса ей присваивай нужное зачение
КонДата=?(...)
и до текстат запроса ей присваивай нужное зачение
КонДата=?(...)
Нет, тут дело не в конечной дате.
И начальная и конечная даты указаны в запросе и они там есть (это видно в отладчике). Но в результат работы запроса включены все доки по конечную дату. Т.е запрос почему то игнорирует начальную дату. Я вот этого понять не могу.
И начальная и конечная даты указаны в запросе и они там есть (это видно в отладчике). Но в результат работы запроса включены все доки по конечную дату. Т.е запрос почему то игнорирует начальную дату. Я вот этого понять не могу.
Пробовал конкретные даты начала и конца явно указывать в тексте запроса. Результат тот же (
А какое влияние может оказать в этом запросе начальная дата, если единственная агрегирующая функция в запросе КонОст. Может вы обороты регистров посчитать хотели?