Имя: Пароль:
1C
1С v8
СКД: если не задано значение параметра-даты
,
0 xaozai
 
05.12.13
11:30
Простым запросом отбираются движения за определенный период &НачалоПериода и &КонецПериода.
Если значения этих параметров не задали в настройках, нужно, чтобы брались все движения.
Как это сделать?

СКД ругается:
Ошибка компоновки данных
по причине:
Ошибка получения данных
по причине:
Ошибка создания набора данных "Запрос"
по причине:
Ошибка при исполнении запроса набора данных
по причине:
{(xx, xx)}: Не задано значение параметра "НачалоПериода"
1 samozvanec
 
05.12.13
11:38
закладка Компоновка в конструкторе запроса
2 samozvanec
 
05.12.13
11:39
+(1) ну или в фигурные скобки возьми
3 DmitriyDI
 
05.12.13
11:40
(0) {&НачалоПериода} , {&КонецПериода}
4 fisher
 
05.12.13
11:49
(0) Так ругается, кажись, только если галка использования у параметра не стоит. Так что для начала задай для параметров режим использования "Всегда". После этого отчет должен формироваться без ошибок, но пустой. И лучше, честно говоря, на этом и остановиться.
Но если ты настаиваешь, то создай доп-параметр, который будет в отчете будет вместо пустой даты конца периода брать текущую дату, например, и используй его в запросах.
5 Defender aka LINN
 
05.12.13
11:52
(4) Иногда лучше жевать...
6 mikecool
 
05.12.13
11:53
на последних релизах 8.2 замечал, что параметры можно и не задавать и скд их нормально воспринимает...
7 Бешеная Нога
 
05.12.13
11:59
ВЫБРАТЬ
    ТоварыНаСкладахОбороты.Склад,
    ТоварыНаСкладахОбороты.КоличествоОборот,
    ТоварыНаСкладахОбороты.КоличествоПриход,
    ТоварыНаСкладахОбороты.КоличествоРасход
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Обороты({(&НачалоПериода)}, {(&ОкончаниеПериода)}, , ) КАК ТоварыНаСкладахОбороты
8 xaozai
 
05.12.13
12:02
Добавил {...}:
ВЫБРАТЬ
    МойРегистрОстаткиИОбороты.измерение1 КАК Измерение1,
    МойРегистрОстаткиИОбороты.Измерение2 КАК Измерение2,
    МойРегистрОстаткиИОбороты.Период КАК ПериодМесяц,
    МойРегистрОстаткиИОбороты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
    МойРегистрОстаткиИОбороты.СуммаПриход КАК СуммаПриход,
    МойРегистрОстаткиИОбороты.СуммаРасход КАК СуммаРасход,
    МойРегистрОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток
{ВЫБРАТЬ
    Измерение1.*,
    Измерение2,
    ПериодМесяц,
    СуммаНачальныйОстаток,
    СуммаПриход,
    СуммаРасход,
    СуммаКонечныйОстаток}
ИЗ
    РегистрНакопления.МойРегистр.ОстаткиИОбороты(, , Месяц, , {(Измерение1).* КАК Измерение1, (Измерение2) КАК Измерение2, (Измерение3).* КАК Измерение3, (Измерение3.Дата >= НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ)) КАК НачалоПериода, (Измерение3.Дата <= КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ)) КАК КонецПериода}) КАК МойРегистрОстаткиИОбороты

Теперь параметры вообще игнорируются (
Измерение3 - это ссылка на документ (не регистратор).
9 xaozai
 
05.12.13
12:03
help!
10 mikecool
 
05.12.13
12:04
у тебя нет параметров, (, , Месяц - тут пусто
11 DmitriyDI
 
05.12.13
12:05
(8) не там добавил
12 xaozai
 
05.12.13
12:06
Мне надо отбор именно по датам документов из измерения3.
13 fisher
 
05.12.13
12:07
(5) А иногда - говорить
14 Defender aka LINN
 
05.12.13
12:10
(13) Не в твоем случае. В первых постах были нормальные советы. В твоем - нет.
15 DmitriyDI
 
05.12.13
12:12
(12) может регистр не правильно спроектирован?
16 fisher
 
05.12.13
12:18
(14) В первых постах - советы бесполезные. &НачалоПериода и &КонецПериода - и так автоматом генерятся как дефолтовые параметры СКД для периодов виртуальных таблиц.
17 fisher
 
05.12.13
12:19
Разве что он автозаполнение отключил...
18 xaozai
 
05.12.13
12:19
(15) Есть документы, в табличных частях которых указываются некоторые показатели на определенные месяцы года, на весь год.
Эти показатели пишутся в регистр на месяцы из ТЧ (делают приход и расход).
По этим данным строится другой отчет - там всё Ок.

Это что-то типа планирования бюджета на год.
Последующие документы как бы корректируют данные других документов.

Теперь понадобилось отбирать движения еще и по датам документов, которые создают эти движения...

Т.е., как было запланировано на дату этого документа, как потом изменилась картина после этого документа и т.д.
19 xaozai
 
05.12.13
12:21
(17)(14) по (8)(18) подскажите, что-нибудь.
20 Бешеная Нога
 
05.12.13
12:22
(19) см (7) что еще надо
21 xaozai
 
05.12.13
12:24
(20) Этот вариант мне не подходит.
22 Бешеная Нога
 
05.12.13
12:25
(21) почему?
23 xaozai
 
05.12.13
12:29
(22) Нужен отбор по датам документов, которые содержатся в измерении, не по датам регистратора.
24 Бешеная Нога
 
05.12.13
12:29
ВЫБРАТЬ
    ТоварыНаСкладахОбороты.Склад,
    ТоварыНаСкладахОбороты.КоличествоОборот,
    ТоварыНаСкладахОбороты.КоличествоПриход,
    ТоварыНаСкладахОбороты.КоличествоРасход
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Обороты(, , , {(Измерение3.Дата > НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ)}) КАК ТоварыНаСкладахОбороты
25 xaozai
 
05.12.13
12:30
(23) Точнее, не по датам движений, а по датам документов из измерения.
26 xaozai
 
05.12.13
12:30
(24) Я так и сделал. См. (8) Теперь параметры игнорируются вообще.
27 hhhh
 
05.12.13
12:30
(25) ну вот это что за бред?


(Измерение3.Дата >= НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ)) КАК НачалоПериода

то есть у вас булево значение в НАчалоПериода присваивается?
28 samozvanec
 
05.12.13
12:34
(21) запрос покажи
29 xaozai
 
05.12.13
12:37
(27) О! Супер! Убрал в (8) "КАК НачалоПериода" и "КАК КонецПериода" - заработало как нужно )
Спасибо!