Имя: Пароль:
1C
1С v8
Связи наборов данных по моменту времени
0 WIRL
 
18.06.13
12:15
Совсем небольшой опыт работы с 1с, поэтому прошу помощи, расскажите как сделать лучше.
Пользователь выбирает смену, после этого надо залезть в регистр склада и вытянуть остатки, но смены за один день проводятся одним временем, но вроде в правильной последовательности, поэтому я хотел использовать МоментВремени смены как параметр для регистра остатков.
Я не нашел, как получить поле параметра (типа параметр ссылочного типа, а как без доп. запроса получить параметр.поле?) поэтому НаборДанных2 тянет нужную информацию из документа смены а потом я пытаюсь связать это с НаборомДанных1 по регистру остатков.
http://s019.radikal.ru/i603/1306/01/f4b7b57caeb3.png
в таком виде при формировании ошибка -

"{(8, 2)}: Неверные параметры
<<?>>&Период КАК МоментВремени,"

Если заменить поле источника на "Дата", то все работает, только не так как мне нужно
Подскажите как в СКД работать с моментом времени, пожалуйста
1 WIRL
 
18.06.13
12:44
ну надо сделать, надо..
2 Allexe
 
18.06.13
12:48
(1) Набор данных это запрос? в Запросе выбираешь момент времени? Покажи запрос
3 Allexe
 
18.06.13
12:49
(2) Не проще связать два запроса, а не два набора данных?
4 WIRL
 
18.06.13
12:52
запрос момента

ВЫБРАТЬ
   РозничнаяРеализацияТовары.Номенклатура,
   РозничнаяРеализацияТовары.Ссылка.Склад,
   РозничнаяРеализацияТовары.Ссылка.Дата,
   РозничнаяРеализацияТовары.Ссылка.МоментВремени,
   РозничнаяРеализацияТовары.Ссылка.ДатаЗакрытияСмены
ИЗ
   Документ.РозничнаяРеализация.Товары КАК РозничнаяРеализацияТовары
ГДЕ
   РозничнаяРеализацияТовары.Ссылка = &Смена


и запрос из регистра:

ВЫБРАТЬ
   РозничнаяРеализацияТовары.Номенклатура,
   РозничнаяРеализацияТовары.Цена,
   РозничнаяРеализацияТовары.Сумма,
   РозничнаяРеализацияТовары.Номенклатура.Родитель,
   РозничнаяРеализацияТовары.Номенклатура.КодДляЕУС,
   РозничнаяРеализацияТовары.Ссылка.Склад,
   СкладПоПартиямОстатки.КоличествоОстаток,
   &Период КАК МоментВремени
ИЗ
   Документ.РозничнаяРеализация.Товары КАК РозничнаяРеализацияТовары
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СкладПоПартиям.Остатки(&Период, Склад = &Склад) КАК СкладПоПартиямОстатки
       ПО РозничнаяРеализацияТовары.Номенклатура = СкладПоПартиямОстатки.Номенклатура
           И РозничнаяРеализацияТовары.Ссылка.Склад = СкладПоПартиямОстатки.Склад
ГДЕ
   РозничнаяРеализацияТовары.Ссылка = &Смена

Делал все, как в хрусталевой. Связи работают всегда, но не с моментом времени.

(3) я понимаю как связать по нужным мне измерениям (склад, номенклатура), но как задать правильную дату?
5 WIRL
 
18.06.13
12:55
вот я нашел, как из параметра вытянуть поле -

Функция МоментПоСсылке(Ссылка)  Экспорт
  Возврат Новый МоментВремени(Ссылка.Дата,Ссылка);
КонецФункции

можно как-то легче и без изменений в общих модулях ?
6 Allexe
 
18.06.13
13:10
(0) Можно уточнить задачу? Тебе нужно получить на определенную дату остаток товаров который были в документах с указанной сменой?
7 WIRL
 
18.06.13
13:30
(6) Точно. Определенная дата = момент документа
Видимо связь уже неактуальна. Разобрался, надо было сделать так

Функция ГраницаПоСсылке(Ссылка)  Экспорт
  Возврат Новый Граница(Ссылка.МоментВремени(),ВидГраницы.Включая);
КонецФункции

тогда этот параметр легко вставить в период регистра остатков.
Allexe, спасибо
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший