Имя: Пароль:
1C
1С v8
помогите с запросом
,
0 korgallom
 
01.03.12
12:14
добрый день, хочу выгрузить из регистра накопления в документ данные по дате доставке которая проставленна в заявке, конфа ут 10.3, в табло пишет ошибка чтения значения.... все уже перепробывал не пойму

Запрос = Новый Запрос;
   Запрос.Текст =
       "ВЫБРАТЬ
       |    ЗаказыПокупателей.ЗаказПокупателя.ДатаДоставки,
       |    ЗаказыПокупателей.Номенклатура,
       |    ЗаказыПокупателей.Количество
       |ИЗ
       |    РегистрНакопления.ЗаказыПокупателей КАК ЗаказыПокупателей
       |ГДЕ
       |    ЗаказыПокупателей.ЗаказПокупателя.ДатаДоставки = &Дата";

   Запрос.УстановитьПараметр("Дата", Дата);
   Запрос.УстановитьПараметр("ДатаДоставки", Дата);

   Результат = Запрос.Выполнить();

   ВыборкаДетальныеЗаписи = Результат.Выбрать();
1 korgallom
 
01.03.12
12:15
Запрос.УстановитьПараметр("ДатаДоставки", Дата);


вот так тоже было
2 Wobland
 
01.03.12
12:16
бовал. запрос непуст?
3 korgallom
 
01.03.12
12:17
2 пуст ничего не загружает, если убрать отбор то загружает все строчки из регистра
4 Wobland
 
01.03.12
12:19
(3) попытайся сейчас сам, как человек, прочитать 28й пост в этой ветке. тоже не сможешь ведь
5 korgallom
 
01.03.12
12:20
(4) неправильно ставлю отбор? так как правильно, это типовая конфа ут 10.3, и регистр накопления заказыпокупателей
6 Wobland
 
01.03.12
12:21
(5) >в табло пишет ошибка чтения значения
как-то маловато информации
7 fisher
 
01.03.12
12:21
Возможно, не все движения по этому регистру имеют заполненный "ЗаказПокупателя". Или не все значения, хранящиеся там, имеют свойство "ДатаДоставки".
8 Wobland
 
01.03.12
12:23
да и вообще, даты как-то на диапазон обычно проверяют
9 viktor_vv
 
01.03.12
12:23
Ты бы еще переменной Дата другое имя дал, а то может глючит с ключевым словом.
10 nuctoh
 
01.03.12
12:24
Товарищ пишет, что ему табло выдало "Ошибка чтения значения" - обычно так бывает, когда в табло синтаксическую ошибку допускаешь. И исследуемый объект тут ни при чем. korgallom, ты что в табло написал?
11 Леха Дум
 
01.03.12
12:24
НАЧАЛОПЕРИОДА(ЗаказыПокупателей.ЗаказПокупателя.ДатаДоставки, День) = НАЧАЛОПЕРИОДА(&Дата, День)";

ессно исходя из того что у тебя в ДатаДоставки и в &Дата - датавремя или дата
12 Леха Дум
 
01.03.12
12:25
(10) так бывает в табло когда читать еще нечего
13 Wobland
 
01.03.12
12:25
(10) я предполагал отсутствие Выборка.Следующий(), тогда при обращении к полю выборки вроде такое же говорится
14 korgallom
 
01.03.12
12:25
Результат.Выбрать()
написал и раскры
15 Wobland
 
01.03.12
12:25
(12) точно. синтаксис тут ни при чём
16 Wobland
 
01.03.12
12:26
(14) теперь возвернись в (13) ;)
17 korgallom
 
01.03.12
12:27
нужно на один день чтобы показывал все заявки с датой доставки точно такой же
18 nuctoh
 
01.03.12
12:27
Потому что табло не раскрывает выборку, она ж еще не выбрана ".Следующий()" - надо Результат.Выгрузить()
19 korgallom
 
01.03.12
12:27
дата в форме документа "Дата" как бы по этому реквизиту отбор идет
20 Wobland
 
01.03.12
12:28
(17) спроси у (11)
21 nuctoh
 
01.03.12
12:28
Ты написал Результат.Выбрать() - но там пока Следующий() не пропишешь, ничего нет
22 Wobland
 
01.03.12
12:28
(18) не путай чайника, пускай с выборкой разберётся
23 nuctoh
 
01.03.12
12:31
Да, korgallom, ты с отладчиком немного не разобрался. А остальным отписавшимся порекомендую не путать теплое с мягким - код нормальный рабочий - ошибка в способе отладки.
24 Wobland
 
01.03.12
12:32
(23) показанный код, да синтаксически верен
25 korgallom
 
01.03.12
12:35
(11)   огромное спасибо! я уже не знал чего думать))))

Запрос = Новый Запрос;
   Запрос.Текст =
       "ВЫБРАТЬ
       |    ЗаказыПокупателей.ЗаказПокупателя.номер как номер,
       |    ЗаказыПокупателей.ЗаказПокупателя.ДатаДоставки,
       |    ЗаказыПокупателей.Номенклатура,
       |    ЗаказыПокупателей.Количество,
       |    ЗаказыПокупателей.ЗаказПокупателя
       |ИЗ
       |    РегистрНакопления.ЗаказыПокупателей КАК ЗаказыПокупателей
       |ГДЕ
       |    НАЧАЛОПЕРИОДА(ЗаказыПокупателей.ЗаказПокупателя.ДатаДоставки, ДЕНЬ) = НАЧАЛОПЕРИОДА(&Дата, ДЕНЬ)";

   Запрос.УстановитьПараметр("Дата", Дата);

   Результат = Запрос.Выполнить();

   ВыборкаДетальныеЗаписи = Результат.Выбрать();

   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
       новстр=Отгруз.Добавить();
       новстр.НомерЗаявки=ВыборкаДетальныеЗаписи.номер;
       новстр.Наименование=ВыборкаДетальныеЗаписи.Номенклатура;
       новстр.Количество=ВыборкаДетальныеЗаписи.Количество;
// Вставить обработку выборки ВыборкаДетальныеЗаписи
   КонецЦикла;

вот итоговый рабочий код
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший