Ситуация нелепая. Была конфигурация УТ 11.4, доработанная мною года 3 назад. В частности, в справочнике "Номенклатура" в списке отображались количества на складах, но у отсутствующих на складах товаров нули не отображались (визуально не удобно видеть в таблице большое количество нулей). При нажатии "Вывести в список" - "В табличный документ" количества товаров отображались с нулями, потом этот документ выгружался в интернет-магазин.
Сейчас решили обновить конфигурацию и все доработки перенести в Расширение конфигурации. Все перенес, а вот с нулями не могу понять, как я это сделал. Старая конфигурация имеется на руках, но не могу найти в ней отличие, которое отображает нули в табличном документе.
(2) Да, смотрел. Если ставлю ЧН=0, то нули отображаются и в списке номенклатуры, и в табличном документе. Если ставлю вручную в табличном документе ЧН=0, то нули в нем не появляются
писок" вшита в платформу и ее не очень-то доработаешь
Ну вот я как-то сделал в предыдущей конфигурации. Сам уже не помню, как... Но точно помню, что особо не мудрил, сделал буквально несколько действий или пару строчек кода. Может подскажете, куда посмотреть? Может из-за релиза конфигурации что-то поменялось? Сейчас скринов накидаю.
Вот скриншоты и код запроса из старой конфигурации, который выводит список номенклатуры. В новой код такой же.
ВЫБРАТЬ
СпрНоменклатура.Ссылка КАК Ссылка,
СпрНоменклатура.Код КАК Код,
СпрНоменклатура.Наименование КАК Наименование,
СпрНоменклатура.Артикул КАК Артикул,
СпрНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
СпрНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
СпрНоменклатура.СтавкаНДС КАК СтавкаНДС,
СпрНоменклатура.Родитель КАК Родитель,
ВЫБОР
КОГДА СпрНоменклатура.ЕстьТоварыДругогоКачества
ТОГДА 4 + ВЫБОР
КОГДА СпрНоменклатура.ПометкаУдаления
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ + ВЫБОР
КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
ТОГДА 0
ИНАЧЕ 2
КОНЕЦ
ИНАЧЕ ВЫБОР
КОГДА СпрНоменклатура.ПометкаУдаления
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ + ВЫБОР
КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
ТОГДА 0
ИНАЧЕ 2
КОНЕЦ
КОНЕЦ КАК ИндексКартинки,
ТоварыНаСкладахОстатки1.ВНаличииОстаток КАК ВосМарта,
ТоварыНаСкладахОстатки2.ВНаличииОстаток КАК Малышева,
ТоварыНаСкладахОстатки3.ВНаличииОстаток КАК Оптовый,
ТоварыНаСкладахОстатки4.ВНаличииОстаток КАК Основной,
ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
ИЗ
Справочник.Номенклатура КАК СпрНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&КонПериода, Склад = &Склад1) КАК ТоварыНаСкладахОстатки1
ПО (ТоварыНаСкладахОстатки1.Номенклатура = СпрНоменклатура.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&КонПериода, Склад = &Склад2) КАК ТоварыНаСкладахОстатки2
ПО (ТоварыНаСкладахОстатки2.Номенклатура = СпрНоменклатура.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&КонПериода, Склад = &Склад3) КАК ТоварыНаСкладахОстатки3
ПО (ТоварыНаСкладахОстатки3.Номенклатура = СпрНоменклатура.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&КонПериода, Склад = &Склад4) КАК ТоварыНаСкладахОстатки4
ПО (ТоварыНаСкладахОстатки4.Номенклатура = СпрНоменклатура.Ссылка)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&КонПериода, ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних
ПО (ЦеныНоменклатурыСрезПоследних.Номенклатура = СпрНоменклатура.Ссылка)
ГДЕ
НЕ СпрНоменклатура.ЭтоГруппа
{ГДЕ
(СпрНоменклатура.Ссылка В
(ВЫБРАТЬ
Сегменты.Номенклатура
ИЗ
РегистрСведений.НоменклатураСегмента КАК Сегменты
ГДЕ
Сегменты.Сегмент = &СегментНоменклатуры))}
Попробуйте в запросе динамического списка данный кусок:
ТоварыНаСкладахОстатки1.ВНаличииОстаток КАК ВосМарта,
ТоварыНаСкладахОстатки2.ВНаличииОстаток КАК Малышева,
ТоварыНаСкладахОстатки3.ВНаличииОстаток КАК Оптовый,
ТоварыНаСкладахОстатки4.ВНаличииОстаток КАК Основной,
Переделать на:
ЕСТЬNULL(ТоварыНаСкладахОстатки1.ВНаличииОстаток, 0) КАК ВосМарта,
ЕСТЬNULL(ТоварыНаСкладахОстатки2.ВНаличииОстаток, 0) КАК Малышева,
ЕСТЬNULL(ТоварыНаСкладахОстатки3.ВНаличииОстаток, 0) КАК Оптовый,
ЕСТЬNULL(ТоварыНаСкладахОстатки4.ВНаличииОстаток, 0) КАК Основной,
Суть в том, что при левом соединении с таблицей остатков, у строк без остатка(где не найдена связь) значение возвращаемое в запросе NULL.
Попробуйте в запросе динамического списка данный кусок:
ТоварыНаСкладахОстатки1.ВНаличииОстаток КАК ВосМарта,
ТоварыНаСкладахОстатки2.ВНаличииОстаток КАК Малышева,
ТоварыНаСкладахОстатки3.ВНаличииОстаток КАК Оптовый,
ТоварыНаСкладахОстатки4.ВНаличииОстаток КАК Основной,
Переделать на:
ЕСТЬNULL(ТоварыНаСкладахОстатки1.ВНаличииОстаток, 0) КАК ВосМарта,
ЕСТЬNULL(ТоварыНаСкладахОстатки2.ВНаличииОстаток, 0) КАК Малышева,
ЕСТЬNULL(ТоварыНаСкладахОстатки3.ВНаличииОстаток, 0) КАК Оптовый,
ЕСТЬNULL(ТоварыНаСкладахОстатки4.ВНаличииОстаток, 0) КАК Основной,
Суть в том, что при левом соединении с таблицей остатков, у строк без остатка(где не найдена связь) значение возвращаемое в запросе NULL.
Показать
Я так пробовал, нули отображаются в списке номенклатуры, что не удовлетворяет условиям задачи :( Уже всю голову сломал, не понимаю, как у меня получилось на старой конфигурации так сделать. Может в конфигурации дело...