|
СКД. Как подружить параметр типа СтандартныйПериод и СрезПоследних | ☑ | ||
---|---|---|---|---|
0
akhmadey
06.09.16
✎
08:34
|
В запросе используется отбор по периоду. Два параметра &ДатаНач и &ДатаКон. В СКД задан третий параметр Период типа СтандартныйПериод, а значения для параметров подставляются из стандартного периода. Также есть необходимость использовать временные таблицы и в них СрезПоследних на дату &ДатаКон. Но вылетает ошибка о несовместимости типов. Видимо, стандартный период для среза последних не катит. Можно ли как-нибудь обойти эту ситуацию?
|
|||
1
ls300
06.09.16
✎
08:56
|
(0) придется отказаться от стандартного периода, т.к. там конец периода это граница. А границу нельзя использовать в срезах и соответственно сравнивать с датами.
Вроде даже в типовых отчетах при таких ситуациях дублируется параметр конца периода, один граница, другой дата. |
|||
2
Timon1405
06.09.16
✎
08:59
|
(0) использовать &СтандартныйПериод.ДатаНачала,&СтандартныйПериод.ДатаОкончания
|
|||
3
akhmadey
06.09.16
✎
09:08
|
(2) А в чем разница? Если мы про параметры СКД говорим. Просто использовать параметр Период типа Стандартный период удобно тем, что потом в форме отчета это параметр удобно задавать
|
|||
4
akhmadey
06.09.16
✎
09:10
|
(1) А как бы на этот отчет хотя бы одни глазком глянуть?
|
|||
5
LordCMEPTb
06.09.16
✎
09:12
|
(4) Было бы желание... http://1cskd.ru/2010/07/ispolzovanie-standartnyx-periodov/
|
|||
6
akhmadey
06.09.16
✎
09:17
|
(5) Это-то понятно, у меня также. Примерчик бы, где этот самый стандартный период и срез последних вместе существуют, не важно в каком виде
|
|||
7
ls300
06.09.16
✎
09:29
|
(6) Под рукой такого отчета нет и не помню где встречал. Вроде это была бухгалтерия 3.0. Но идея там в том, что в СКД есть 2 параметра окончания периода. Один хранит дату, другой границу из стандартного периода. Нужно только поиграться в коде с заполнением параметра с типом "Дата"
|
|||
8
LordCMEPTb
06.09.16
✎
09:36
|
(6) Нифига не понял. Срез последних нормально работает с датой. Если для параметр даты для среза является датой, то несовместимости типов быть не должно.
Но если кто-то при включенном автозаполнении в параметр "Период" хочет задать стандартный период, то ситуация с несовместимостью типов вполне реальная. |
|||
9
akhmadey
06.09.16
✎
09:49
|
СтандартыйПериод.ДатаОкончания и Дата это не один и тот же тип.
|
|||
10
mistеr
06.09.16
✎
09:54
|
(9) Пора показать текст запроса и скрин параметров.
|
|||
11
Timon1405
06.09.16
✎
09:56
|
КонецПериода(&СтандартыйПериод.ДатаОкончания, "День") не катит что ли?
|
|||
12
LordCMEPTb
06.09.16
✎
10:19
|
(9) Ну это да, особенно если учитывать тот факт, что типа "СтандартыйПериод.ДатаОкончания" вроде как не существует...
Вариант отчета, в котором не получается получить срез мы увидим или так и будем гадать? |
|||
13
ls300
06.09.16
✎
10:20
|
(11) Нет, будет ошибка что в параметр функции "КонецПериода" передан несовместимый тип значения.
|
|||
14
akhmadey
06.09.16
✎
10:44
|
(9) Вот текст запроса:
ВЫБРАТЬ КОЛИЧЕСТВО(уатМестонахождениеТССрезПоследних.ТС) КАК КоличествоНаМаршруте, уатМестонахождениеТССрезПоследних.Подразделение КАК Маршрут ПОМЕСТИТЬ ВТ_КоличествоНаМаршруте ИЗ РегистрСведений.уатМестонахождениеТС.СрезПоследних(&ДатаКон,) КАК уатМестонахождениеТССрезПоследних СГРУППИРОВАТЬ ПО уатМестонахождениеТССрезПоследних.Подразделение ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ КОЛИЧЕСТВО(уатМестонахождениеТССрезПоследних.ТС) КАК КоличествоУСобственника, уатМестонахождениеТССрезПоследних.Колонна КАК Собственник ПОМЕСТИТЬ ВТ_КоличествоУСобственника ИЗ РегистрСведений.уатМестонахождениеТС.СрезПоследних(&ДатаКон,) КАК уатМестонахождениеТССрезПоследних СГРУППИРОВАТЬ ПО уатМестонахождениеТССрезПоследних.Колонна ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ уатВыбытиеТСиОборудованияТС.ТС, уатВыбытиеТСиОборудованияТС.ДатаВыбытия ПОМЕСТИТЬ ВТ_Выбывшие ИЗ Документ.уатВыбытиеТСиОборудования.ТС КАК уатВыбытиеТСиОборудованияТС ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ уатТС.Ссылка КАК ТранспортноеСредство, уатТС.Колонна КАК Собственник, уатТС.Подразделение КАК Маршрут, уатТС.ГосударственныйНомер, уатТС.ГаражныйНомер, уатТС.ГодВыпуска, ВТ_КоличествоНаМаршруте.КоличествоНаМаршруте, ВТ_КоличествоУСобственника.КоличествоУСобственника, уатТС.Ссылка КАК КоличествоУСобственникаНаМаршруте, ВТ_Выбывшие.ДатаВыбытия ПОМЕСТИТЬ ВТ_СписокТС ИЗ Справочник.уатТС КАК уатТС ЛЕВОЕ СОЕДИНЕНИЕ ВТ_КоличествоНаМаршруте КАК ВТ_КоличествоНаМаршруте ПО уатТС.Подразделение = ВТ_КоличествоНаМаршруте.Маршрут ЛЕВОЕ СОЕДИНЕНИЕ ВТ_КоличествоУСобственника КАК ВТ_КоличествоУСобственника ПО уатТС.Колонна = ВТ_КоличествоУСобственника.Собственник ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Выбывшие КАК ВТ_Выбывшие ПО уатТС.Ссылка = ВТ_Выбывшие.ТС ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВЫБОР КОГДА уатПутевойЛистЗадание.Ссылка.ТранспортноеСредство ЕСТЬ NULL ТОГДА 0 ИНАЧЕ 1 КОНЕЦ КАК Количество, НАЧАЛОПЕРИОДА(уатПутевойЛистЗадание.Ссылка.ДатаВыезда, ДЕНЬ) КАК Дата, уатПутевойЛистЗадание.Ссылка.ТранспортноеСредство, уатПутевойЛистЗадание.Ссылка ПОМЕСТИТЬ ВТ_ПЛ ИЗ Документ.уатПутевойЛист.Задание КАК уатПутевойЛистЗадание ГДЕ уатПутевойЛистЗадание.Ссылка.ДатаВыезда МЕЖДУ &ДатаНач И &ДатаКон И уатПутевойЛистЗадание.Ссылка.Проведен = ИСТИНА ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_СписокТС.ТранспортноеСредство, ВТ_СписокТС.Собственник, ВТ_СписокТС.Маршрут КАК Маршрут, ВТ_СписокТС.ГосударственныйНомер, ВТ_СписокТС.ГаражныйНомер, ВТ_СписокТС.ГодВыпуска, ВТ_ПЛ.Количество, ВТ_ПЛ.Дата, ВТ_СписокТС.КоличествоНаМаршруте, ВТ_СписокТС.КоличествоУСобственника, ВТ_СписокТС.КоличествоУСобственникаНаМаршруте, ВЫБОР КОГДА ВТ_СписокТС.ДатаВыбытия ЕСТЬ NULL ТОГДА ЛОЖЬ ИНАЧЕ ИСТИНА КОНЕЦ КАК Выбыло ИЗ ВТ_СписокТС КАК ВТ_СписокТС ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ПЛ КАК ВТ_ПЛ ПО ВТ_СписокТС.ТранспортноеСредство = ВТ_ПЛ.ТранспортноеСредство А параметры в точности как в (5) |
|||
15
Timon1405
06.09.16
✎
11:00
|
(13) так это нужно написать в выражении для параметра &ДатаКон, а передавать этот параметр
|
|||
16
ls300
06.09.16
✎
11:05
|
(15) В выражении параметра СКД по моему другой синтаксис, надо проверять)
|
|||
17
Timon1405
06.09.16
✎
11:08
|
(16) очень может быть)
|
|||
18
Molinor
06.09.16
✎
11:11
|
Во всех запросах, где есть период, делаю так. И спокойно получаю срезы на &НачДата и &КонДата.
http://savepic.ru/11216607.jpg |
|||
19
LordCMEPTb
06.09.16
✎
11:12
|
(14) По поводу параметров из (5), что они в точности такие же, есть сомнения.
Ибо скорее всего галочка "Автозаполнение" стоит, а значит еще один параметр "Период" должен быть. И тип значения этого параметра должен быть "Дата". В (5) 3й параметр называется "СтандартныйПериод". |
|||
20
Catseye
06.09.16
✎
11:17
|
Переименуй в параметрах "Период" на "ПериодОтчета", например.
И переименуй его в функциях где задаются по стандартному периоду НачДата и КонДата СКД для регистров сведений, когда строит свой запрос по пользовательским настройкам, очень нервно относится к параметру "Период". Причем эта фишка только с ними такая. Эту ошибку никак не обойти - просто переименуй параметр. |
|||
21
akhmadey
06.09.16
✎
11:30
|
(20) Не проканало ((((
|
|||
22
ls300
06.09.16
✎
11:35
|
(21) Направление в котором нужно копать есть в (7), все в твоих руках.
|
|||
23
LordCMEPTb
06.09.16
✎
11:36
|
(20) Так просто автоматически добавленный параметр не переименовать. Надо либо в запросе писать эти параметры в фигурных скобках "...СрезПоследних({ДатаКон},...", либо добавлять новые, а старые не трогать.
|
|||
24
akhmadey
06.09.16
✎
12:22
|
С периодами разобрался, всем спасибо. Просто изначально в запросе не было СрезаПоследних и имя параметра Период не вызывало проблем. Как только СрезПоследних появился, параметр стал недоступным, не только к редактированию, но и удалению. В общем, как только удалось заменить параметр Период параметром с другим названием, все взлетело.
|
|||
25
Catseye
06.09.16
✎
14:24
|
что и требовалось :)
|
|||
26
xafavute
06.09.16
✎
14:34
|
(18) Начало и конец периода не нужно делать
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |