Имя: Пароль:
1C
1С v8
Сравнить ТоварыНаСкладахОстаткиИОбороты.Период с Датой
0 igel1969
 
11.02.16
15:27
Здравствуйте!
1С 8.2 УТ 10.3

Выполняю запрос из регистра ТоварыНаСкладахОстаткиИОбороты,
периодичность день с такой-то даты по такую-то.
Далее уже не в запросе хочу пройтись по всем датам и сравнить - если дата равна Результат.Период, то делать соответствующие действия.
Но е могу понять как сравнивать, ибо этот самый период не типа Дата и не приводится к типу Дата ((((

"ВЫБРАТЬ
                              |    ТоварыНаСкладахОстаткиИОбороты.Период,
                              |    ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК НаНачало,
                              |    ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК НаКонец,
                              |    ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход КАК Приход
                              |ИЗ
                              |    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(
                              |            &Дата1,
                              |            &Дата2,
                              |            День,
                              |            ДвиженияИГраницыПериода,
                              |            Склад = &Склад
                              |                И Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстаткиИОбороты";
1 Amra
 
11.02.16
15:31
Дааа? И какого же типа у тебя период?
2 Vladal
 
11.02.16
15:32
>>  и сравнить - если дата равна Результат.Период

Какая "дата" не равна результат.период?

ПКМ в модуле, в меню выбери "Конструктор запроса с обработкой результата" и вставь туда свой запрос.
Мастер создаст тебе запрос и обход выборки запроса.
Внутри цикла и играйся.
3 igel1969
 
11.02.16
15:49
Извините, отвлекли по работе.

Вот такая конструкция не работает:
Если НачалоДня(Д) = НачалоДня(Дата(ТЗОстатки.Период)) Тогда

И такая не работает:

Если НачалоДня(Д) = НачалоДня(ТЗОстатки.Период) Тогда
4 igel1969
 
11.02.16
16:04
в первом случае пишет:

{Форма.ФормаОтчета.Форма(272)}: Преобразование значения к типу Дата не может быть выполнено
            Если НачалоДня(Д) = НачалоДня(ТЗОстатки.Период) Тогда


и во втором то же самое:

{Форма.ФормаОтчета.Форма(272)}: Преобразование значения к типу Дата не может быть выполнено
            Если НачалоДня(Д) = НачалоДня(Дата(ТЗОстатки.Период)) Тогда


Не Дата этот период, не ДАта!!!!
5 Timon1405
 
11.02.16
16:07
ТоварыНаСкладахОстаткиИОбороты...
ТЗОстатки.Период
ТЗОстатки
Остатки...
период? Остатки,Карл!
6 Borteg
 
11.02.16
16:07
(4) а что в Д лежит? может на это ругается?
7 Timon1405
 
11.02.16
16:12
а, ТЗОстатки - это уже при обходе результата видимо.
тогда да, на Д ругается видимо
8 igel1969
 
11.02.16
16:22
Извините, опять я ступил.
Ошибка выдается в том случае, если запрос не дал ничего, т.е. ТЗОстатки.Следующий вернул пустоту.
9 igel1969
 
11.02.16
16:22
Поставил проверку, теперь работает
10 Vladal
 
11.02.16
17:30
>> Ошибка выдается в том случае, если запрос не дал ничего, т.е. ТЗОстатки.Следующий вернул пустоту.

РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
    Возврат;
КонецЕсли;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший