Имя: Пароль:
1C
 
ЗаказыКлиентовОстатки.ЗаказКлиента
0 Varlant1n
 
01.02.21
13:36
Здравствуйте! Есть форма с табличной частью ЗаказаКлиента. Табличная часть заполняется при выборе заказа в поле ввода. Мне нужно, чтобы при выборе документа ЗаказКлиента. Товары в его табличной часть проверялись на наличие остатков. И если товара не осталось в документе, то чтобы на форме эта строка с товаром была с перечеркнутым шрифтом. Пока я сделал следующее: Создал в табличной части колонку Отгружено с типом булево и написал процедуру с функцией. И по идее на данный момент у меня в этой колонке у каждой строки должно приниматься значение истина или ложь. Но колонка постоянно пустая. Не понимаю в чем дело.


&НаКлиенте
Процедура ЗаказКлиентаПриИзменении(Элемент)
    Для каждого СтрокаТовара Из Объект.Товары Цикл
        Объект.Товары.Отгружено = ЗаказКлиентаПриИзмененииНаСервере(Объект.ЗаказКлиента, СтрокаТовара.Номенклатура, СтрокаТовара.КодСтроки)
    КонецЦикла;
КонецПроцедуры

&НаСервереБезКонтекста
Функция ЗаказКлиентаПриИзмененииНаСервере(ЗаказКлиента, Номенклатура, КодСтроки)
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ЗаказыКлиентовОстатки.ЗаказКлиента КАК ЗаказКлиента,
    |    ЗаказыКлиентовОстатки.ЗаказаноОстаток КАК ЗаказаноОстаток
    |ИЗ
    |    РегистрНакопления.ЗаказыКлиентов.Остатки КАК ЗаказыКлиентовОстатки
    |ГДЕ
    |    ЗаказыКлиентовОстатки.ЗаказКлиента = &ЗаказКлиента
    |    И ЗаказыКлиентовОстатки.Номенклатура = &Номенклатура
    |    И ЗаказыКлиентовОстатки.КодСтроки = &КодСтроки";
    Запрос.УстановитьПараметр("ЗаказКлиент", ЗаказКлиента);
    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    Запрос.УстановитьПараметр("КодСтроки", КодСтроки);
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    Если Выборка.Следующий() Тогда
            Возврат Истина;
        Иначе
            Возврат Ложь;
    КонецЕсли;
КонецФункции
1 DrShad
 
01.02.21
13:37
сжечь еретика
запрос в цикле - зло
2 Varlant1n
 
01.02.21
13:41
(1) А как я могу иначе сделать это для каждой строки
3 shuhard
 
01.02.21
13:42
(0)[Не понимаю в чем дело.]
дык запрос в консоле что возвращает ?
4 shuhard
 
01.02.21
13:42
(2) соединив остатки в запросе с ТЗ
5 Varlant1n
 
01.02.21
13:55
(3) Вообще ничего. То есть запрос даже не срабатывает
6 Varlant1n
 
01.02.21
13:55
(4) Можно, пожалуйста пример(( Если Вам не трудно, я буду очень и очень благодарен!
7 Chameleon1980
 
01.02.21
13:59
ну начни что-ли гуглить
тз в запрос
8 ZDenis
 
01.02.21
14:10
(0) У тебя остатки наверно на какую-то дату должны ведь считаться, да что такое "КодСтроки"? Сомнения у меня, что по нему остатки хранятся.
9 Varlant1n
 
01.02.21
14:17
(8) Код строки я взял как уникальный идентификатор для строки. чтобы проверка была именно той самой строки
Независимо от того, куда вы едете — это в гору и против ветра!