Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 мар 2025, 17:03

Не заходит отладчиком в цикл

Автор sali, 04 мар 2025, 11:32

0 Пользователей и 1 гость просматривают эту тему.

sali

&НаСервере
функция СоздатьРеализациюНаСервере()   

Если Константы.ФункциональнаяОпцияВестиРозничныеПродажи.Получить() Тогда   

ВЫБОРКА  = ШАПКА.Выгрузить();
выборка.Свернуть("НомерМагазина, НомерСмены");

Для Каждого СтрокаДанных Из Выборка Цикл
НовыйДокумент = Документы.ОтчетОРозничныхПродажах.СоздатьДокумент();
НовыйДокумент.Дата = ТекущаяДата(); 
НовыйДокумент.Касса = Справочники.Кассы.НайтиПоРеквизиту("НомерМагазина", СтрокаДанных.НомерМагазина); 

//параметры учета . если они есть у кассы - взять и подставить. если нет, то - создать.
// запрос для проверки есть ли запись с такой кассой

    Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Кассы.Ссылка КАК Касса
|ИЗ
| Справочник.Кассы КАК Кассы
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПараметрыРозничныхПродаж КАК ПараметрыРозничныхПродаж
| ПО Кассы.Ссылка = ПараметрыРозничныхПродаж.Касса
|ГДЕ
| ПараметрыРозничныхПродаж.Касса ЕСТЬ NULL";

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

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

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
КассаДокумента = ВыборкаДетальныеЗаписи.Касса;             
КонецЦикла;
Если  КассаДокумента = НовыйДокумент.Касса Тогда
ЗаполнитьДанныеШапки(НовыйДокумент);   
Иначе
Сообщить("У вас нет установленного параметра для кассы " + НовыйДокумент.Касса);



&НаСервереБезКонтекста
Функция ЗаполнитьДанныеШапки(НовыйДокумент)

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

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

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

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
//ЗаполнитьЗначенияСвойств(НовыйДокумент, ВыборкаДетальныеЗаписи);

Если ВыборкаДетальныеЗаписи.Следующий() Тогда
    ЗаполнитьЗначенияСвойств(НовыйДокумент, ВыборкаДетальныеЗаписи);
КонецЕсли

КонецФункции
есть две такие функции создание документа и заполнение шапки - если в рс параметры розничных продаж с кассой магазина есть запись то заполняется иначе остаются поля пустые. но проблема в том что в цикл не заходит. выборка.количество() - 0 и результатзапроса.пустой() истина. одна запись в рс есть, как еще написать запрос чтобы заработало

sali


antoneus

Давай сначала ты поотвечаешь)

1.
Запрос.Текст =
"ВЫБРАТЬ
|    Кассы.Ссылка КАК Касса
|ИЗ
|    Справочник.Кассы КАК Кассы
|        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПараметрыРозничныхПродаж КАК ПараметрыРозничныхПродаж
|        ПО Кассы.Ссылка = ПараметрыРозничныхПродаж.Касса
|ГДЕ
|    ПараметрыРозничныхПродаж.Касса ЕСТЬ NULL";

Что мы получим в результате этого запроса?

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

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

LexaK

sali, так это же очевидно!
если не заходит в цикл, значит выборка пустая!
если помогло нажмите: Спасибо!

sali

ого как много сообщений. извините, парни, я вышел и сам все исправил , там по несколько раз код перелопатил.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск