Имя: Пароль:
1C
1С v8
УТ11 - странное поведение подбора
0 ildary
 
21.01.17
21:21
Уважаемые специалисты, подскажите пожалуйста, где искать причину такого - обработка ПодборТоваровВДокументПродажи, у нее есть динамический список СписокНоменклатура, с произвольным запросом, в котором формируется поле ЭтоТовар. Если поместить текст запроса в консоль, то поле ЭтотТовар равно Истина, но при практическом подборе - в процедуре ПодборТаблицаНоменклатураВыбор в Элемент.ТекущиеДанные.ЭтоТовар возвращается Ложь. Я хотел проверить - что же реально выводится в СписокНоменклатура.ЭтотТовар, для чего бросил поле ЭтоТовар на элемент формы ПодборТоваровВДокументПродажи - но в форме эта колонка не выводится...
1 h-sp
 
21.01.17
21:31
(0) закусывайте там всё-таки. Это два разных поля "ЭтотТовар" "ЭтоТовар"."
2 ildary
 
21.01.17
21:33
(1) это простая опечатка. Я имел в виду СписокНоменклатура.ЭтоТовар
3 yzimin
 
21.01.17
21:38
Запрос подбора переопределяется в модуле
4 ildary
 
21.01.17
21:50
(3) вот как раз хотел рассказать про это подробности - изначально в запросе поле ЭтоТовар определяется как

ЛОЖЬ КАК ЭтоТовар,

если посмотреть текст запроса после его замены, то поле вычислятся как

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

вывод в консоли запросов этого модифицированного запроса - дает у поля ЭтоТовар = Истина.
5 ildary
 
22.01.17
07:26
В итоге разобрался - я после всего этого сам модифицировал текст запроса и делал это неправильно: заменой всего текста, а надо правильно - заменить нужный кусок.
Программист всегда исправляет последнюю ошибку.