Не находит записи в левом соединении. Что не так в этом коде?
Не находит записи в левом соединении (точнее в условии ГДЕ). Что не так в этом коде:
В регистре и справочнике есть отличающиеся остатки и резервы. Как нужно правильно переписать код выше?
Запрос.Текст =
"ВЫБРАТЬ
| НоменклатураДоп.Ссылка,
| НоменклатураДоп.Остатки,
| НоменклатураДоп.Резервы,
| НоменклатураДоп.МинОстаток,
| НоменклатураДоп.Цена,
| НоменклатураДоп.Ячейка
|ИЗ
| Справочник.Номенклатура КАК НоменклатураДоп
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваровКомпании.Остатки КАК ОстаткиТоваровКомпанииОстатки
| ПО НоменклатураДоп.Ссылка = ОстаткиТоваровКомпанииОстатки.Номенклатура
|ГДЕ
| НоменклатураДоп.Остатки <> ЕстьNULL(ОстаткиТоваровКомпанииОстатки.КоличествоОстаток,0)
| ИЛИ НоменклатураДоп.Резервы <> ЕстьNULL(ОстаткиТоваровКомпанииОстатки.РезервОстаток,0)";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
ПоказатьВ регистре и справочнике есть отличающиеся остатки и резервы. Как нужно правильно переписать код выше?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) это единственное решение для штатной сортировки в форме списка (с помощью реквизита).
В справочнике НоменклатураДоп.Остатки = 2, в регистре накопления ОстаткиТоваровКомпанииОстатки.КоличествоОстаток = 3, но все равно не находит по условию:
В справочнике НоменклатураДоп.Остатки = 2, в регистре накопления ОстаткиТоваровКомпанииОстатки.КоличествоОстаток = 3, но все равно не находит по условию:
НоменклатураДоп.Остатки <> ЕстьNULL(ОстаткиТоваровКомпанииОстатки.КоличествоОстаток,0)
(6) В обычной форме, колонка справочника без привязки реквизита, который получает данные регистра накопления с помощью свойства Текст. Пример:
ОформлениеСтроки.Ячейки.Остаток.Текст=Формат(Остаток,"ЧЦ=15; ЧДЦ=2; ЧН=0.00");
Вот его нажатием заголовка поля не сортируешь (по крайнем мере не увидел решений)
ОформлениеСтроки.Ячейки.Остаток.Текст=Формат(Остаток,"ЧЦ=15; ЧДЦ=2; ЧН=0.00");
Вот его нажатием заголовка поля не сортируешь (по крайнем мере не увидел решений)
(5) Это не единственное решение. Изучайте динамический список с произвольным запросом -- раз, произвольный реквизит списка на форме -- два.
Левое соединение с таблицей остатков -- отдельное преступление. Засуньте свой запрос в консоль, а потом попробуйте переписать: остатки -- во временную таблицу, и потом соединяться уже с ней. Если база живая на тыщи записей, узрите разницу в скорости.
А то пишут всякую хрень, что потом у пользователя товарный чек на 2 строчки 5 минут формируются, и валят всё, мол, это 1С плохая-кривая-тормозная.
Хотя тут проблемы этой задачи, очевидно, генетические. Вы не осилили вывести на форму списка номенклатуры остатки нормальным образом (или постановщик не осилил сделать по-другому нормальную постановку), начали городить хранение остатков в справочнике, написали кривой и непродуманный код, не завязанный на архитектуру конфигурации, и пытаетесь наклепать какой-то отчёт для сверки данных. А его не надо клепать, это всё следствия и последствия хреново поставленной задачи. Тут саму методологию, начиная от работы с пользователем, фтопку.
Левое соединение с таблицей остатков -- отдельное преступление. Засуньте свой запрос в консоль, а потом попробуйте переписать: остатки -- во временную таблицу, и потом соединяться уже с ней. Если база живая на тыщи записей, узрите разницу в скорости.
А то пишут всякую хрень, что потом у пользователя товарный чек на 2 строчки 5 минут формируются, и валят всё, мол, это 1С плохая-кривая-тормозная.
Хотя тут проблемы этой задачи, очевидно, генетические. Вы не осилили вывести на форму списка номенклатуры остатки нормальным образом (или постановщик не осилил сделать по-другому нормальную постановку), начали городить хранение остатков в справочнике, написали кривой и непродуманный код, не завязанный на архитектуру конфигурации, и пытаетесь наклепать какой-то отчёт для сверки данных. А его не надо клепать, это всё следствия и последствия хреново поставленной задачи. Тут саму методологию, начиная от работы с пользователем, фтопку.
(9) Это обычная форма, там нужно было именно при нажатии на заголовок поля срабатывала сортировка (убыв/возр), например сортировка остатков в справочнике номенклатура (получает из регистра накопления).
P.S. Я это понимаю, что остатки хранятся в регистрах, редко изменяемая информация в справочниках.
P.S. Я это понимаю, что остатки хранятся в регистрах, редко изменяемая информация в справочниках.
Консоль запросов возьми, там понятно будет. Сначала без условий, сделай таблицу со всеми полями выборки и сравнения и сравни глазами.
Идея записывать остатки в справочник действительно не так часто встречается, не глядя в данные трудно понять, что там на самом деле происходит.
Идея записывать остатки в справочник действительно не так часто встречается, не глядя в данные трудно понять, что там на самом деле происходит.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот